Linux常用命令

把之前写的笔记搬过来吧,防丢。

1、cat命令
   cat -n 文件名:显示文件内容并对行数编号
   cat -b 文件名:显示行号但不对空白行编号
   cat -s 文件名:遇到有连续两行以上的空白行,就合并成一行
   cat -E 文件名:在每行结束的时候显示$
   cat -T 文件名:将TAB字符显示为^l
   cat -n 文件1 >文件2:将文件1的内容加上行号输入到文件2中
   cat -b textfile1 textfile2 >> textfile3:把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里。
   cat /dev/null > 文件名:清空文件内容
2、chattr命令
   lsattr:用于显示文件属性
   chattr -RV  递归处理并显示过程
             |-- +开启文件或者目录属性
             |-- -关闭文件或者目录属性
             |-- =指定文件或目录的属性  
                                       |--a:让文件或目录仅供附加用途
                                       |--b:不让更新文件或者目录的最后存取时间
                                       |--c:将文件或目录压缩后存放
                                       |--i:不得随意更动文件或目录
                                       |--s:保密性删除文件或目录
                                       |--S:即时更新文件或目录
                                       |--u:预防意外删除
    chattr +a 文件夹:某个文件或目录只能追加数据,但不能删除,适用于各种日志文件。
3、chgrp:
    u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
    + 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
    r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
    --help : 显示辅助说明
   chmod ugo+r 文件名/chmod a+r 文件名:将文件设为所有人都可以读取
   chmod ug+w,o-w file1.txt file2.txt:将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
   chmod u+x ex1.py:将 ex1.py 设定为只有该文件拥有者可以执行 :
   chmod -R a+r *:将目前目录下的所有文件与子目录皆设为任何人可读取 :
   chmod 4755 filename可使此程序具有root的权限
4、chown改变文件拥有者:
    这个指令只有是由系统管理者(root)所使用,一般使用者没有权限可以改变别人的文件拥有者,也没有权限可以自己的文件拥有者改设为别人。只有系统管理者(root)才有这样的权限。
5、cmp
   cmp 文件1 文件2:比较两个文件是否相同
   cmp -l 文件1 文件2:比较两个文件是否相同,并列出所有的不同
6、diff
   diff 文件1 文件2:比较两个文件的不同(竖排显示)
   diff 文件1 文件2 -y -W 50:比较两个文件的不同(横排显示)
   diff 文件1 文件2    -B:不检查空白行
   diff 文件1 文件2    -i:不检查大小写
   diff 文件1 文件2 -H:比较大文件的时候能加快速度
   diff 文件1 文件2 -q:仅显示有无差异,不显示详细信息
   diff 文件1 文件2 -w:忽略全部的空格字符
7、file
   file 文件名:显示文件信息
   file -b 文件名:列出辨识结果,不显示文件名
   file -i 文件名:显示mine类别
   file -z 文件名:尝试去解读压缩文件内容
8、find
   find -name/-iname "*.txt":查找以.txt结尾的文件(iname会忽略大小写)
   find -ipath/path p:查找路径符合路径的文件,ipath会忽略大小写   
   find -type f:将当前目录和目录下的所有文件都列出来
   find -ctime -n:将当前目录下近n天更新过的文件列出
   find -cmin -n:将当前目录下过去n分钟内修改过的文件列出来
   find -atime -n:将当前目录下近n天读取过的文件列出来
   find -amin -n:将过去n分钟内读取过的文件列出来
   find /var/logs -type f -mtime +7 -ok rm { } :查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们。
   find . -type f -perm 644 -exec ls -l { } :查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件
   find / -type f -size 0 -exec ls -l { }:查找系统中所有文件长度为0的普通文件,并列出它们的完整路径
   find /var/logs -type f -mtime +7 -ok rm { }:查找/var/logs目录中更改时间在7日以前的普通文件,并在删除之前询问它们:
9、cut
   cut -b n 文件名:以字节为单位进行分割剪切每一行的第n个字节
   cut -c n 文件名:以字符为单位进行分割剪切每一行的第n个字符
10、ln
   ln -s log2013.log link2013 :给文件创建软链接,为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效
   ln log2013.log ln2013:给文件创建硬链接,为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同
11、less
   less 参数 文件名
    -b <缓冲区大小> 设置缓冲区的大小
    -e 当文件显示结束后,自动离开
    -f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
    -g 只标志最后搜索的关键词
    -i 忽略搜索时的大小写
    -m 显示类似more命令的百分比
    -N 显示每行的行号
    -o <文件名> 将less 输出的内容在指定文件中保存起来
    -Q 不使用警告音
    -s 显示连续空行为一行
    -S 行过长时间将超出部分舍弃
    -x <数字> 将"tab"键显示为规定的数字空格
    /字符串:向下搜索"字符串"的功能
    ?字符串:向上搜索"字符串"的功能
    n:重复前一个搜索(与 / 或 ? 有关)
    N:反向重复前一个搜索(与 / 或 ? 有关)
    b 向后翻一页
    d 向后翻半页
    h 显示帮助界面
    Q 退出less 命令
    u 向前滚动半页
    y 向前滚动一行
    空格键 滚动一页
    回车键 滚动一行
    [pagedown]: 向下翻动一页
    [pageup]: 向上翻动一页
12、locate
    locate命令用于查找符合条件的文档,他会去保存文档和目录名称的数据库内,查找合乎范本样式条件的文档或目录。
    locate与find 不同: find 是去硬盘找,locate 只在/var/lib/slocate资料库中找。
    locate的速度比find快,它并不是真的查找,而是查数据库,一般文件数据库在/var/lib/slocate/slocate.db中,所以locate的查找并不是实时的,而是以数据库的更新为准,一般是系统自己维护,也可以手工升级数据库。
13、more
    more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示
14、mmove
    mmove 文件1 文件夹:将文件放到文件夹下
15、mv
    mv 文件名 目录名:将源文件名改为目标文件名
    mv 文件名 目录名:将文件移动到目标目录下
    mv 目录名 目录名:目标目录名存在,就将源目录名移动到目标目录名下,如果源目标目录不存爱,
    就改名
16、paste命令
    paste 文件1 文件2:将文件1和文件2一列列de加以合并。
    paste -s 文件1:合并指定文件的多行数据
17、rm命令
    rm 文件:删除一般文件
    rm -r 文件夹:递归删除文件夹及文件夹中文件
    rm -r *:删除当前目录下的所有文件及目录
    rm -i 文件夹:删除前意义询问确认
    rm -f 文件夹:删除前无需确认即逐一删除
18、split命令
    split -n 文件:将文件每n行分割成一个文件。
19、tee命令
    tee 文件1 文件2:将用户输入的内容保存到文件1和文件2中
    tee -a 文件:将用户输入内容追加到文件末尾
20、tmpwatch命令
    tmpwatch 24 /tmp/:删除/tmp目录中超过一天未使用的文件
21、touch命令
    touch 文件:修改文件时间属性为当前系统时间
    touch 文件名:如果指定的文件不存在,则将创建一个新的空白文件。
22、which命令
    which bash:查看指定命令bash的绝对路径
23、cp命令
    cp 源文件 目标路径:将源文件复制到目标路径下
    cp -r 源路径 目标路径:将源文件夹下的所有文件递归复制到目标路径下
24、whereis
    whereis -b 命令:只查找二进制文件
    whereis -m 命令:只查找说明文件
25、rhmask命令
    rhmask 文件1 文件2:将文件1进行加密后保存为文件2
26、awk命令
    awk '{print $1,$4}' log.txt:每行按空格或TAB分割,输出文本中的1、4项
    awk '{printf "%-8s %-10s
",$1,$4}' log.txt:格式化输出
    awk -F, '{print $1,$2}'   log.txt:使用","分割
    awk 'BEGIN{FS=","} {print $1,$2}'     log.txt:或者使用内建变量
    awk -F '[ ,]'  '{print $1,$2,$5}'   log.txt: 使用多个分隔符.先使用空格分割,然后对分割结果再使用","分割
    awk -va=1 '{print $1,$1+a}' log.txt:设置变量:a=1
    awk '$1>2' log.txt:过滤第一列大于2的行
    awk '$1==2 {print $1,$3}' log.txt:过滤第一列等于2的行
    awk '$1>2 && $2=="Are" {print $1,$2,$3}' log.txt :过滤第一列大于2并且第二列等于'Are'的行
    awk 'BEGIN{printf "%4s %4s %4s %4s %4s %4s %4s %4s %4s
","FILENAME","ARGC","FNR","FS","NF","NR","OFS","ORS","RS";
    printf "---------------------------------------------
"} 
    {printf "%4s %4s %4s %4s %4s %4s %4s %4s %4s
",FILENAME,ARGC,FNR,FS,NF,NR,OFS,ORS,RS}'  log.txt:
    格式化输出:FILENAM(当前文件名)FNR(各文件分别计数的行号)FS(字段分隔符(默认是任何空格))
    NF(输入字段分割符)NR(已经读出的记录数,就是行号,从1开始)OFS(输出记录分隔符(输出换行符),输出时用指定的符号代替换行符)
    ORS    (输出记录分隔符(默认值是一个换行符))RS(记录分隔符(默认是一个换行符))
    awk '/re/ ' log.txt:输出包含"re" 的行
    awk '$2 ~ /th/ {print $2,$4}' log.txt:输出第二列包含 "th",并打印第二列与第四列
    awk 'BEGIN{IGNORECASE=1} /this/' log.txt:忽略大小写
    awk '$2 !~ /th/ {print $2,$4}' log.txt:模式取反
    awk 'BEGIN{print "HELLO WORLD"}':输出hello world
    ls -l *.txt | awk '{sum+=$6} END {print sum}':计算文件大小
    awk 'length>80' log.txt:从文件中找出长度大于80的行
    seq 9 | sed 'H;g' | awk -v RS='' '{for(i=1;i<=NF;i++)printf("%dx%d=%d%s", i, NR, i*NR, i==NR?"
":"	")}':
    九九乘法表
27、colrm命令
    从输入设备中读取内容输出到输出设备
    colrm n :删除n列之后的内容
    colrm n l:删除n列到l列之间的内容
28、comm命令
    comm 文件1 文件2
    第一列是仅在文件1出现的行,第二列是仅在文件2中出现的行,第三列包含在文件1和文件2相同的行,各列是以制表符为界定符。
29、ed命令
    ed是Linux中功能最简单的文本编辑程序,一次仅能编辑一行而非全屏幕方式的操作。
    ed              <- 激活 ed 命令 
    a                 <- 告诉 ed 我要编辑新文件 
    My name is Titan. <- 输入第一行内容 
    And I love Perl very much. <- 输入第二行内容 
    .                 <- 返回 ed 的命令行状态 
    i                 <- 告诉 ed 我要在最后一行之前插入内容 
    I am 24.          <- 将“I am 24.”插入“My name is Titan.”和“And I love Perl very much.”之间 
    .                 <- 返回 ed 的命令行状态 
    c                 <- 告诉 ed 我要替换最后一行输入内容 
    I am 24 years old. <- 将“I am 24.”替换成“I am 24 years old.”(注意:这里替换的是最后输的内容) 
    .                 <- 返回 ed 的命令行状态 
    w readme.text     <- 将文件命名为“readme.text”并保存(注意:如果是编辑已经存在的文件,只需要敲入 w 即可) 
    q                 <- 完全退出 ed 编辑器
30、egrep命令
    egrep aaa *:查找当前目录下包含aaa字符的行。
31、ex命令
    ex 文件名:进入ex编辑模式,"visual"后按回车键,将进入到vi 指令全屏界面;如果输入"q",则退出编辑器。
32、join命令
    join 文件1 文件2:将文件1和文件2按照行号链接起来
33、look命令
    look L 文件名:在文件中查找以L开头的所有行
34、rgrep命令 
    rgrep Hello *:在当前目录下查找包含“Hello字符串的文件”
35、sed命令
    sed -e nanewLine testfile:在testfile文件的第n行后添加一行,并减将结果输出到标准输出
    nl 文件名 | sed '2,5d':将文件内容列出并且印行号,同时将2-5行删除
    nl 文件名 | sed '2d':删除第2行数据
    nl 文件名 | sed '3,$d':删除第三行到最后一行
    nl 文件名 | sed '2a hhhh':在第二行后面加上‘hhhh’
    nl 文件名 | sed '2i hhhh':在第二行前面加上‘hhhh’
    nl 文件名 | sed '2,5c hhh':将第2-5行内容取代为‘hhh’
    nl 文件名 | sed -n '5,7p':仅显示5-7行数据
    nl 文件名 | sed -n '/hhh/p':查找文件中包含hhh的行
    nl 文件名 | sed '/hhh/d':删除文件中包含hhh的行
    nl 文件名 | sed -n '/hhh/{s/hhh/kkk/;p;q}':找到文件中包含hhh的行并把hhh用kkk替代
    sed 's/要被取代的字符串、新的字符串/g':查找文件中的字符串并替代
    sed -i 's/.$/!/g':直接修改文件内容,将文件中以.结尾的修改为!
    sed -i '$a hhhhh' 文件名:在文件最后一行加上hhhh
36、sort命令
    sort 文件名:将文件第一列以ASCII码次序排列
37、tr命令
    cat testfile |tr a-z A-Z:将文件中的小写字母转换成大写字母
38、expr命令
    expr length 'this is a test':计算字符串长度
    expr substr 'this is a test':抓取字符串
    expr index 'adsafadasfa' a :抓取滴哟个字符数字出现的位置
    expr 14 % 9:整数运算
39、uniq命令
    uniq 文件名:删除文件中的重复行
    uniq-c 文件名:检查文件并删除文件中重复出现的行,并在行首显示该行重复出现的次数
40、wc命令
    wc 文件名:统计文件信息
    3 92 598 文件名:三个数字分别代表文件的行数、单词数、以及文件的字节数
    wc 文件1 文件2 文件3:统计三个文件信息
41、let命令
    let 命令是 BASH 中用于计算的工具,用于执行一个或多个表达式。
    let使用字符间不需要用字符隔开,expr需要使用空格隔开
42、bye命令
    用于中断FTP连线并结束程序
43、uuto命令
    uuto./testfile localhost/tmp #将文件传送到远程UUCP 主机localhost的tmp目录 
44、ftp命令
    ftp ftp.kernel.org #发起链接请求 
45、df命令
    df 统计磁盘使用情况
46、dir命令
    dir -l 文件夹:列出文件夹中所有内容的详细信息
47、du命令
    du 显示文件或文件夹所占空间
    du 文件/文件夹:显示指定文件或文件夹所占用空间
    du -h 文件夹:显示目录所占空间情况
48、mkdir命令
    mkdir AAA:创建名为AAA的目录
    mkdir -p BBB/Test:递归创建BBB目录以及Test目录
49、pwd命令
    pwd:显示工作目录
50、rmdir命令
    rmdir AAA:删除名为AAA的目录
    rmdir -p BBB/Test:递归删除BBB目录以及Test目录
51、tree命令
    tree :以树状结构列出当前目录结构
52、stat命令
    stat 文件:查看文件的inode内容
53、ls命令
    ls 显示当前工作目录下内容
    ls 文件夹:显示指定工作目录下的内容
    ls -ltr s*:列出当前目录下所有以s开头的文件
    ls -lR /bin:将bin目录下所有文件详细资料列出
54、telent命令
    telent ip地址:登陆远程主机
55、nc命令
    nc -v -z -w2 192.168.0.3 1-100 :TCP端口扫描
    nc -u -z -w2 192.168.0.1 1-1000:扫描UDP端口
    nc -nvv 192.168.0.1 80 //扫描 80端口(扫描指定端口)
56、httpd命令
    httpd命令是Apache HTTP服务器程序。
    httpd -t:检查配置文件语法错误
    httpd:启动httpd
    httpd -l:显示编译模块
    httpd -L>1.log|tail -n 20 1.log:显示配置文件
57、ifconfig命令
    ifconfig:显示网络设备信息
    ifconfig eth0 down:关闭指定网卡
    ifconfig eth0 up:启动指定网卡
    ifconfig eth0 add 33ffe:3240:800:1005::2/ 64 :为网卡配置IPv6地址
    ifconfig eth0 del 33ffe:3240:800:1005::2/ 64 :为网卡删除IPv6地址
    ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE :修改MAC地址
    ifconfig eth1 hw ether 00:1D:1C:1D:1E :关闭网卡并修改MAC地址
    ifconfig eth0 192.168.1.56 :给eth0网卡配置IP地址
    ifconfig eth0 192.168.1.56 netmask 255.255.255.0 :给eth0网卡配置IP地址,并加上子掩码
    ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255: 给eth0网卡配置IP地址,加上子掩码,加上个广播地址
    ifconfig eth0 arp:开启ARP协议
    ifconfig eth0 -arp:关闭ARP协议
    ifconfig eth0 mtu 1500:设置传输最大单元
58、netstat命令
    netstat -a:显示详细的网络状况
    netstat -nu:显示当前户籍UDP连接状况
    netstat -apu:显示UDP端口号的使用情况
    netstat -i:显示网卡列表
    netstat -g:显示组播组的关系
    netstat -s:显示网络统计信息
    netstat -l:显示监听的套接口
59、ping命令
    ping www.baidu.com:检测是否与主机连通
    ping -c 2 www.baidu.com:指定接收包的次数(收到两次包后自动退出)
    ping -i 3 -s 1024 -t 255 g.cn:ping主机
60、ytalk命令
    who:显示当前用户
    ytalk hhhh:发送消息
61、useradd命令
    useradd kk:添加用户kk
    useradd ?g root kk:添加用户kk,并制定用户所在的组为root用户组
    useradd ?r kk:创建一个系统用户kk
    useradd -d /home/myf kk :添加新用户kk,其home目录为/home/myf
62、chfn命令
    chfn:改变finger信息
    chfn -f hnunix:改变账号真实姓名
63、date命令
    date:显示当前时间
    date '+%c':显示完整时间(2018年02月06日 星期二 10时18分12秒)
    date '+%D':显示数字日期,年份两位数表示
    date '+%x':显示日期,年份用四位数表示
    date '+%T':显示24小时的格式
    date '+%X':显示24小时格式
    date '+usr_time: $1:%M %P -hey':按照自己格式输出
    date '+%T%n%D':显示时间后换行显示日期
    date '+%B %d':显示月份与日
    date --date '12:34:56':显示日期与设定时间
64、exit命令
    exit:退出终端
65、finger命令
    finger -l:显示用户信息
    finger -m root:显示指定用户信息
    finger root:查询本机管理员资料
66、sleep命令
    sleep 5m:休眠5分钟
    date;sleep 1m;date:显示目前时间,1分钟后再次显示时间。
67、halt命令
    halt:关闭系统
    halt -p:关闭系统并关闭电源
    halt -d:关闭系统,但不留下记录
68、kill命令
    kill 123456:杀死进程
    kill -KILL 123456:强制杀死进程
    kill -HUP pid:发送SIGHUP信号
    kill -9 123456:彻底杀死进程
    kill -l:显示信号
    kill -9 $(ps -ef | grep yarn):杀死指定用户的所有进程
    kill -u yarn:杀死指定用户的所有进程
69、last命令
    last命令用于显示系统开机以来获是从每月初登入者的讯息。
    last -R -n:省略hostname栏位,仅显示前n个
    last -n n -R:简略显示,并制定显示个数
    last -n 5 -a -i:显示最后一列显示主机IP地址
70、lastb命令
    lastb:显示登陆失败的用户
71、login命令
    login:用新的身份登陆系统
72、logname命令
    logname:显示登陆账号信息
73、logout命令
    logout:退出系统
74、ps命令
    ps -A:显示进程信息
    ps -u root:显示root进程用户信息
    ps -ef:显示所有mine令,连带命令行
  常见的用法:
  
以下这条命令是检查java 进程是否存在:ps -ef |grep java字段含义如下:

    UID PID PPID C STIME TTY TIME CMD
    root 14124 13991 0 00:38 pts/0 00:00:00 grep --color=auto dae

  中间的|是管道命令 是指ps命令与grep同时执行
  grep命令是查找,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
  grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。

75、top命令
    top:显示进程信息
    top -c:显示完整命令
    top -b:以批处理模式显示程序信息
    top -S:以累积模式显示程序信息
    top -n 2:更新两次之后种植更新显示
    top -d 3:更新周期为3秒
    top -p 139:显示进程号为139的进程信息,CPU、内存占用率等
    top -n 2 -b <top.log:将更新显示二次的结果输入到名称为top.log的档案里
76、pstree命令
    pstree:显示进程关系
    pstree -apnh:显示进程间关系,特别表明在运行过程中的进程
    pstree -u:同时显示用户名
77、reboot命令
    reboot :重新启动系统
78、shutdown命令
    shutdown -h now:立即关机
    shutdown +5 "System will shutdown after 5minutes":5分钟之后关机,并向向前台发送信息
79、rwho命令
    rwho:显示本地局域网内的所有用户
80、sudo命令
    sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。
    sudo -V:显示sudo版本信息
    sudo -l:显示当前用户的权限
81、swatch命令
    swatch:开启系统监视
82、uname命令
    uname -a:显示系统信息
    uname -m:显示计算机类型
    uname -n:显示计算机名
    uname -r:显示操作系统发行编号
    uname -s:显示操作系统名称
    uname -v:显示系统时间
83、userconf命令
    userconf --adduser 666 hh lord /bin/bash:新增用户
84、userdel命令
    userdel hh:删除用户账户
85、usermod命令
    usermod -d /home/hh root:更改登录目录
    usermod -u 777 root:改变用户的uid
86、vlock命令
    vlock:锁定虚拟终端
87、who命令
    who:显示当前登录系统的用户
    who -H:显示标题栏
    who -l -H:显示用户登录来源
    who -T -H:显示终端属性
    who -m -H:只显示当前用户
    who -q:精简显示模式
88、whoami命令
    whoami:显示用户名
89、whois命令
    whois root:查找root用户信息
    whois .Lx138.Com:查询域名描述信息
    whois -H Lx138.COm:查询域名信息省略法律声明
    whois -p 80 Lx138.COm:指定端口查询
90、su命令
    su -c ls root:变更帐号为 root 并在执行 ls 指令后退出变回原使用者
    su root -f:变更帐号为 root 并传入 -f 参数给新执行的 shell
    su -hh:变更账号为hh并改变工作目录至hh下
91、w命令
    w:显示当前用户,不显示登陆位置
    w -f:不显示登陆位置
    w -s:以精简模式显示。
    w -h:不显示标题
92、id命令
    id:显示当前用户id
    id -g:显示用户群组id
    id hh:显示指定用户信息
93、free命令
    free:显示内存使用信息
    free -t:以总和的形式查询内存使用信息
    free -s 10:每10s执行一次命令
94、clear命令
    clear:清屏
95、alias命令
    alias lx=ls:给命令设置别名
96、bind命令
    bind -l:显示按键组合的内容
    bind -q abort:列出指定功能的按键和按键组合
97、chroot命令
    chroot /mnt/ls:改变根目录
98、clock命令
    clock:获取当前的时间
    clock -utc:显示UTC时间
99、crontab命令
    crontab -e:进入编辑模式
    minute hour day month week command
    0         7      *      *       *    /bin/l:每月每天的7点执行一次命令
    *         *     *      *        *    command:每分钟执行一次命令
    3,15     *      *      *        *    command:每天的第3分钟和第15分钟执行一次命令
    3,15     8-11 *      *        *    command:在上午8点到11点的第3和第15分钟执行
    3,15     8-11 */2 *        *     command:每隔两天的上午8点到11点的第3和第15分钟执行
100、declare命令
    declare -i ab :声明整数型变量
    declare -r ab :设置变量为只读
101、dmesg命令
    dmesg |less/demesg:显示开机信息
102、enable命令
    enable:显示shell命令
103、eval命令
    eval可读取一连串的参数,然后再依参数本身的特性来执行。
    参数不限数目,彼此之间用分号分开。
    eval enable;ls:连接多个命令
104、export命令
    export -p :列出当前的环境变量值
    export MYENV=7 :定义环境变量并赋值
105、rpm命令
    -a  查询所有套件。
    -b<完成阶段><套件档>+或-t <完成阶段><套件档>+  设置包装套件的完成阶段,并指定套件档的文件名称。
    -c  只列出组态配置文件,本参数需配合"-l"参数使用。
    -d  只列出文本文件,本参数需配合"-l"参数使用。
    -e<套件档>或--erase<套件档>  删除指定的套件。
    -f<文件>+  查询拥有指定文件的套件。
    -h或--hash  套件安装时列出标记。
    -i  显示套件的相关信息。
    -i<套件档>或--install<套件档>  安装指定的套件档。
    -l  显示套件的文件列表。
    -p<套件档>+  查询指定的RPM套件档。
    -q  使用询问模式,当遇到任何问题时,rpm指令会先询问用户。
    -R  显示套件的关联性信息。
    -s  显示文件状态,本参数需配合"-l"参数使用。
    -U<套件档>或--upgrade<套件档> 升级指定的套件档。
    -v  显示指令执行过程。
    -vv  详细显示指令执行过程,便于排错。
    -addsign<套件档>+  在指定的套件里加上新的签名认证。
    --allfiles  安装所有文件。
    --allmatches  删除符合指定的套件所包含的文件。
    --badreloc  发生错误时,重新配置文件。
    --buildroot<根目录>  设置产生套件时,欲当作根目录的目录。
    --changelog  显示套件的更改记录。
    --checksig<套件档>+  检验该套件的签名认证。
    --clean  完成套件的包装后,删除包装过程中所建立的目录。
    --dbpath<数据库目录>  设置欲存放RPM数据库的目录。
    --dump  显示每个文件的验证信息。本参数需配合"-l"参数使用。
    --excludedocs  安装套件时,不要安装文件。
    --excludepath<排除目录>  忽略在指定目录里的所有文件。
    --force  强行置换套件或文件。
    --ftpproxy<主机名称或IP地址>  指定FTP代理服务器。
    --ftpport<通信端口>  设置FTP服务器或代理服务器使用的通信端口。
    --help  在线帮助。
    --httpproxy<主机名称或IP地址>  指定HTTP代理服务器。
    --httpport<通信端口>  设置HTTP服务器或代理服务器使用的通信端口。
    --ignorearch  不验证套件档的结构正确性。
    --ignoreos  不验证套件档的结构正确性。
    --ignoresize  安装前不检查磁盘空间是否足够。
    --includedocs  安装套件时,一并安装文件。
    --initdb  确认有正确的数据库可以使用。
    --justdb  更新数据库,当不变动任何文件。
    --nobulid  不执行任何完成阶段。
    --nodeps  不验证套件档的相互关联性。
    --nofiles  不验证文件的属性。
    --nogpg  略过所有GPG的签名认证。
    --nomd5  不使用MD5编码演算确认文件的大小与正确性。
    --nopgp  略过所有PGP的签名认证。
    --noorder  不重新编排套件的安装顺序,以便满足其彼此间的关联性。
    --noscripts  不执行任何安装Script文件。
    --notriggers  不执行该套件包装内的任何Script文件。
    --oldpackage  升级成旧版本的套件。
    --percent  安装套件时显示完成度百分比。
    --pipe<执行指令>  建立管道,把输出结果转为该执行指令的输入数据。
    --prefix<目的目录>  若重新配置文件,就把文件放到指定的目录下。
    --provides  查询该套件所提供的兼容度。
    --queryformat<档头格式>  设置档头的表示方式。
    --querytags  列出可用于档头格式的标签。
    --rcfile<配置文件>  使用指定的配置文件。
    --rebulid<套件档>  安装原始代码套件,重新产生二进制文件的套件。
    --rebuliddb  以现有的数据库为主,重建一份数据库。
    --recompile<套件档>  此参数的效果和指定"--rebulid"参数类似,当不产生套件档。
    --relocate<原目录>=<新目录>  把本来会放到原目录下的文件改放到新目录。
    --replacefiles  强行置换文件。
    --replacepkgs  强行置换套件。
        --requires  查询该套件所需要的兼容度。
    --resing<套件档>+  删除现有认证,重新产生签名认证。
    --rmsource  完成套件的包装后,删除原始代码。
    --rmsource<文件>  删除原始代码和指定的文件。
    --root<根目录>  设置欲当作根目录的目录。
    --scripts  列出安装套件的Script的变量。
    --setperms  设置文件的权限。
    --setugids  设置文件的拥有者和所属群组。
    --short-circuit  直接略过指定完成阶段的步骤。
    --sign  产生PGP或GPG的签名认证。
    --target=<安装平台>+  设置产生的套件的安装平台。
    --test  仅作测试,并不真的安装套件。
    --timecheck<检查秒数>  设置检查时间的计时秒数。
    --triggeredby<套件档>  查询该套件的包装者。
    --triggers  展示套件档内的包装Script。
    --verify  此参数的效果和指定"-q"参数相同。
    --version  显示版本信息。
    --whatprovides<功能特性>  查询该套件对指定的功能特性所提供的兼容度。
    --whatrequires<功能特性>  查询该套件对指定的功能特性所需要的兼容度。
    
    rpm -hvi dejagnu-1.4.2-10.noarch.rpm :安装软件
    rpm -qi dejagnu-1.4.2-10.noarch.rpm:显示软件安装信息
106、set命令
    set命令用于设置shell。
    set:显示环境变量
107、passwd命令
    passwd hh:设置hh用户的密码
    passwd -S hh:显示账号密码信息
    passwd -d lx138:删除用户密码
108、rmmod命令
    lsmod:显示已安装的模块
    rmmod -v 模块名:卸载模块
    insmod -v 模块名 >1.log:安装模块
109、modinfo命令
    modinfo sg:显示sg模块信息
110、time命令
    用于计算某指令执行消耗的系统时间
    time date:date命令执行消耗系统时间
111、ulimit命令
    ulimit -a:显示系统资源的设置
    ulimit -u 500:设置单一用户程序上限
112、unset命令
    lx="ls -lh":设定环境变量
    $lx:使用环境变量
    unset lx:删除当前环境变量
113、ar命令
    ar rv hh.bak *.txt:打包以.txt结尾的文件,命名为hh.bak
    ar t hh.bak:显示打包文件的内容
    ar d hh.bak aaa.txt bbb.txt:删除打包文件中的文件成员
114、bunzip2命令
    bunzip2 -v aaa.bz2:解压.bz2的压缩文件
115、bzip2命令
    bzip2 -v temp.bz2 :解压文件显示详细处理信息 
    bzip2 -c a.c b.c c.c:压缩文件
    bzip2 -t temp.bz2:检查文件完整性
116、gunzip命令
    gunzip ab.gz:解压后缀为.gz的文件
117、compress命令
    compress abc.h:压缩文件
    compress -d aaa.h.Z:解压文件
    compress -b 7 abc.h:按指定比例压缩文件
    compress -rf /home/abc/:强制压缩文件夹
118、dump命令
    用于备份文件系统
    dump -0 -u /dev/tape /home/:备份文件到磁带
119、gzexe命令
    gzexe abc:压缩可执行文件
120、gzip命令
    gzip *:压缩目录下的所有文件夹
    gzip -dv *:解压文件,并列出详细信息
121、tar命令
    tar -cvzf test.tar.gz a.c:压缩a.c文件为test.tar.gz
    tar -zvfx test.tar.gz:解压文件
    tar -tzvf test.tar.gz:列出压缩文件内容
122、zip命令
    zip -q -r hh.zip /home/hh:将/home/hh这个目录下所有文件和文件夹打包为当前目录下的hh.zip
    zip -q -r hh.zip *:把当前目录下的所有文件和文件夹打包为hh.zip
    zip -dv hh.zip a.c:从压缩文件hh.zip中删除a.c文件
123、zipinfo命令
    zipinfo cp.zip:显示压缩文件信息
    zipinfo -v aa.zip:显示压缩文件中每个文件信息
124、vi编辑器
    Ctrl+u:向文件首翻半屏;桌面
    Ctrl+d:向文件尾翻半屏;
    Ctrl+f:向文件尾翻一屏;
    Ctrl+b:向文件首翻一屏;
    Esc:从编辑模式切换到命令模式;
    h 或 向左箭头键(←)    光标向左移动一个字符
    j 或 向下箭头键(↓)    光标向下移动一个字符
    k 或 向上箭头键(↑)    光标向上移动一个字符
    l 或 向右箭头键(→)    光标向右移动一个字符
    数字+h,j,k,l:可以选择想某个方向移动数字行或列
    [Ctrl] + [f]    屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
    [Ctrl] + [b]    屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
    [Ctrl] + [d]    屏幕『向下』移动半页
    [Ctrl] + [u]    屏幕『向上』移动半页
    +    光标移动到非空格符的下一行
    -    光标移动到非空格符的上一行
    n<space>    那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20<space> 则光标会向后面移动 20 个字符距离。
    0 或功能键[Home]    这是数字『 0 』:移动到这一行的最前面字符处 (常用)
    $ 或功能键[End]    移动到这一行的最后面字符处(常用)
    H    光标移动到这个屏幕的最上方那一行的第一个字符
    M    光标移动到这个屏幕的中央那一行的第一个字符
    L    光标移动到这个屏幕的最下方那一行的第一个字符
    G    移动到这个档案的最后一行(常用)
    nG    n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
    gg    移动到这个档案的第一行,相当于 1G 啊! (常用)
    n<Enter>    n 为数字。光标向下移动 n 行(常用)
    搜索替换
    /word    向光标之下寻找一个名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
    ?word    向光标之上寻找一个字符串名称为 word 的字符串。
    n    这个 n 是英文按键。代表重复前一个搜寻的动作。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为 vbird 的字符串!
    N    这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
    使用 /word 配合 n 及 N 是非常有帮助的!可以让你重复的找到一些你搜寻的关键词!
    :n1,n2s/word1/word2/g    n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100200 行之间搜寻 vbird 并取代为 VBIRD 则:
    『:100,200s/vbird/VBIRD/g』。(常用)
    :1,$s/word1/word2/g    从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !(常用)
    :1,$s/word1/word2/gc    从第一行到最后一行寻找 word1 字符串,并将该字符串取代为 word2 !且在取代前显示提示字符给用户确认 (confirm) 是否需要取代!(常用)
    删除、复制与贴上
    x, X    在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X 为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
    nx    n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10 个字符, 『10x』。
    dd    删除游标所在的那一整行(常用)
    ndd    n 为数字。删除光标所在的向下 n 行,例如 20dd 则是删除 20 行 (常用)
    d1G    删除光标所在到第一行的所有数据
    dG    删除光标所在到最后一行的所有数据
    d$    删除游标所在处,到该行的最后一个字符
    d0    那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符
    yy    复制游标所在的那一行(常用)
    nyy    n 为数字。复制光标所在的向下 n 行,例如 20yy 则是复制 20 行(常用)
    y1G    复制游标所在行到第一行的所有数据
    yG    复制游标所在行到最后一行的所有数据
    y0    复制光标所在的那个字符到该行行首的所有数据
    y$    复制光标所在的那个字符到该行行尾的所有数据
    p, P    p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行! 举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21 行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)
    J    将光标所在行与下一行的数据结合成同一行
    c    重复删除多个数据,例如向下删除 10 行,[ 10cj ]
    u    复原前一个动作。(常用)
    [Ctrl]+r    重做上一个动作。(常用)
    .    重复前一个动作(常用)
    第二部份:一般模式切换到编辑模式的可用的按钮说明
    进入输入或取代的编辑模式
    i, I    进入输入模式(Insert mode):
    i 为『从目前光标所在处输入』, I 为『在目前所在行的第一个非空格符处开始输入』。 (常用)
    a, A    进入输入模式(Insert mode):
    a 为『从目前光标所在的下一个字符处开始输入』, A 为『从光标所在行的最后一个字符处开始输入』。(常用)
    o, O    进入输入模式(Insert mode):
    r, R    进入取代模式(Replace mode):
    r 只会取代光标所在的那一个字符一次;R会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
    [Esc]    退出编辑模式,回到一般模式中(常用)
    第三部份:一般模式切换到指令行模式的可用的按钮说明
    指令行的储存、离开等指令
    :w    将编辑的数据写入硬盘档案中(常用)
    :w!    若文件属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟你对该档案的档案权限有关啊!
    :q    离开 vi (常用)
    :q!    若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。
    :wq    储存后离开,若为 :wq! 则为强制储存后离开 (常用)
    ZZ    若档案没有更动,则不储存离开,若档案已经被更动过,则储存后离开!
    :w [filename]    将编辑的数据储存成另一个档案(类似另存新档)
    :r [filename]    在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
    :n1,n2 w [filename]    将 n1 到 n2 的内容储存成 filename 这个档案。
    :! command    暂时离开 vi 到指令行模式下执行 command 的显示结果!例如
    『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!
    vim 环境的变更
    :set nu    显示行号,设定之后,会在每一行的前缀显示该行的行号
    :set nonu    与 set nu 相反,为取消行号!
    u   撤销上一步的操作
    Ctrl+r 恢复上一步被撤销的操作
    

    
     
    
    
    



   
唯有热爱方能抵御岁月漫长。
原文地址:https://www.cnblogs.com/syq816/p/12355133.html