• 每天十个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
    2
    3
    "
    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

    %% 输出单个%

    一些常用的空白符:

     换行

    回车

    水平制表

    对齐方式:

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

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

    实例:

    输出一个字符:

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

    保留一个小数点:

    [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
    printf "%.nf

    格式化输出:

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

    左对齐宽度为10:

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

    右对齐宽度为10:

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

    每段对齐:

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

    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

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

  • 相关阅读:
    深入.net(文件操作)
    深入.net(多态二)
    Django之form组件
    cookie
    Django进阶
    Django基础
    JQuery
    Dom
    JavaScript
    CSS
  • 原文地址:https://www.cnblogs.com/shenjianyu/p/6586101.html
Copyright © 2020-2023  润新知