每天十个shell中常用命令

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
ll -t

   

按修改时间倒序排序

[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
ll -rt

 

查看文件inode

[root@Zabbix server ~]# ll -i check.sh 
131228 -rw-r--r--. 1 root root 188 Feb 25 22:37 check.sh
ll -i

 

echo  

功能:打印一行

常用选项:

-n 不加换行符

-e 解释转义符

实例:

解释换行符:

[root@Zabbix server ~]# echo -e "1\n2\n3\n"
1
2
3
echo -e

 

printf

功能:格式化打印数据,默认打印字符串不换行

格式:printf format [argeuments]

常用选项:

format:

%.ns 输出字符串,n是输出几个字符

%m.nf 输出浮点数,m是输出的整数位数,n是输出的小数位数

%x 不带正负号的十六进制值,使用a至f表示10至15

%X 不带正负号的十六进制,使用A至F表示10至15

%% 输出单个%

一些常用的空白符:

\n  换行

\r 回车

\t 水平制表

对齐方式:

%-5s 对参数每个字段左对齐,宽度为5

%-4.2f 左对齐,宽度为4,保留两位小数  (不加横线“-”表示右对齐)

实例:

输出一个字符:

[root@Zabbix server ~]# printf "%.1s\n" abc
a
printf "%.1s

 

保留一个小数点:

[root@Zabbix server ~]# printf "%.1f\n" 1233.333 
1233.3
[root@Zabbix server ~]# printf "%.2f\n" 1233.333 
1233.33
[root@Zabbix server ~]# printf "%.3f\n" 1233.333 
1233.333
printf "%.nf

 

格式化输出:

[root@Zabbix server ~]# printf "user: %s\tpass: %d\n" abc 123
user: abc pass: 123
printf "user: %s\tpass: %d\n" abc 123

 

左对齐宽度为10:

[root@Zabbix server ~]# printf "%-10s %-10s %-10s\n" ID Name Number
ID Name Number
printf "%-10s %-10s %-10s\n"

 

右对齐宽度为10:

[root@Zabbix server ~]# printf "%10s %10s %10s\n" ID Name Number     
        ID       Name     Number
printf "%10s %10s %10s\n"

 

每段对齐:

[root@Zabbix server ~]# printf "%-10s\n" ID Name Number 
ID        
Name      
Number 
printf "%-10s\n"
[root@Zabbix server ~]# printf "%10s\n" ID Name Number          
        ID
      Name
    Number
printf "%10s\n"

 

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}
cat file1 file2

 

将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
cat -b

 

tac

功能:连接文件和倒叙打印文件

常用选项:

实例:

倒序打印每一行:

[root@Zabbix server ~]# tac a.txt 
efg
abc
456

123
tac file

 

rev

功能:反向打印文件的每一行

常用选项:

实例:

[root@Zabbix server ~]# echo "123" | rev
321
rev

 

wc

功能:统计文件行数,字节,字符数

常用选项:

-c  打印文件字节数,一个英文字母占1个字节,一个汉字占2-4字节 (根据编码)

-m 打印文件字符数,一个汉字占2个字符

-l 打印多少行

实例:

统计文件多少行:

[root@Zabbix server ~]# wc -l a.txt 
5 a.txt
wc -l file

 

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~
cp -b

 

复制目录:

[root@Zabbix server ~]# cp -rf redis /opt/
cp -rf

 

mkdir

功能:创建目录

常用选项:

-p 递归创建目录

-v 显示创建过程

实例:

创建多级目录:

[root@Zabbix server ~]# mkdir -p /shenjianyu/test/test1
mkdir -p

 

创建多个目录:

[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
mkdir { , }

 

创建连续目录:

[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
mkdir { .. }

 

mv

功能:移动文件,目录或者重命名

常用选项:

-b 目标文件存在创建备份。备份文件是”文件名后跟~“

-u 当源文件比目的文件修改时间新时才移动

-v 显示移动过程

实例:

移动文件:

[root@Zabbix server ~]# mv a.txt /opt/
mv

 

重命名文件:

[root@Zabbix server ~]# mv a.txt b.txt
mv

 

 

 

本文并非原创,是根据李振良老师的总结加上我自己的一些实例

posted @ 2017-03-20 11:36  沈剑宇  阅读(205)  评论(0编辑  收藏  举报