Keen的博客

记录所思、所想、所遇

欢迎来到我的个人站~


【操作指令】linux常用操作及问题笔记

实际操作过程中的积累

1 常用操作命令

压缩tar

命令:

# 压缩testdir目录

# -z 表示gzip格式
# -c 表示create
# -v 表示verbose,展示详情
# -f 表示目标是文件(这个一般都是f)

$ tar -zcvf testdir.tar.gz testdir

结果:

testdir/
testdir/test.txt
testdir/test2.txt

解压tar

命令:

# 解压testdir.tar.gz到testdir目录

# -x 表示extract,解压

$ tar -zxvf testdir.tar.gz testdir

结果:

testdir/
testdir/test.txt
testdir/test2.txt

显示当前目录pwd

命令:

pwd

结果:

/usr/home/keenjin

改变文件权限(可读、可写、可执行)chmod

命令:

chmod a+x test.sh
ll

结果:

-rwxr-xr-x 1 keenjin 1049089 26 12月 27 10:25 test.sh*

运行某个sh脚本./

命令:

chmod a+x test.sh
ll
./test.sh  #内容是mkdir test;ls

结果:

-rwxr-xr-x 1 keenjin 1049089 26 12月 27 10:25 test.sh*
test

打印内容echo

命令:

echo "test"
echo `pwd`
echo $0

结果:

test
/c/Users/keenjin/linux_shell
./shelltest.sh

日期date

命令:

date
date +%Y%m%d
date -d '+1 day ago' +%Y%m%d
date +%Y-%m-%d

结果:

2018年12月27日 15:13:15
20181227
20181226
2018-12-27

时间同步

命令:

# 查看时区
timedatectl status|grep 'Time zone'
# 设置与本地时间保持一致
timedatectl set-local-rtc 1
# 调整时区
timedatectl set-timezone Asia/Shanghai
date

# 如果发现时间还不同步,使用时间同步服务器
yum -y install ntpdate
ntpdate -u cn.ntp.org.cn
date

上传rz

命令:

rz

结果:

弹出一个对话框,选择要上传到xshell登录的服务器的文件

下载sz

命令:

sz test.py

结果:

弹出对话框,选择一个目录,用来存放下载的test.py文件

ubuntu设置代理

/etc/apt/sources.list,修改这个文件里面所有deb 相关的,替换位自己的代理镜像源

查看系统设备的相关命令

lspci -v 查看PCI设备信息,比如设备驱动等

02:00.0 USB controller: VMware USB1.1 UHCI Controller (prog-if 00 [UHCI])
    Subsystem: VMware USB1.1 UHCI Controller
    Physical Slot: 32
    Flags: bus master, medium devsel, latency 64, IRQ 18
    I/O ports at 2080 [size=32]
    Capabilities: <access denied>
    Kernel driver in use: uhci_hcd

ifconfig 查看网卡信息,使用前,需要安装网卡设备工具。sudo apt install net-tools

ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.129  netmask 255.255.255.0  broadcast 192.168.2.255
        inet6 fe80::aeca:330c:2369:d3fa  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:14:55:7a  txqueuelen 1000  (Ethernet)
        RX packets 297597  bytes 403950303 (403.9 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 125403  bytes 9052634 (9.0 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

系统及性能监控相关工具

top:Linux Process Monitoring
vmstat:Virtual Memory Statistics
lsof:List Open Files
tcpdump:Network Packet Analyzer
netstat:Network Statistics
Htop – Linux Process Monitoring
Iotop – Monitor Linux Disk I/O
Iostat – Input/Output Statistics
iptraf-ng – Real Time IP LAN Monitoring

2 shell内使用的常用命令

$0表示当前sh脚本的文件路径(相对路径),这个本身输出的是一个字符串,可以用echo打印出来

echo $0
结果:
./shelltest.sh

``或者$(),表示把命令框起来,shell解释的时候优先执行,并把结果作为输出

$(dirname "$0")
结果:
/c/Users/keenjin/linux_shell

dirname,取当前sh脚本

$(dirname "$0")
结果:
/c/Users/keenjin/linux_shell

$var或${var},用于变量替换,var是一个变量,类似宏

date=$(date +%Y%m%d)
echo "现在时间:${date}"
结果:
现在时间是:20181227

type、test辅助判断命令

# type用于判断命令类型,是内部命令还是外部命令。如果命令不存在,type命令的退出错误码,就会执行if条件判断失败
# test用于测试后面的条件是否满足
print_cmd=""
if type printf > /dev/null; then
    print_cmd="printf"
elif test -x /usr/ucb/echo; then
    print_cmd="/usr/ucb/echo"
else
    print_cmd="echo"
fi

3 其他问题

windows下mingw64无法设置sh文件可执行(chmod失效)

问题:

文件test.sh内容
---------------------------------------------------------
mkdir test
ls
---------------------------------------------------------
输入命令:
$ chmod a+x test.sh
$ ll
-rw-r--r-- 1 keenjin 1049089 15 12月 27 10:21 test.sh

解决:在sh文件头部,添加#!/bin/bash

文件test.sh内容
---------------------------------------------------------
#!/bin/bash
mkdir test
ls
---------------------------------------------------------
输入命令:
$ ll
-rwxr-xr-x 1 keenjin 1049089 26 12月 27 10:25 test.sh*

4 vim常用操作

删除

dd          删除当前行
D           删除光标到当前行末尾的字符
dG          向后删除到文本末尾
d^          向前删除到当前行开头
dgg         向前删除到文本开头
dw          向后删除一个单词(以空格间隔的,如果是空格,删除一个空格)
d10w        向后删除10个单词

复制粘贴

p           复制上一次删除的操作,粘贴到光标所在下一行

撤销操作

u           撤销前一次操作,可以不断往前回归撤销

撤销恢复

ctrl+r      恢复操作

重复操作

.           重复上一次操作,可以不断重复

移动光标

^           移动光标到行首
$           移动光标到行尾
G           移动到末行行首
w           移动到下一个单词首部,对于汉子,就是下一个汉子首部
e           移动到下一个单词尾部

插入

o           向下插入一行,并进入插入模式
O           向前插入一行,并进入插入模式

替换字符串

:%s/[str1]/[str2]/g      全局替换str1为str2,例如%s/deb http:\/\/us.archive.ubuntu.com\/ubuntu\//deb xxxxxxx/g,会将所有的http://us.archive.ubuntu.com/ubuntu/替换位xxxxxxx

5 ubuntu中python安装MYSQL模块问题

环境是python2.7
安装命令:pip install mysql-python
出现第一个问题:

Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-_Livdw/mysql-python/

首先,需要升级setuptools,安装命令:pip install –upgrade setuptools
然后,安装mysql环境,安装命令:sudo apt-get install libmysqlclient-dev

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少