Linux 命令详解

1.帮助命令

1.1 help命令

#语法格式: 命令 --help
#作用: 查看某个命令的帮助信息
# 示例: 
    # ls --help     查看ls命令的帮助信息
    # netstat --help    查看netstat命令的帮助信息

1.2 man命令

#语法格式: man 命令
#作用: 查看某个命令的帮助手册
# 示例: 
    # man ls        #查看ls命令的帮助手册
    # man netstat   #查看netstat命令的帮助手册

2.路径切换及查看

2.1 cd命令

    # cd /opt       切换到/opt目录下
    # cd ~  切换到用户目录
    # cd -  切换到上一次访问的目录
    # cd .. 切换到上一次所在的目录

2.2 pwd命令

 pwd   查看当前路径,会将当前路径回显

2.3 ls命令

#语法格式: ls [-la] [文件/目录]
#作用: 查看当前路径下的文件和目录,若后带有文件或目录,则只查看当前文件或目录
# 示例: 
    # ls   查看当前路径下所有的文件或目录
    # ls -l 查看当前路径下所有的文件或目录的详细信息
    # ls -a 查看当前路径下所有的文件或目录,将隐藏文件显示出来
    # ls -l a.log   查看当前路径下a.log下的详细信息
	  # ls -h 查看当前路径下所有的文件或目录,文件大小友好展示
	  # ls -t 将文件依建立时间之先后次序列出
	  # ls -r 将文件以相反次序显示(原定依英文字母次序)
	  # ls -R 若目录下有文件,则以下之文件亦皆依序列出
	  # ls -F 在列出的文件为可执行档则加 "*", 目录则加 "/"

    # ls s* 列出所有名称是s开头的文件和s开头的目录下的所有文件
    # ls *s 列出所有名称是s结尾的文件和s开头的目录下的所有文件

2.4 find命令

#语法格式: find [路径] [参数] [匹配模式]
#作用: 可以根据给定的路径和表达式查找的文件或目录
# 示例: 
    # find / -name "*.txt"    查询根目录下所有以.txt结尾的文件 
    # find /test -perm  644   查询/test目录下权限为644的文件
    # find /test -perm  +644  查询/test目录下权限644全部包含的文件
    # find /test -perm  -644  查询/test目录下权限644任意包含的文件
    # find . -type f     		    查询当前目录下所有的文件
    # find . -type f -name "a"   查询当前目录下所有包含a字符的文件
    # find . -type f | sort      查询当前目录下所有文件并排序
    # find . -type d           	查询当前目录下所有目录
    # find . -type l				查询软链接文件
    # find . -size 10M  		查找当前目录下刚好10M的文件
    # find . -size -10M  		查找当前目录下小于10M的文件
    # find . -size +10M  		查找当前目录下大于10M的文件
    # find . -iname Go.sum 	查找文件,不区分文件名大小写
    # find . -mtime -5			查找5天内修改的文件
    # find . -mtime +5			查找6天前修改的文件
    # find . -atime -5			查找5天内访问的文件
    # find . -atime +5			查找6天前访问的文件
    # find . -mmin -5			查找5分钟内修改的文件
    # find . -mmin +5			查找6分钟前修改的文件
    # find . -amin -5			查找5分钟内访问的文件
    # find . -amin +5			查找6分钟前访问的文件
    # find . -name cangls -o -name bols 查找cangls或bols

3.文件|目录操作

3.1 文件和目录的基本操作

3.1.1 touch命令

#语法格式: touch 文件名
#作用: 创建一个文件
# 示例: 
    # touch a.log     创建一个空文件。
    # touch linuxidc{1,2,3,4,5} 创建多个空文件
#其他功能
	更改文件时间

3.1.2 ln命令

#语法格式: 
    ln 源文件名 硬链接文件名
    ln -s 源文件名 软连接文件名
#作用: 创建文件链接
# 示例: 
    # ln a.txt a.txt.link   为a.txt创建一个硬链接文件a.txt.link
    # ln -s a.txt a.txt.link  为a.txt创建一个软连接文件  
# 备注:
    软链接文件:就像Windows中快捷方式一样,只是源文件的一个指向,删除软连接文件,源文件任存在。
    硬链接文件:比如当前目录下有2个文件,这2个文件除了名字不一样其他的一模一样,但是占用的实际磁盘空间还是只有1M,改变任何一个文件的内容另一个文件也会跟着改变;

3.1.3 mkdir 命令

#语法格式: mkdir 目录名
#作用: 创建一个目录
# 示例: 
    # mkdir test     创建一个test的目录
    # mkdir -p test  若存在test,则不创建;若不存在,则创建
    # mkidr -p test/a/b  递归创建test目录,a目录,b目录 
    # mkdir -m 777 test  创建权限为777的目录 

3.1.4 rm命令

#语法格式: rm [-rf] 文件|目录
#作用: 删除文件或目录
# 示例: 
    # rm a.txt     删除a.txt,删除前询问 
    # rm -f a.txt  直接删除a.txt ,不在询问 
    # rm -r test  删除test目录,删除前询问
    # rm -rf test  直接删除test目录,不在询问 
# 备注:任何的删除操作都是危险的动作,慎用 

3.1.5 mv命令

#语法格式: mv 源文件|目录 目标文件|目标目录
#作用: 有两层意思,分别为:
    1. 进行重命名文件或目录
    2. 进行移动文件或目录到目的目录 
# 示例: 
    # mv a.txt b.txt    修改文件名a.txt为b.txt 
    # mv a.txt test/    移动a.txt 到test目录下
    # mv abc bcd        重命名目录abc为bcd 
    # mv abc bcd/       移动abc目录到bcd下 

3.1.6 cp命令

#语法格式: cp [-rf] 源文件|目录 目标文件|目录
#作用: 拷贝文件或目录为另一个文件或目录   
# 示例: 
    # cp a.txt b.txt  拷贝a.txt为b.txt,若b.txt存在,提示是否继续
    # cp -f a.txt b.txt  拷贝a.txt为b.txt,b.txt存在直接覆盖 
    # cp -r abc bcd   拷贝abc目录为bcd,若abc存在,提示是否继续
    # cp -rf abc bcd  拷贝abc目录为bcd,abc存在,直接覆盖 。

3.2 文件压缩与解压缩

3.2.1 zipinfo命令

#语法格式: zipinfo zip文件
#作用:  查看zip文件里的信息。 
# 示例: 
    # zipinfo  abc.zip  查看abc.zip里的文件信息 
    # zipinfo -v abc.zip 显示abc.zip里的每个文件的信息

3.2.2 zip命令

#语法格式: zip 压缩文件 文件|目录
#作用:  将目标文件或目录进行压缩    
# 示例: 
    # zip a.zip a.txt  将a.txt进行压缩形成a.zip 
    # zip a.zip test/  将test目录下的所有文件和目录压缩到a.zip 
    # unzip  a.zip     解压文件

3.2.3. gzip命令

#语法格式: gzip [-d] 文件|目录
#作用:  压缩|解压缩文件或目录    
# 示例: 
    # gzip a.txt  将a.txt压缩为a.txt.gz ,注意压缩后源文件已不存在。
    # gzip -d a.txt.gz 解压a.txt.gz文件

3.2.5 gunzip命令

#语法格式: gunzip 压缩文件
#作用:  解压压缩文件
# 示例: 
    # gunzip a.txt.gz  解压a.txt.gz
    # guzip  test.tar.gz  解压test.tar.gz

3.2.6 tar命令

#语法格式: tar [-c|xzvf] 文件|压缩文件
#作用:  进行归档并创建压缩文件 或 进行解压归档压缩文档  
# 示例: 
    # tar -cvzf a.tar  a.txt   将文件a.txt进行压缩并归档
    # tar -xvzf a.tar .        解压a.tar文件到当前目录 
    # tar -cvf a.tar  a.txt    将文件a.txt进行压缩并归档
    # tar -xvf a.tar .         解压a.tar文件到当前目录 

3.3 文件传输

3.3.1 tftp命令

#语法格式: tftp 远程主机
#作用:  连接远程主机,上传或下载文件
# 示例: (需连接到远程主机)
    # get a.txt        下载a.txt文件
    # put a.txt        上传a.txt到远程主机
#查看是否启动
netstat -a | grep tftp
显示结果为
udp 0 0 *:tftp *:*
表明服务已经开启,就表明tftp配置成功了

3.3.2 curl命令

#语法格式: curl url
#作用:  进行文件下载或者请求http协议数据
# 示例: 
    # curl  http://www.baidu.com     请求百度
    # curl -o baidu.html http://www.baidu.com    将请求到的数据保存到baidu.html中 

3.3.3 scp命令

#语法格式: scp 远程主机账号@远程IP地址 本地目录
#作用:  登录远程主机进行拷贝文件或目录
# 示例: 
    # scp root@192.168.12.11:/soft/test.tar.gz /tools/    将远程主机目录下的/soft/test.tar.gz 拷贝到本地目录下的tools/下
    # scp root@192.168.12.11:/soft/ /tools/  将远程主机目录soft 拷贝到本地目录的tools/下 
# 更多:-r	可以拷贝目录

3.3.4 rcp命令

#语法格式: rcp 主机1 主机2
#作用:  远程主机间的文件或目录相互拷贝
# 示例: 
    #  rcp test 192.168.128.169:/test    拷贝当前目录下的test 到192.168.128.169的/test目录下
    #  rcp root@192.168.128.169:./test  /test 复制远程目录到本地的/test下
# 更多:-r	可以拷贝目录

3.4 文件属性查看

3.4.1 file命令

#语法格式: file 文件名
#作用:  查看文件的类型
# 示例: 
    #  file a.txt   #查看a.txt是什么类型 
    #  file abc     #查看abc是什么类型

3.4.2 du命令

#语法格式: du 文件名
#作用:  查看目录或文件的磁盘占用大小
# 示例: 
    #  du a.txt    查看a.txt的磁盘占用,以k为单位
    #  du -h a.txt     查看a.txt的磁盘占用,以M为单位 
    #  du -sh .     计算当前文件夹的总磁盘占用量
    #  du -sh *     计算当前文件夹下每个目录和文件的磁盘占用量
    #  du -ch *.tar.gz    查看指定结尾文件的磁盘占用并计算总和
    #  du -ch curl-7.34.0.tar.gz soft  指定文件的磁盘占用并计算总和
    #  du --max-depth=0 -h . 计算磁盘占有量,深度为0
    #  du -sh *|sort -hr   当前文件夹下第一级的磁盘占用排序

3.5 文件目录权限设置

3.5.1 chmod命令

#权限范围:
		u User,文件或目录的拥有者
		g Group,文件或目录所属的用户组
		o Other,其他用户
		a All,全部用户
#权限操作:
		+ 增加权限
		- 取消权限
		= 设定权限
#权限代号:
		r 读取权限,数字代号"4"
		w 写入权限,数字代号"2"
		x 执行权限,数字代号"1"
		- 不具有任何权限,数字代号"0"
		s 特殊功能说明
#权限代号顺序:User,Group,Other
#语法格式: 有两种用法
		chmod [权限范围][权限操作][权限代号] 文件/目录  
  		chmod 数字代号 目录/文件 
#作用:  为文件或目录设置权限 
# 示例: 
    #  chmod a=rw a.txt  为全部用户设置读写权限 
    #  chmod u+w test.md  为用户设置写权限
    #  chmod u+x,g+w,o-x test.md	 同时修改不同用户的权限
    #  chmod 644 a.txt   为用户设置读写权限,为用户组和其他用户设置读
权限 

4.文本内容查看及过滤

4.1 文本内容查看

4.1.1 cat命令

#语法格式: cat 文件名
#作用:  读取展示文本内容
# 示例: 
    #  cat a.txt  显示a.txt里的内容
    #  cat  >  filename   用键盘键入一个文件
    #  cat -n linuxfile1 > linuxfile2   加上行号后输入
    #  cat -b linuxfile1 > linuxfile2   加上行号后追加,空白行不加
    #  cat<<EOF,以EOF输入字符为标准输入结束
    #  cat>filename<<EOF,以EOF作为输入结束
    #  cat g.part1 g.part2 g.part3 > g.jpg  多个文件合并到一个文件

4.1.2 more命令

#语法格式: more 文件名
#作用:  
		按页显示文件内容,按Enter继续
		使用空格键可以向下翻页,输入 q 可以退出
    	/字符 搜索
# 示例: 
    #  more a.txt  若只有一页,则全部显示,否则按页显示

4.1.3 tail命令

#语法格式:
        tail 文件名        #查看文本内容
        tail -n 数量 文件名      #只显示倒数的几行
        tail -f 文件名         # 实时的查看文件写入的信息
#作用:  查看文本内容,
    
# 示例: 
    #  tail a.txt   查看文件内容,和cat效果一样 。
    #  tail -n 2 a.txt  显示a.txt最后两行 
    #  tail -f a.txt    实时监控a.txt文本内容。

4.1.4 head命令

#语法格式: 
    head 文件名
    head -n 数量 文件名
#作用:  查看文本内容。
    
# 示例: 
    #  head a.txt    查看文本内容,和cat效果一样。
    #  head -n 2 a.txt  查看文本的前两行 。

4.2 文本内容筛选过滤

4.2.1 grep命令

#语法格式: grep [选项] [模式] 文件
#作用:  文本搜索工具。
    
# 示例: 
    #  grep "aaa" a.txt    从a.txt中搜索aaa字符的行
    #  grep 'test' d*   显示所有d开头的文件中包含 test的行
    #  grep -A 2 "a" test.txt 找到所有的匹配行,并显示匹配行后面N行
    #  grep -B 2 "a" test.txt 找到所有的匹配行,并显示匹配行前面N行
    #  grep -c 'a' files 显示匹配的总行数
    #  grep -e "a*" a.txt   从a.txt中搜索匹配a字符的行
    #  grep -f test.txt test1.txt test 在 test1中找
    #  grep -i "aaa" a.txt  从a.txt中搜索aaa字符的行,忽略aaa大小写
    #  grep -m 2 "a" test.txt 最多匹配n个后停止
    #  grep -n "aaa" a.txt  从a.txt中搜索aaa字符的行,并在加上行号
    #  grep -o "a" test.txt 打印匹配到的字符
    #  grep -R "a" * 在当前目录和子目录查找字符’a’
    #  grep -v "aaa" a.txt  从a.txt中不包含aaa的行 
    #  grep -w 'a' files 匹配完整单词,而不是局部
    #  grep '^a' test.txt 匹配以字符’a’开头的
    #  grep '[a-z]\{5\}' aa  显示所有包含至少有5个连续小写字符的行
    #  grep '33$' test.txt 匹配以字符串”33”结束的
    #  grep '[1 2 3]' test.txt 匹配含有1或2或3的
    #  grep '^..3' test.txt 任意两个字符开头,然后第三个字符为 ‘3’
    #  ps -ef |grep "mysql"   查看mysql的进程
#仅用grep查询ip:
ifconfig eth0 | grep -o '\(inet addr:\)\([0−9]\{1,\}\.\?\)\{1,\}' | grep --color -o '\([0−9]{1,\}\.\?\)\{1,\}'

4.2.2 sed命令

#语法格式: sed [选项]  文件
#作用:  文本编辑工具。
 -e :直接在命令行模式上进行sed动作编辑,此为默认选项;
 -f :将sed的动作写在一个文件内,用–f fname 执行fname内的sed动作;
 -i :直接修改文件内容;
 -n :只打印模式匹配的行;
 -r :支持扩展表达式;

# 示例:
    #  sed -n '2p' a.txt    a.txt中的第二行内容
    #  sed 's/book/books/g' file  替换每一行中的所有匹配
    #  sed '/^$/d' file 删除空白行
    #  sed '3,5d' a.txt     删除a.txt中第3到5行的内容
    #  sed '/aaa/d' a.txt   删除匹配aaa的行,从a.txt中
    #  sed '2,$d' file 删除文件的第2行到末尾所有行
    #  sed '$d' file 删除文件最后一行
    #  sed '/^test/'d file 删除文件中所有开头是test的行
    #  sed -i '1d' 直接删除文件第一行
    #  sed -n 'p;n' test.txt 打印奇数行
    #  sed -n 'n;p' test.txt 打印偶数行
    #  sed -n '/test/w file' example 在example中所有包含test的行都被写入file里

4.2.3 awk命令

#语法格式: awk [选项]  文件
#作用:  文本分析工具。
    
# 示例: 
    #  awk '{print $5}' a.txt    显示a.txt中第5列的内容
    #  awk 'NR <=2 {print $1,$3,$5}' a.txt   显示前两行内容,每行只显示第1,3,5列
    #  awk '/^d/ {print $1,$9}' a.txt 显示以d开头的行,每行只显示第1,9列

awk需求示例: /etc/passwd

root:x:0:0:root:/root:/bin/bash  
bin:x:1:1:bin:/bin:/sbin/nologin  
daemon:x:2:2:daemon:/sbin:/sbin/nologin  
adm:x:3:4:adm:/var/adm:/sbin/nologin  
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
  • 只显示/etc/passwd的账户
    awk -F : '{ print $1 }' /etc/passwd
    输出为
root  
bin  
daemon  
adm  
lp
  • 显示/etc/passwd的第1列和第7列,用逗号分隔显示,所有行开始前添加列名start1,start7,最后一行添加,end1,end7
    awk -F ':' 'BEGIN {print "start1,start7"} {print $1 "," $7} END {print "end1,end7"}' /etc/passwd
    输出为
start1,start7  
root,/bin/bash  
bin,/sbin/nologin  
daemon,/sbin/nologin  
adm,/sbin/nologin  
lp,/sbin/nologin  
end1,end7
  • 统计/etc/passwd文件中,每行的行号,每行的列数,对应的完整行内容
    awk -F : '{ print NR " " NF " " $0 }' /etc/passwd
    输出为
1    7   root:x:0:0:root:/root:/bin/bash  
2    7   bin:x:1:1:bin:/bin:/sbin/nologin  
3    7   daemon:x:2:2:daemon:/sbin:/sbin/nologin  
4    7   adm:x:3:4:adm:/var/adm:/sbin/nologin  
5    7   lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
  • 显示/etc/passwd中有daemon的行
    支持条件操作,正则表达式匹配
    awk -F ':' '$0 ~ /daemon/' /etc/passwd
    输出为
daemon:x:2:2:daemon:/sbin:/sbin/nologin
  • 输出第一个字段的第一个字符大于d的行
    支持流程控制语句,类C语言
    awk -F ':' '{ if ($1 > "d") { print $1 } else { print "-" } }' /etc/passwd
    输出为
root  
-  
daemon  
-  
lp

可以把流程控制语句放到一个脚本中,然后调用脚本执行,如test.sh的内容如下

{   
    if ($1 > "d") {  
        print $1   
    } else {  
        print "-"   
    }   
}

效果一样
awk -F ':' -f test.sh /etc/passwd

awk应用场景
关闭脚本 kill.sh

kill -9 `jps -l | grep 'weibo-interface-1.0.jar' | awk '{print $1}'`

4.2.4 cut命令

#语法格式: cut 选项 文件
#作用:  用于剪切字符。
    
# 示例: 
    #  cut -c 1-3 a.txt 提取每行第一到第三的字符
    #  cut -c-2 test.txt 提取前两个字符
    #  cut -c5- test.txt 提取从第5个字符开始到结尾
    #  cut -f1 test.txt 提取第一列
    #  cut -f2,3 test.txt 提取两列三行
    #  cut -f4 -d" " a.txt 以空格为分隔符,提取第四列
    #  cut -f2 --complement test.txt 提取除了第二列之外的列

4.2.5 col命令

#语法格式: col 选项 文件
#作用:  用于过滤字符。
    
# 示例: 
    #  man ls | col-b > ls_help  过滤掉ls手册中的控制字符并输出到文件

4.3 文本编辑

4.3.1 vi/vim命令

#语法格式: vi/vim  文件
#作用:  用于编辑文件。
    
# 示例:  
    #  vi a.txt   编辑a.txt,可以进行修改里面的内容
    #  vim a.txt  编辑a.txt,可以进行修改里面的内容

# 光标移动
$:  将光标移动到当前行的行尾
0:  将光标移动到当前行的行首
^:  将光标移动到当前行的第一个非空字符
xG:  跳转到指定的第x行
G:	  移动到文件末尾
``:(2次单引号)返回到跳转前的位置
gg: 移动到文件开头
M:  移动到屏幕中间
L:  移动到一屏末尾
ctrl+G:  查看当前的位置状态

# 滚屏与跳转
半屏滚动:  ctrl+u/ctrl+d
全屏滚动:  ctrl+f/ctrl+b

# 定位光标的位置
zz:  将光标置于屏幕的中间
zt:  将光标移动到屏幕的顶部
zb:  将光标移动到屏幕的底部

# 文本插入
a:  在当前光标的后面追加字符
o:  在当前光标的下一行行首插入字符
u:  撤销修改

# 文本删除
daw:  无论光标在什么位置,删除光标所在的整个单词(包括空白字符)
d$:  删除从光标到一行末尾的整个文本
dd:  删除当前光标处的一整行 
D:   删除当前光标处的一整行 
dG:  删除从光标到文本结尾

# 行合并
J:  删除一个分行符,将当前行与下一行合并

# 复制粘贴
y$:  复制从当前光标到行结尾的所有单词
y0:  复制从当前光标到行首的所有单词
yy:  复制一整行

# 文本的查找与替换
/string   正向查找
?string   反向查找
:set hls 设置高亮显示,n浏览下一个查找高亮的结果
:s/old/new   将当前行的第一个字符串old替换为new
:s/old/new/g   将当前行的所有字符串old替换为new
:90s/old/new/g  将指定行的所有字符串old替换为new
:90,93s/old/new/g  将指定范围的行的所有字符串old替换为new
:%s/old/new/g   将文本中所有的字符串old替换为new
:%s/old/new/gc  依次替换每个字符串关键字
:%s/^struct/int/g   将所有以struct开头的字符串替换为int

# 撤销修改、重做与保存
u:  撤销上一步的操作。
Ctrl+r:  将原来的插销重做一遍
U:  恢复一整行原来的面貌(文件打开时的文本状态)
q:  若文件没有修改,直接退出
q!:  文件已经被修改,放弃修改退出
wq:  文件已经被修改,保存修改并退出
e!:  放弃修改,重新回到文件打开时的状态

4.4 输出到文本文件

4.4.1 >命令

#语法格式: >  文件
#作用:  将内容输出到文件,若文件中有内容则覆盖。若文件不存在,则创建文件
    
# 示例:  
    #  ll > a.txt   查看详细后输出到a.txt 。
    #  cat a.txt > b.txt  将a.txt中的内容添加到b.txt中 。

4.4.2 >>命令

#语法格式: >>  文件
#作用:  将内容追加到文件,若文件中有内容则追加。若文件不存在,则创建文件
    
# 示例:  
    #  ll >> a.txt   查看详细后追加到a.txt 。
    #  cat a.txt >> b.txt  将a.txt中的内容添加到b.txt中 。

4.4.3 tee命令

#语法格式: tee  文件
#作用:  将内容输出到文件并输出内容显示在控制台上。若文件不存在,则创建文件,一般需要和管道符(|)一起使用。
    
# 示例:  
    # cat slayers.story |tee ss-copy1 ss-copy2 ss-copy3
		将cat slayers.story备份3份,同时将添加内容回显到控制台上。
    # tee testfile 输入内容并覆盖
    # tee -a testfile 输入内容并追加
    # tee -i testfile 输入内容并忽略中断信号

4.5 文本内容处理

4.5.1 join命令

#语法格式: join  文件1 文件2
#作用:  用于将两个文件中,指定栏目内容相同的行连接起来
    
# 示例:  
    #  join j1 j2 输出j1和j2match的那部分
    #  join j1 j2 -a 1 额外输出j1中未match的那部分
    #  join j1 j2 -a 1 -a 2  额外输出j1和j2中未match的那部分
    #  join j1 j2 -v 1 输出j1未match的那部分
    #  join j1 j2 -o 1.1,2.2 输出match后j1的第一列,j2的第二列

4.5.2 split命令

#语法格式: split 数量 文件
#作用:  用于将一个文件分割成数个
    
# 示例:  
    # split -l 5 c.txt  按每5行分隔为多个小文件
    # split -b 10k date.file 按每10kb分隔为多个小文件
    # split -b 10k date.file -d -a 3 指定小文件后缀为3位的数字
    # split -b 10k date.file -d -a 3 HHH 同时指定HHH为前缀

4.5.3 uniq命令

#语法格式: uniq  文件
#作用:  用于检查及删除文本文件中重复出现的行列,注意:重复的行一定是相邻的行,若不相邻不会删除
    
# 示例:  
    #  uniq d.txt  将d.txt中相邻重复的行去掉 
    #  uniq d.txt | sort  将d.txt中相邻重复的行去掉并排序
    #  uniq -c 在每行前加上表示相应行目出现次数的前缀编号
    #  uniq -d 只输出重复的行
    #  uniq -u 只输出唯一的行
    #  uniq -i 比较时不区分大小写
    #  uniq -f 比较时跳过前n列
    #  uniq -s 比较时跳过前n个字符
    #  uniq -w 比较时跳过n个字符之后的内容

4.5.4 sort命令

#语法格式: sort  文件
#作用:  对文本内容进行排序
    
# 示例:  
    # sort a.txt  将a.txt中的内容进行排序,升序
    # sort -r a.txt 将a.txt中的内容进行排序,降序
    # uniq d.txt | sort -r 将d.txt中相邻重复的行去掉并倒序排序
    # sort -u seq.txt 去重排序
    # sort -r number.txt -o number.txt 排序后写回
    # sort -n number.txt 以数值大小排序
    # sort -n -k 2 -t : facebook.txt 指定:为分割符,以第二列排序
    # sort -f a.txt 忽略大小写

4.5.5 paste命令

#语法格式: paste  文件1 文件2 ...
#作用:  用于合并文件的列。
    
# 示例:  
    #  paste pas2 pas1 将两个文件合并为两列
    #  paste -d : pas2 pas1 指定:为分割符
    #  paste -s pas1 pas2 合并为两行

5.用户|组操作

5.1 用户增删改

5.1.1 useradd(adduser)命令

#语法格式: useradd 新用户
#作用:  创建用户
#参数
  -c:加上备注文字,备注文字保存在passwd的备注栏中。
  -d:指定用户登入时的主目录,替换系统默认值/home/<用户名>
  -D:变更预设值。
  -e:指定账号的失效日期,日期格式为MM/DD/YY,例如06/30/12。缺省表示永久有效。
  -f:指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.
  -g:指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的,期默认值为100,即users。
  -G:指定用户所属的附加群组。
  -m:自动建立用户的登入目录。
  -M:不要自动建立用户的登入目录。
  -n:取消建立以用户名称为名的群组。
  -r:建立系统账号。
  -s:指定用户登入后所使用的shell。默认值为/bin/bash。
  -u:指定用户ID号。该值在系统中必须是唯一的。
    
# 示例:  
    #  useradd test    创建test用户
    #  useradd -d /home/test  test  创建test用户,并指定test用户的家目录为home/test
    #  useradd -u 666 test   为test用户指定uid为666
    #  useradd -u 544 -d /usr/testuser1  -g users -m  testuser1 
建立一个新用户账户testuser1,并设置UID为544,主目录为/usr/testuser1,属于users组,如果主目录不存在则自动创建

# 其他
	# 批量添加用户

# 删除用户
    #  userdel tmp_3452 删除用户
    #  userdel -f tmp_3452 连同用户目录也删除
    #  userdel -r test  删除test用户及其家目录

5.1.4 usermod命令

#语法格式: usermod 用户
#作用:  修改用户
#参数:
- a | -- append      ##把用户追加到某些组中,仅与-G选项一起使用
- c | -- comment      ##修改/etc/passwd文件第五段comment
- d | -- home        ##修改用户的家目录通常和-m选项一起使用
- e | -- expiredate ##指定用户帐号禁用的日期,格式YY-MM-DD
- f | -- inactive    ##用户密码过期多少天后采用就禁用该帐号,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1
- g | -- gid          ##修改用户的gid,改组一定存在
- G | -- groups      ##把用户追加到某些组中,仅与-a选项一起使用
- l | -- login        ##修改用户的登录名称
- L | -- lock        ##锁定用户的密码
- m | -- move - home    ##修改用户的家目录通常和-d选项一起使用
- s | -- shell        ##修改用户的shell
- u | -- uid          ##修改用户的uid,该uid必须唯一
- U | -- unlock      ##解锁用户的密码

# 示例:  
    #  usermod -l test1 test    将用户test修改为test1
    #  usermod -d /home/test00  test   将用户test的家目录修改为/home/test00
    #  usermod -L test      锁定test用户的密码
    #  usermod -U test      解锁test用户的密码
    #  usermod -a -G www hexu   将hexu添加到www用户组

5.2 用户设置密码

5.2.1 passwd命令

#语法格式: passwd 用户
#作用:  修改用户密码,输入命令回车后会引到用户设置新密码 
#参数:
		-d 删除密码
		-f 强迫用户下次登录时必须修改口令
		-w 口令要到期提前警告的天数
		-k 更新只能发送在过期之后
		-l 停止账号使用
		-S 显示密码信息
		-u 启用已被停止的账户
		-x 指定口令最长存活期
		-g 修改群组密码
		指定口令最短存活期
		-i 口令过期后多少天停用账户
    
# 示例:  
    #  passwd test     修改用户密码
    #  passwd -S runoob 显示密码信息

5.3 组的增删改

5.3.1 groupadd命令

#语法格式: groupadd 用户组
#作用:  添加用户组
    
# 示例:  
    #  groupadd  test   添加用户组为test
    #  groupadd -g 9999 test  为创建用户组test并设置gid为9999

5.3.2 groupdel命令

#语法格式: groupdel 用户组
#作用:  删除用户组
    
# 示例:  
    #  groupdel test  删除用户组test

5.3.3 groupmod

#语法格式: groupmod 用户组
#作用:  修改用户组
    
# 示例:  
    #  groupmod -n root test    更改test用户组为root

5.4 文件设置用户权限

5.4.1 chown命令

#语法格式: chown 文件|目录 用户|用户组
#作用:  更改文件目录的用户或用户组
#参数:
		user : 新的文件拥有者的使用者 ID
		group : 新的文件拥有者的使用者组(group)
		-c : 显示更改的部分的信息
		-f : 忽略错误信息
		-h :修复符号链接
		-v : 显示详细的处理信息
		-R : 处理指定目录以及其子目录下的所有文件
# 示例:  
    #  chown root /test/a.txt  把a.txt的所有者设置为root
    #  chown root:root /test/a.txt   把a.txt的所有者设置为root,组设置为root
    #  chown -R test:test *    把当前目录下的所有文件都设置为test用户和test用户组

5.5 切换用户

5.5.1 su命令

#语法格式: su [-] 用户
#作用:  切换用户
    
# 示例:  
    #  su test  切换当前用户为test用户   
    #  su - test 切换当前用户为test用户
    #  su -c ls root 变更帐号为root并在执行ls指令后退出变回原使用者
    #  whoami 查看当前用户

6.任务管理器

6.1 进程

6.1 ps命令

#语法格式: ps [参数]
#作用:  显示当前系统的进程状态
#参数
	•	a:显示一个终端的所有进程,除会话引线外;
	•	u:显示进程的归属用户及内存的使用情况;
	•	x:显示没有控制终端的进程;
	•	-l:长格式显示更加详细的信息;
	•	-e:显示所有进程;

# 示例:  
    #  ps -ef   显示所有进程
    #  ps -aux   显示所有进程
    #  ps -ef | grep mysql  查看mysql进程
    #  ps -u root 显示root用户进程。

6.2 kill 命令

#语法格式: kill [参数]
#作用:  杀掉系统中执行的程序(进程)
    
# 示例:  
    #  kill 319877   杀掉进程319877
    #  kill -9  319877  强制杀掉进程319877
    #  kill -u hnlinux  杀死指定用户所有进程
    #  kill -1 2246 让进程重启

6.2 系统资源

6.2.1 top命令

#语法格式: top [参数]
#作用:  显示系统中各个进程的资源占用情况
#参数:
	•	-d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒
	•	-b:使用批处理模式输出
	•	-n 次数:指定 top 命令执行的次数
	•	-p 进程PID:仅查看指定 ID 的进程
	•	-s:使 top 命令在安全模式中运行,避免在交互模式中出现错误
	•	-u 用户名:只监听某个用户的进程
# 交互操作:
	•	? 或 h:显示交互模式的帮助;
	•	P:按照 CPU 的使用率排序,默认就是此选项;
	•	M:按照内存的使用率排序;
	•	N:按照 PID 排序;
	•	T:按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序;
	•	k:按照 PID 给予某个进程一个信号
	•	r:按照 PID 给某个进程重设优先级(Nice)值;
	•	q:退出 top 命令;

# 示例:  
    #   top    查看系统各个进程的资源占用,比如CPU ,内存信息。  
    #   top -n 5  动态更新5次结束
    #   top -d 5  每隔5秒更新一次
    #   top -p 15273 查看指定 ID 的进程

6.2.2 vmstat命令

#语法格式: vmstat [参数]
#作用:  显示虚拟内存状态
    
# 示例:  
    #     vmstat    显示内存信息
    #     vmstat  -s   以列表形式显示内存
    #     vmstat 2  每隔2秒刷新一次
    #     vmstat 2 5 每隔2秒刷新一次,采集5次

6.2.3 free命令

#语法格式: free [参数]
#作用:  查看系统内存信息
    
# 示例:  
    #   free   显示内存信息,默认以kb为单位  
    #   free -m   显示内存信息,以mb为单位
    #   free -g   显示内存信息,以gb为单位
    #   free -h -s 3 友好显示,3秒采集一次

6.2.4 df命令

#语法格式:  df [参数] 分区
#作用:  查看磁盘占用空间
    
# 示例:  
    #     df    查看各分区在磁盘占用情况
    #     df -h   以比较容易阅读方式查看磁盘使用情况
    #     df /dev/shm   查看该挂载点下的使用情况

6.2.4.1 lsblk命令

#语法格式: lsblk [参数]
#作用:  查看系统的磁盘
常用参数:
-a 显示所有设备
-b 以bytes方式显示设备大小
-d 不显示 slaves 或 holders
-D print discard capabilities
-e 排除设备
-f 显示文件系统信息
-h 显示帮助信息
-i use ascii characters only
-m 显示权限信息
-l 使用列表格式显示
-n 不显示标题
-o 输出列
-P 使用key=”value”格式显示
-r 使用原始格式显示
-t 显示拓扑结构信息

6.2.5 fdisk命令

#语法格式: fdisk [参数]
#作用:  进行磁盘分区管理
    
# 示例:  
    #  fdisk -l  查看所有分区情况
    #  fdisk /dev/sda 进入设备

#交互:
a	设置可引导标记
b	编辑 bsd 磁盘标签
c	设置 DOS 操作系统兼容标记
d	删除一个分区
1	显示已知的文件系统类型。82 为 Linux swap 分区,83 为 Linux 分区
m	显示帮助菜单
n	新建分区
0	建立空白 DOS 分区表
P	显示分区列表
q	不保存退出
s	新建空白 SUN 磁盘标签
t	改变一个分区的系统 ID
u	改变显示记录单位
V	验证分区表
w	保存退出

6.2.6 netstat命令

#语法格式: netstat [参数]
#作用:  显示各种网络信息
#参数说明:
		-a或--all 显示所有连线中的Socket。
		-A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。
		-c或--continuous 持续列出网络状态。
		-C或--cache 显示路由器配置的快取信息。
		-e或--extend 显示网络其他相关信息。
		-F或--fib 显示路由缓存。
		-g或--groups 显示多重广播功能群组组员名单。
		-h或--help 在线帮助。
		-i或--interfaces 显示网卡列表。
		-l或--listening 显示监控中的服务器的Socket。
		-M或--masquerade 显示伪装的网络连线。
		-n或--numeric 直接使用IP地址,而不通过域名服务器。
		-N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。
		-o或--timers 显示计时器。
		-p或--programs 显示正在使用Socket的程序识别码和程序名称。
		-r或--route 显示Routing Table。
		-s或--statistics 显示网络工作信息统计表。
		-t或--tcp 显示TCP传输协议的连线状况。
		-u或--udp 显示UDP传输协议的连线状况。
		-v或--verbose 显示指令执行过程。
		-V或--version 显示版本信息。
		-w或--raw 显示RAW传输协议的连线状况。
		-x或--unix 此参数的效果和指定"-A unix"参数相同。
		--ip或--inet 此参数的效果和指定"-A inet"参数相同。
    
# 示例:  
    #   netstat    查看各网络信息 
    #   netstat -an | grep 3306   查看3306端口的使用情况
    #   netstat -ap | grep ssh 出程序运行的端口

6.2.6 telnet命令

#语法格式: telnet [参数][主机][端口]
#作用:  远端登入
#参数说明:
		-8 允许使用8位字符资料,包括输入与输出。
		-a 尝试自动登入远端系统。
		-b<主机别名> 使用别名指定远端主机名称。
		-c 不读取用户专属目录里的.telnetrc文件。
		-d 启动排错模式。
		-e<脱离字符> 设置脱离字符。
		-E 滤除脱离字符。
		-f 此参数的效果和指定"-F"参数相同。
		-F 使用Kerberos V5认证时,加上此参数可把本地主机的认证数据上传到远端主机。
		-k<域名> 使用Kerberos认证时,加上此参数让远端主机采用指定的领域名,而非该主机的域名。
		-K 不自动登入远端主机。
		-l<用户名称> 指定要登入远端主机的用户名称。
		-L 允许输出8位字符资料。
		-n<记录文件> 指定文件记录相关信息。
		-r 使用类似rlogin指令的用户界面。
		-S<服务类型> 设置telnet连线所需的IP TOS信息。
		-x 假设主机有支持数据加密的功能,就使用它。
		-X<认证形态> 关闭指定的认证形态

# 示例:  
# telnet 192.168.25.133 22 查看远方服务器ssh端口是否开放
# telnet 192.168.0.5 登录远程主机

6.3 服务

6.3.1 service命令(RHEL6)

#语法格式: service [参数]
#作用:  服务管理
    
# 示例:  
    #   service --status-all    查看所有服务的运行状态  
    #   service  mysql  start   启动mysql
    #   service  mysql  stop    停止mysql
    #   service  mysql  restart   重启mysql

6.3.2 systemctl命令(RHEL7)

#语法格式: systemctl [选项] [服务]
#作用:  对服务进行管理,如启动/重启/停止/查看服务
    
# 示例:  
    #  systemctl status httpd.service   查看http服务状态
    #  systemctl start httpd.service    启动http服务
    #  systemctl stop  httpd.service    停止http服务
    #  systemctl restart httpd.service  重启http服务
    #  systemctl status firewalld   查看防火墙状态
    #  systemctl start firewalld   开启防火墙
    #  systemctl stop firewalld    关闭防火墙

6.3.3 chkconfig命令

#语法格式: chkconfig [参数]
#作用:  更新(启动或停止)和查询系统服务的运行级信息
#参数:
–add 增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据
–del 删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据
–level <等级代号>  指定读系统服务要在哪一个执行等级中开启或关毕
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
    
# 示例:  
   # chkconfig -list 显示所有运行级系统服务的运行状态信息(on或off)
   # chkconfig –add httpd        增加httpd服务
   # chkconfig –del httpd        删除httpd服务
   # chkconfig telnet on  开启Telnet服务
   # chkconfig telnet off   关闭Telnet服务
   # chkconfig --level httpd 2345 on    设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态

7.网络管理

7.1 ifconfig命令

#语法格式:ifconfig 
#作用:  查看或设置网络设备
    
# 示例:  
    #  ifconfig   查看网络信息,比如IP地址
    #  ifconfig eth0 down    关闭eth0的网卡 
    #  ifconfig eth0 up      开启eth0的网卡
    #  ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE   修改Mac地址
    #  ifconfig eth0 add 32ffe:3840:320:2007::2/64      为网卡配置IPV6地址
    #  ifconfig eth0 del 32ffe:3840:320:2007::2/64      删除网卡的IPV6地址
    # ifconfig eth0 192.168.128.169     修改ip地址为192.168.128.169 
    # ifconfig eth0 192.168.128.169 netmask 255.255.255.0    修改IP和子网掩码
    # ifconfig eth0 192.168.1.56 netmask 255.255.255.0 broadcast 192.168.1.255  修改ip,子网掩码及网关

7.2 ping命令

#语法格式: ping IP地址
#作用:  确认是否和某主机的网络相同
    
# 示例:  
    #  ping 192.168.12.12  确认是否能连通到192.168.12.12
    #  ping www.baidu.com  确认是否能正常访问百度
    #  ping -c 4 www.baidu.com  只ping四次
    #  ping -c 4 -i 2 www.baidu.com  只ping四次,每次间隔2s

7.3 systemctl命令

#语法格式: systemctl [选项] [服务]
#作用:  对服务进行管理,如启动/重启/停止/查看服务
    
# 示例:  
    #  systemctl status httpd.service   查看http服务状态
    #  systemctl start httpd.service    启动http服务
    #  systemctl stop  httpd.service    停止http服务
    #  systemctl restart httpd.service  重启http服务
    #  systemctl status firewalld   查看防火墙状态
    #  systemctl start firewalld   开启防火墙
    #  systemctl stop firewalld    关闭防火墙

7.4 firewall-cmd命令

#语法格式: firewall-cmd [参数]
#作用:  防火墙端口管理
    
# 示例:  
  # firewall-cmd --state   查看当前防火墙的运行状态
  # firewall-cmd --zone=public --list-ports   查看所有放行的端口
  # firewall-cmd --reload   重新加载修改的配置
  # firewall-cmd --query-port=8888/tcp   查询端口8888是否被开放
  # firewall-cmd --add-port=8888/tcp    开启8888端口通过防火墙
  # firewall-cmd --permanent --remove-port=123/tcp  关闭123端口

8.安装更新配置

8.1 yum命令

#语法格式: yum [选项]
#作用:  rpm的软件包管理器
    
# 示例:  
    #  yum install mysql     安装mysql
    #  yum remove mysql      卸载mysql 
    #  yum clean  mysql      清除缓存目录下的安装包
    #  yum install           全部安装
    #  yum update            全部更新
    #  yum update mysql      更新mysql
    #  yum info   mysql      显示mysql安装包信息
    #  yum list  mysql       显示mysql安装包信息
    #  yum list              显示所有已安装包和可安装包

8.2 sh命令

#语法格式: sh  可执行文件
#作用:  运行可执行文件,一般都是shell脚本
    
# 示例:  
    #  sh a.sh      运行a.sh文件,
    #  sh -x a.sh   运行并调试a.sh脚本

9.系统相关

9.1 环境变量

9.1.1 set命令

#语法格式: set [参数]
#作用:  显示当前shell的变量,包括当前用户的变量;
    
# 示例:  
    #  abcd=100
    #  set | grep abcd    显示abcd的变量值

9.1.2 unset命令

#语法格式: unset [参数]
#作用:  删除shell变量的值
    
# 示例:  
    #  abcd=100
    #  unset abcd    删除abcd的变量值

9.1.3 env命令

#语法格式: env [参数]
#作用:  设置或显示当前环境变量
    
# 示例:  
    #  env    显示当前环境变量
    #  env abcd=10    定义环境变量
    #  env -u  abcd   删除已经定义的环境变量abcd

9.1.4 export命令

#语法格式: export [参数]
#作用:  设置或显示环境变量
    
# 示例:  
    #  export  显示当前环境变量
    #  export abcd=101  定义环境变量

9.2 重启与关机

9.2.1 shutdown命令

#语法格式: shutdown [参数]
#作用:  关闭或重启
#参数说明:
	-t seconds : 设定在几秒钟之后进行关机程序。
	-k : 并不会真的关机,只是将警告讯息传送给所有使用者。
	-r : 关机后重新开机。
	-h : 关机后停机。
	-n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
	-c : 取消目前已经进行中的关机动作。
	-f : 关机时,不做 fcsk 动作(检查 Linux 档系统)。
	-F : 关机时,强迫进行 fsck 动作。
	time : 设定关机的时间。
	message : 传送给所有使用者的警告讯息。

# 示例:  
    #  shutdown -h now      立即关机
    #  shutdown -r now      立即重启
    #  shutdown -h 22:30    22:30关机
    #  shutdown +5 “This System will be shutdown in 5 minutes”
       指定五分钟后关机,并发出警告信息
    #  shutdown –k “Waring:maybe the system will be shutdown”
       给所有登录用户发送提醒

9.2.2 reboot命令

#语法格式: reboot [参数]
#作用:  重启计算机
    
# 示例:  
    #  reboot  重启

9.2.3 poweroff命令

#语法格式: poweroff [参数]
#作用:  关闭计算机
    
# 示例:  
    #  poweroff    关闭计算机及电源

9.2.4 halt命令

#语法格式: halt 
#作用:  关闭操作系统
    
# 示例:  
    #  halt      关闭系统
    #  halt -p   关闭计算机及电源,等同于poweroff
    #  halt -f   强制关机

9.2.5 exit命令

#语法格式: exit
#作用:  退出当前执行的shell
    
# 示例:  
    #  exit   退出当前shell

9.3 查看系统信息

9.3.1 uname命令

#语法格式: uname [参数]
#作用:  显示系统相关信息
    
# 示例:  
    #  uname       显示当前系统
    #  uname -an   显示系统的详细信息
    #  uname -r    显示内核信息
    #  uname -i    显示当前架构

9.3.2 date命令

#语法格式: date [参数]
#作用:  显示或设定时间
#时间标记:
		% : 印出 %
		%n : 下一行
		%t : 跳格
		%H : 小时(00..23)
		%I : 小时(01..12)
		%k : 小时(0..23)
		%l : 小时(1..12)
		%M : 分钟(00..59)
		%p : 显示本地 AM 或 PM
		%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
		%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
		%S : 秒(00..61)
		%T : 直接显示时间 (24 小时制)
		%X : 相当于 %H:%M:%S
		%Z : 显示时区
#日期标记:
		%a : 星期几 (Sun..Sat)
		%A : 星期几 (Sunday..Saturday)
		%b : 月份 (Jan..Dec)
		%B : 月份 (January..December)
		%c : 直接显示日期与时间
		%d : 日 (01..31)
		%D : 直接显示日期 (mm/dd/yy)
		%h : 同 %b
		%j : 一年中的第几天 (001..366)
		%m : 月份 (01..12)
		%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
		%w : 一周中的第几天 (0..6)
		%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
		%x : 直接显示日期 (mm/dd/yy)
		%y : 年份的最后两位数字 (00.99)
		%Y : 完整年份 (0000..9999)
#参数说明:
		-d datestr : 显示 datestr 中所设定的时间 (非系统时间)
		--help : 显示辅助讯息
		-s datestr : 将系统时间设为 datestr 中所设定的时间
		-u : 显示目前的格林威治时间
		--version : 显示版本编号

# 示例:  
    #  date    查看当前时间
    #  date +"%Y-%m-%d"  格式化输出日期
    #  date date -d "+1 day" +%Y%m%d   #显示前一天的日期 
    #  date date -d "-1 day" +%Y%m%d   #显示后一天的日期 
    #  date date -d "-1 month" +%Y%m%d #显示上一月的日期 
    #  date date -d "+1 month" +%Y%m%d #显示下一月的日期 
    #  date date -d "-1 year" +%Y%m%d  #显示前一年的日期 
    #  date date -d "+1 year" +%Y%m%d  #显示下一年的日期date -s 
    #  设置当前时间,只有root权限才能设置,其他只能查看 
    #  date -s 01:01:01 #设置具体时间,不会对日期做更改 
    #  date -s "01:01:01 2012-05-23" #这样可以设置全部时间 
    #  date -s "01:01:01 20120523"   #这样可以设置全部时间 
    #  date -s "2012-05-23 01:01:01" #这样可以设置全部时间 
    #  date -s "20120523 01:01:01"   #这样可以设置全部时间
    #  date -s 20120523 #设置成20120523,这样会把具体时间设置成空00:00:00 

#检查一组命令花费的时间:
#!/bin/bash 
start=$(date +%s) 
nmap man.linuxde.net &> /dev/null 
end=$(date +%s) 
difference=$(( end - start )) 
echo $difference seconds.

9.3.3 last命令

#语法格式: last 
#作用:  显示最近用户或终端的登录情况
    
# 示例:  
    #  last    显示最近用户的登录情况

9.3.4 history命令

#语法格式: history [参数]
#作用:  查看历史输入命令
参数:

n:数字,列出最近的 n 条历史命令
-c:将当前shell 缓存中的 history 内容全部清除
-a:将当前shell缓存中的history 内容append附加到 histfile 中,如果没有指定 histfile,则默认写入 ~/.bash_histroy;-a:将bash 内存中历史命令追加到 .bash_history 历史命令文件中, 默认只有退出 shell 是才会保存
-r:将 histfile 中的内容读取到当前shell的缓存中;-r:读取历史文件到历史列表(将 .bash_history重新读取一遍,写入到当前bash进程的内存中)
-w:将当前shell缓存的history历史列表写入到指定的文件;-w:保存历史列表到指定的历史文件(history -w /PATH/TO/SOMEFILE 将内存中命令执行的历史列表保存到指定的 /PATH/TO/SOMEFILE中)
-a: 追加本次会话新执行的命令历史列表至历史文件,因为多终端所以如果想看当前都发生了什么操作就可以执行-a进行查看
-n: 读历史文件(本地数据)中未读过的行到历史列表(内存数据)
-r: 读历史文件(本地数据)附加到历史列表(内存数据)
-w: 保存历史列表(内存数据)到指定的历史文件(本地数据)
-s: 展开历史参数成一行,附加在历史列表后。用于伪造命令历史
    
# 示例:  
    #  history   查看历史命令
    #  history  | grep "sed"    查看输入过sed命令
    #  history -5  查看最近的5条命令
    #  history -c 清空历史
    #  history -d 4 删除指定命令历史

9.3.5 who命令

#语法格式: who [参数]
#作用:  查看当前登录用户信息
#参数说明:
		-H 或 --heading:显示各栏位的标题信息列;
		-i 或 -u 或 --idle:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串;
		-m:此参数的效果和指定"am i"字符串相同;
		-q 或--count:只显示登入系统的帐号名称和总人数;
		-s:此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题;
		-w 或-T或--mesg或--message或--writable:显示用户的信息状态栏;
		--help:在线帮助;
		--version:显示版本信息。

# 示例:  
    #  who    查看登录用户信息
    #  who -H  带标题显示 
    #  who -b  输出系统最近启动时间

9.4 定时任务

9.4.1 crontab命令

#语法格式:crontab [参数] 
#作用:  任务调度
    
# 示例:  
    #  crontab -l   查看当前计划任务
    #  crontab -e   创建计划任务,打开后,需要以按照如下格式编辑

#设置格式如下:
*    *    *    *    *
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 6) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

# 举例:
* * 1 * *   tar -czvf bk.tar.gz /log_bakup # 每天进行一次归档备份
* * * * * /bin/ls 每一分钟执行一次 /bin/ls
0 6-12/3 * 12 * /usr/bin/backup 在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次 /usr/bin/backup
50 7 * * * /sbin/service sshd start  意思是每天7:50开启ssh服务 
0 0 1,15 * * fsck /home  每月1号和15号检查/home 磁盘 
1 * * * * /home/bruce/backup  每小时的第一分执行 /home/bruce/backup这个文件 

9.5 运行管理员权限

9.5.1 sudo命令

#语法格式: sudo [命令]
#作用:  运行以管理员权限运行命令,一般是非root用户进行操作
    
# 示例:  (假设当前账号为test)
    #  sudo mkdir abc   创建abc目录 。

9.6 其它

9.6.1 clear命令

#语法格式: clear
#作用:  清屏操作,也可以使用快捷键Ctrl + L
    
# 示例:  
    #  clear  清屏

9.6.2 echo命令

#语法格式: echo [变量]
#作用:  输出变量值
    
# 示例:  
    #  echo  $abc  输出变量abc的值,需要提前定义abc的值
    #  echo  `pwd`  显示当前路径

#系统/Linux

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值