shell中常用命令
ls
功能:列出文件目录的内容
常用选项:
-a 显示所有文件,包括隐藏的
-t 长格式列出信息
-i 显示文件inode号
-t 按修改时间排序
-r 按修改时间倒序排序
示例:
按修改时间排序:
[root@Zabbix server ~]# ll -t total 53864 -rw-r--r-- 1 root root 5096 Mar 16 11:12 screendump.txtg -rw-r--r-- 1 root root 116 Mar 14 15:57 ff.sh -rw-r--r-- 1 root root 17 Mar 14 15:23 test.txt -rw-r--r--. 1 root root 228 Mar 9 17:56 expect-scp.sh -rw-r--r--. 1 root root 3 Mar 9 17:49 mysql.bak.2017-03-08 -rw-r--r--. 1 root root 4 Mar 9 17:44 mysql. -rw-r--r--. 1 root root 35 Mar 6 21:51 A.txt -rw-r--r--. 1 root root 479 Mar 6 17:24 slect.sh -rwxr-xr-x. 1 root root 213 Mar 1 21:53 ex.sh -rw-r--r--. 1 root root 45008350 Mar 1 17:53 grafana-4.1.2-1486989747.x86_64.rpm drwxr-xr-x. 16 root root 4096 Feb 28 23:59 ntopng drwxr-xr-x. 10 root root 4096 Feb 28 23:32 nDPI drwxr-xr-x. 8 root root 4096 Feb 27 17:20 redis -rw-r--r--. 1 root root 188 Feb 25 22:37 check.sh drwxr-xr-x. 2 root root 4096 Feb 25 21:50 backup -rw-r--r--. 1 root root 64 Feb 25 21:35 useraddtest.sh -rw-r--r--. 1 root root 111 Feb 3 17:13 test.log drwxr-xr-x. 2 root root 4096 Jan 22 06:38 Desktop drwxr-xr-x. 2 root root 4096 Jan 22 06:38 Documents drwxr-xr-x. 2 root root 4096 Jan 22 06:38 Downloads drwxr-xr-x. 2 root root 4096 Jan 22 06:38 Music drwxr-xr-x. 2 root root 4096 Jan 22 06:38 Pictures drwxr-xr-x. 2 root root 4096 Jan 22 06:38 Public drwxr-xr-x. 2 root root 4096 Jan 22 06:38 Templates drwxr-xr-x. 2 root root 4096 Jan 22 06:38 Videos -rw-------. 1 root root 3318 Jan 22 05:32 anaconda-ks.cfg -rw-r--r--. 1 root root 41433 Jan 22 05:32 install.log -rw-r--r--. 1 root root 9154 Jan 22 05:29 install.log.syslog -rw-r--r--. 1 root root 9976177 Jun 22 2016 redis.tar.gz
按修改时间倒序排序
[root@Zabbix server ~]# ll -rt total 53864 -rw-r--r--. 1 root root 9976177 Jun 22 2016 redis.tar.gz -rw-r--r--. 1 root root 9154 Jan 22 05:29 install.log.syslog -rw-r--r--. 1 root root 41433 Jan 22 05:32 install.log -rw-------. 1 root root 3318 Jan 22 05:32 anaconda-ks.cfg drwxr-xr-x. 2 root root 4096 Jan 22 06:38 Videos drwxr-xr-x. 2 root root 4096 Jan 22 06:38 Templates drwxr-xr-x. 2 root root 4096 Jan 22 06:38 Public drwxr-xr-x. 2 root root 4096 Jan 22 06:38 Pictures drwxr-xr-x. 2 root root 4096 Jan 22 06:38 Music drwxr-xr-x. 2 root root 4096 Jan 22 06:38 Downloads drwxr-xr-x. 2 root root 4096 Jan 22 06:38 Documents drwxr-xr-x. 2 root root 4096 Jan 22 06:38 Desktop -rw-r--r--. 1 root root 111 Feb 3 17:13 test.log -rw-r--r--. 1 root root 64 Feb 25 21:35 useraddtest.sh drwxr-xr-x. 2 root root 4096 Feb 25 21:50 backup -rw-r--r--. 1 root root 188 Feb 25 22:37 check.sh drwxr-xr-x. 8 root root 4096 Feb 27 17:20 redis drwxr-xr-x. 10 root root 4096 Feb 28 23:32 nDPI drwxr-xr-x. 16 root root 4096 Feb 28 23:59 ntopng -rw-r--r--. 1 root root 45008350 Mar 1 17:53 grafana-4.1.2-1486989747.x86_64.rpm -rwxr-xr-x. 1 root root 213 Mar 1 21:53 ex.sh -rw-r--r--. 1 root root 479 Mar 6 17:24 slect.sh -rw-r--r--. 1 root root 35 Mar 6 21:51 A.txt -rw-r--r--. 1 root root 4 Mar 9 17:44 mysql. -rw-r--r--. 1 root root 3 Mar 9 17:49 mysql.bak.2017-03-08 -rw-r--r--. 1 root root 228 Mar 9 17:56 expect-scp.sh -rw-r--r-- 1 root root 17 Mar 14 15:23 test.txt -rw-r--r-- 1 root root 116 Mar 14 15:57 ff.sh -rw-r--r-- 1 root root 5096 Mar 16 11:12 screendump.txtg
查看文件inode
[root@Zabbix server ~]# ll -i check.sh 131228 -rw-r--r--. 1 root root 188 Feb 25 22:37 check.sh
echo
功能:打印一行
常用选项:
-n 不加换行符
-e 解释转义符
实例:
解释换行符:
[root@Zabbix server ~]# echo -e "1 2 3 " 1 2 3
printf
功能:格式化打印数据,默认打印字符串不换行
格式:printf format [argeuments]
常用选项:
format:
%.ns 输出字符串,n是输出几个字符
%m.nf 输出浮点数,m是输出的整数位数,n是输出的小数位数
%x 不带正负号的十六进制值,使用a至f表示10至15
%X 不带正负号的十六进制,使用A至F表示10至15
%% 输出单个%
一些常用的空白符:
换行
回车
水平制表
对齐方式:
%-5s 对参数每个字段左对齐,宽度为5
%-4.2f 左对齐,宽度为4,保留两位小数 (不加横线“-”表示右对齐)
实例:
输出一个字符:
[root@Zabbix server ~]# printf "%.1s " abc a
保留一个小数点:
[root@Zabbix server ~]# printf "%.1f " 1233.333 1233.3 [root@Zabbix server ~]# printf "%.2f " 1233.333 1233.33 [root@Zabbix server ~]# printf "%.3f " 1233.333 1233.333
格式化输出:
[root@Zabbix server ~]# printf "user: %s pass: %d " abc 123 user: abc pass: 123
左对齐宽度为10:
[root@Zabbix server ~]# printf "%-10s %-10s %-10s " ID Name Number ID Name Number
右对齐宽度为10:
[root@Zabbix server ~]# printf "%10s %10s %10s " ID Name Number ID Name Number
每段对齐:
[root@Zabbix server ~]# printf "%-10s " ID Name Number ID Name Number
[root@Zabbix server ~]# printf "%10s " ID Name Number ID Name Number
cat
功能:连接文件和标准输出打印
常用选项:
-b 显示非空行行号
-n 显示所有行行号
-T 显示tab,用^I表示
-E显示以$结尾
实例:
连接两个文件:
[root@Zabbix server ~]# cat A.txt ff.sh A 90 B 91 C 80 A 92 D 21 D 21 E 15 #!/bin/bash gt80=F for NVALUE in `seq 81` do if [ $NVALUE -lt 80 ];then : else gt80=T fi done echo ${gt80}
将EOF标准输入作为cat标准输出在写到a.txt
[root@Zabbix server ~]# cat > a.txt << EOF 123 456 abc efg EOF [root@Zabbix server ~]# cat a.txt 123 456 abc efg
显示非空行行号:
[root@Zabbix server ~]# cat -b a.txt 1 123 2 456 3 abc 4 efg
tac
功能:连接文件和倒叙打印文件
常用选项:
实例:
倒序打印每一行:
[root@Zabbix server ~]# tac a.txt efg abc 456 123
rev
功能:反向打印文件的每一行
常用选项:
实例:
[root@Zabbix server ~]# echo "123" | rev 321
wc
功能:统计文件行数,字节,字符数
常用选项:
-c 打印文件字节数,一个英文字母占1个字节,一个汉字占2-4字节 (根据编码)
-m 打印文件字符数,一个汉字占2个字符
-l 打印多少行
实例:
统计文件多少行:
[root@Zabbix server ~]# wc -l a.txt 5 a.txt
cp
功能:复制文件或目录
常用选项:
-a 归档 (等同于-dR 复制符号链接 处理指定目录以及子目录)
-b 目标文件如果存在那么自动创建备份,备份文件的名称是文件名跟~
-f 强制复制文件或目录
-r 递归复制文件或目录
-p 保留原有文件或目录的属性
-i 覆盖文件之前先询问用户
-u 当源文件比目的文件修改时间新的时候才复制
-v 显示复制过程
实例:
复制相同名字的文件,同时生成备份文件:
[root@Zabbix server ~]# cd /tmp/ [root@Zabbix server tmp]# touch test [root@Zabbix server tmp]# cd [root@Zabbix server ~]# touch test [root@Zabbix server ~]# echo 111 > test [root@Zabbix server ~]# cat test 111 [root@Zabbix server ~]# cp -b test /tmp/test cp: overwrite `/tmp/test'? y [root@Zabbix server ~]# cd /tmp/ [root@Zabbix server tmp]# ll test test test~
复制目录:
[root@Zabbix server ~]# cp -rf redis /opt/
mkdir
功能:创建目录
常用选项:
-p 递归创建目录
-v 显示创建过程
实例:
创建多级目录:
[root@Zabbix server ~]# mkdir -p /shenjianyu/test/test1
创建多个目录:
[root@Zabbix server shenjianyu]# mkdir {test5,test6} [root@Zabbix server shenjianyu]# ls data DejaVuSans.ttf mysql-5.5.49.tar.gz nginx-1.9.15 nginx-1.9.15.tar.gz php-5.5.35 php-5.5.35.tar.gz screendump.txt test5 test6 zabbix-3.0.4 zabbix-3.0.4.tar.gz
创建连续目录:
[root@Zabbix server shenjianyu]# mkdir {a..c} [root@Zabbix server shenjianyu]# ls a b c data DejaVuSans.ttf mysql-5.5.49.tar.gz nginx-1.9.15 nginx-1.9.15.tar.gz php-5.5.35 php-5.5.35.tar.gz screendump.txt test5 test6 zabbix-3.0.4 zabbix-3.0.4.tar.gz
mv
功能:移动文件,目录或者重命名
常用选项:
-b 目标文件存在创建备份。备份文件是”文件名后跟~“
-u 当源文件比目的文件修改时间新时才移动
-v 显示移动过程
实例:
移动文件:
[root@Zabbix server ~]# mv a.txt /opt/
重命名文件:
[root@Zabbix server ~]# mv a.txt b.txt
本文并非原创,是根据李振良老师的总结加上我自己的一些实例