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 请求百度# curl -o baidu.html 将请求到的数据保存到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 : 新的文件拥有者的使用者 IDgroup : 新的文件拥有者的使用者组(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
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 请求百度# curl -o baidu.html 将请求到的数据保存到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 : 新的文件拥有者的使用者 IDgroup : 新的文件拥有者的使用者组(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