help命令只能显示shell内部命令的帮助信息,而linux系统中绝大多数命令是外部命令,所以help命令的作用非常有限。
而对于外部命令的帮助信息可以使man命令或者info命令查看。
格式:help [参数] [内部命令]
-d 输出每个命令的简短模式
-s 输出短格式的帮助信息
-m 以伪man手册的格式显示帮助信息
[root@localhost ~]# help -s cd
cd: cd [-L|[-P [-e]]] [dir]
man命令不仅可以查看Linux中命令的使用帮助,还可以查看软件服务配置文件、系统调用、库函数等帮助信息。
man手册页文件存放在/usr/bin/man目录下。
[root@localhost ~]# which man
/usr/bin/man
**格式:**man [命令]
-a 在所有的man帮助手册中搜索
-d 主要用于检查,如果用户加入了一个新的文件,就可以用这个参数检查是否出错
-f 显示给定关键字的简短描述信息
-p 指定内容时使用分页程序
-M 指定man手册搜索的路径
-w 显示文件所在位置
[root@localhost ~]# man -w passwd
/usr/share/man/man1/passwd.1.gz
awk [参数] [文件]
-F:指定输入时用到的字段分隔符
打印每一行的第二和第三个字段:
[root@swl ~]# awk '{ print $2,$3 }' file
-F 指定多个分隔符
[root@localhost sh]#df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 37G 4.1G 33G 11% /
devtmpfs devtmpfs 897M 0 897M 0% /dev
tmpfs tmpfs 912M 0 912M 0% /dev/shm
tmpfs tmpfs 912M 9.1M 903M 1% /run
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 179M 836M 18% /boot
tmpfs tmpfs 183M 12K 183M 1% /run/user/42
tmpfs tmpfs 183M 0 183M 0% /run/user/0
[root@localhost sh]#df -hT|awk -F '[ ,%]+' '{print $6}'
已用
11
0
0
1
0
18
1
0
#awk 根据正则表达式查找对应项
[root@localhost sh]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part
├─centos-root 253:0 0 37G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 10G 0 part
│ └─ky15-tp 253:2 0 30G 0 lvm
└─sdb2 8:18 0 10G 0 part
└─ky15-tp 253:2 0 30G 0 lvm
sdc 8:32 0 20G 0 disk
└─ky15-tp 253:2 0 30G 0 lvm
sr0 11:0 1 4.2G 0 rom
[root@localhost sh]#lsblk|awk /disk/'{print $4}'
40G
20G
20G
[root@localhost sh]#lsblk|awk -F '[ ,G]+' /disk/'{print $4}'
40
20
20
使用alias时,用户必须使用单引号 ‘ ‘ 将原来的命令引起来,防止特殊字符导致错误。
-p 打印已经设置的命令别名
[root@localhost sh]#alias -p
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
#设置别名,临时起效
[root@localhost sh]#alias la='ls -a'
[root@localhost sh]#la
. .. ping.sh
#若设置用户永久别名,要在家目录的.bashrc文件下
[root@localhost ~]#vim .bashrc //只对root用户有效,若想对所有用户起效,要在 /etc/bashrc 文件下设置别名
alias df='df -hT'
#设置完后需要 source 下
[root@localhost ~]#source .bashrc
支持任意精度的交互执行的计算器语言。
[root@linuxcool ~]# echo "1.212*3" | bc
3.636
[root@localhost ~]#echo "scale=2;3/8" | bc
.37
-n 检测脚本是否正确,并不执行脚本
-x 执行脚本,输出执行过程
-c bash从字符串中读入命令,如果字符串后还有变量就被设定为从$0开始的位置参数
[root@localhost sh]#bash -n ping.sh
[root@localhost sh]#bash -x ping.sh
显示文件路径名/usr/bin/sort的基本文件名sort:
[root@linuxcool ~]# basename /usr/bin/sort
sort
-c 将压缩与解压缩的结果送到标准输出
-d 执行解压缩
-f bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数
-k bzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数
-s 降低程序执行时内存的使用量
-t 测试.bz2压缩文件的完整性
-v 压缩或解压缩文件时,显示详细的信息
-z 强制执行压缩
压缩文件:
[root@linuxcool ~]# bzip2 a.txt
检查文件完整性:
[root@linuxcool ~]# bzip2 -t a.txt.bz2
参数跟bzip2的参数一致;
解压.bz2文件:
[root@linuxcool ~]# bunzip2 -v temp.bz2
显示test.txt.bz2解压缩之后的文件内容:
[root@linuxcool ~]# bzcat test.txt.bz2
a b c d
e f g h
i j k l
-s 显示指定信息
-v 显示版本信息
-g 收集blkid缓存
-i 收集有关i/o限制的信息
-p 低级超级块探测(旁路缓存)
#显示指定设备的UID
[root@localhost sh]#blkid -s UUID /dev/sdb1
/dev/sdb1: UUID="5KZW5Z-nIoD-A5k8-pIJ8-HB4q-s4Sq-h9kSRs"
n 用于指定退出几成循环
#当n为2时: 退出两层循环,结束:
for((i=3;i>0;i--)); do
for((j=3;j>0;j--)); do
if((j==2)); then
break 2
fi
printf "%s %s\n" ${i} ${j}
done
done
# 输出结果 3 3
[root@localhost sh]#cd /home/lisi //切换到指定的目录
[root@localhost lisi]#cd ../ //切换到上级目录
cd ~ 或 cd //切换到用户家目录
[root@localhost ~]#cd - //切换到上次切换的目录
/home
[root@localhost home]#
#可以使用 pwd 查看当前目录
[root@localhost lisi]#pwd
/home/lisi
用于查看内容较少的纯文本文件的。当文件内容较大时,用more或less查看
-n 显示行数(空行也编号)
-s 显示行数(多个空行算一个编号)
-b 显示行数(空行不编号)
[root@localhost tp]#cat -b a.txt //空格不编号
1 111
2 22
3 3
4 4
5 555
6 6666666
**格式:**cal [参数] [月份] [年份]
-1 单月分输出日历
-3 显示最近三个月的日历
-s 将星期天作为月的第一天
-m 将星期一作为月的第一天
-j 显示在当年中的第几天(儒略日)
-y 显示当年的日历
[root@localhost tp]#cal -1 //只显示当前月份
十月 2021
日 一 二 三 四 五 六
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
#详细用法可用 --help
[root@localhost tp]#clock //显示当前硬件时钟时间
2021年10月31日 星期日 17时01分33秒 -0.646595 秒
[root@localhost tp]#clock --utc //显示UTC硬件时钟时间
2021年10月31日 星期日 17时01分47秒 -0.415746 秒
[root@localhost tp]#clock --hctosys //同步时间
作用类似于 Ctrl+L,清屏的作用
**格式:**cp [参数] 源文件 目标文件
-f 若目标文件已存在,则会直接覆盖原文件
-i 若目标文件已存在,则会询问是否覆盖
-p 保留源文件或目录的所有属性
-r 递归复制文件和目录
-d 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
-b 覆盖已存在的文件目标前将目标文件备份
-a 等价于“dpr”选项
[root@localhost tp]#ls
a.txt
[root@localhost tp]#cp -p a.txt /opt
[root@localhost tp]#ls /opt
a.txt rh
**格式:**curl [参数] [网址]
-O 把输出写到该文件中,保留远程文件的文件名
-u 通过服务端配置的用户名和密码授权访问
[root@localhost opt]#curl www.baidu.com
-c 若该文件权限确实已经更改,才显示其更改动作
-f 若该文件权限无法被更改也不显示错误讯息
-v 显示权限变更的详细资料
-R 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
#文件权限,-r:可读(4),-w:可写(2),-x:可执行(1)
#改变文件权限,使其可读可写可执行
[root@localhost tp]#ll
总用量 4
-rw-r--r-- 1 root root 30 10月 31 16:54 a.txt //这里是文件的属主可读可写,所属组可读,其他人可读
[root@localhost tp]#chmod 777 a.txt
[root@localhost tp]#ll
总用量 4
-rwxrwxrwx 1 root root 30 10月 31 16:54 a.txt
#chmod [u,g,o,a] [+,-] [rwx] 文件或目录
u,g,o,a分别表示:属主,属组,其他用户,所有用户
+,-分别表示:增加,去除权限
将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID,组可以是组名或者组ID,文件是以空格分开的要改变权限的文件列表,支持通配符。
-R 对目前目录下的所有文件与子目录进行相同的拥有者变更
-c 若该文件拥有者确实已经更改,才显示其更改动作
-f 若该文件拥有者无法被更改也不要显示错误讯息
-h 只对于连结(link)进行变更,而非该 link 真正指向的文件
-v 显示拥有者变更的详细资料
[root@localhost tp]#ll
总用量 8
-rw-r--r-- 1 root root 30 10月 31 16:54 a.txt
-rw-r--r-- 1 root root 23 10月 31 17:41 b.txt
drwxr-xr-x 2 root root 6 10月 31 17:41 swl
[root@localhost tp]#chown bin a.txt //改变文件的属主
[root@localhost tp]#ll
总用量 8
-rw-r--r-- 1 bin root 30 10月 31 16:54 a.txt
-rw-r--r-- 1 root root 23 10月 31 17:41 b.txt
drwxr-xr-x 2 root root 6 10月 31 17:41 swl
[root@localhost tp]#chown bin:bin b.txt //改变文件的属主和所属组
[root@localhost tp]#ll
总用量 8
-rw-r--r-- 1 bin root 30 10月 31 16:54 a.txt
-rw-r--r-- 1 bin bin 23 10月 31 17:41 b.txt
drwxr-xr-x 2 root root 6 10月 31 17:41 swl
-f 不显示错误信息
-R 递归处理,将指定目录下的所有文件及子目录一并处理
-v 显示指令执行过程
[root@localhost tp]#ll b.txt
-rw-r--r-- 1 bin bin 23 10月 31 17:41 b.txt
[root@localhost tp]#chgrp -v root b.txt //改变文件的群组属性
changed group of "b.txt" from bin to root
[root@localhost tp]#ll b.txt
-rw-r--r-- 1 bin root 23 10月 31 17:41 b.txt
#--reference 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同
[root@localhost tp]#ll
总用量 8
-rw-r--r-- 1 root bin 30 10月 31 16:54 a.txt
-rw-r--r-- 1 bin root 23 10月 31 17:41 b.txt
[root@localhost tp]#chgrp --reference=b.txt a.txt
[root@localhost tp]#ll
总用量 8
-rw-r--r-- 1 root root 30 10月 31 16:54 a.txt
-rw-r--r-- 1 bin root 23 10月 31 17:41 b.txt
-M 密码保持有效的最大天数
-W 用户密码到期前,提前收到警告信息的天数
-E 帐号到期的日期,会禁止此帐号
-d 上一次更改的日期
-l 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
[root@localhost tp]#chage -l lisi //列出用户密码设置
最近一次密码修改时间 :9月 24, 2021
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
[root@localhost tp]#chage -M 90 lisi //使用户的密码最大有效期为90天
[root@localhost tp]#chage -l lisi
最近一次密码修改时间 :9月 24, 2021
密码过期时间 :12月 23, 2021
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :90
在密码过期之前警告的天数 :7
把一个文件内容重新定向添加到/etc/shadow中。/etc/shadow是保存用户密码信息的文件,只有root有权限。
-e 输入的密码是加密后的密文
-m 当被支持的密码未被加密时,使用MD5加密代替DES加密
[root@localhost tp]#cat user.txt
lisi:lisi
tp:tp
[root@localhost tp]#chpasswd < user.txt
#这里lisi的密码又原来的1234改为lisi,tp的密码由1234改为tp
-l 打印/etc/shells中列出的shell列表并退出
-s 指定登录shell
-u 打印使用信息并退出
[root@localhost tp]#chsh -l #列出/etc/shells下的shell类型
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
[root@localhost tp]#cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
#通过 -s 参数改变当前的shell设置:
[lisi@localhost ~]$ cat /etc/passwd | grep "/bin/bash"
root:x:0:0:root:/root:/bin/bash
tp:x:1000:1000:tp:/home/tp:/bin/bash
lisi:x:1001:1001::/home/lisi:/bin/bash
[lisi@localhost ~]$ chsh -s /bin/csh #改变当前用户的shell设置
Changing shell for lisi.
密码:
Shell changed.
[lisi@localhost ~]$ cat /etc/passwd | grep "/bin/bash" #查看shell
root:x:0:0:root:/root:/bin/bash
tp:x:1000:1000:tp:/home/tp:/bin/bash
[lisi@localhost ~]$ cat /etc/passwd | grep "/bin/csh"
lisi:x:1001:1001::/home/lisi:/bin/csh
-f 设置真实姓名
-h 设置家中的电话号码
-u 在线帮助
a:让文件或目录仅供附加用途;
A:当一个具有“A”属性的文件被访问时,它的atime记录不会被修改;
c:将文件或目录压缩后存放;
d:将文件或目录排除在倾倒操作之外;
i:不得任意更动文件或目录;
u:当删除具有‘u’属性集的文件时,它的内容将被保存。
用chattr命令防止系统中某个关键文件被修改(加锁):
[root@localhost ~]#chattr +i /etc/resolv.conf
[root@localhost ~]#chattr -i /etc/resolv.conf #解锁
#让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
[root@localhost ~]#chattr +a /var/log/messages
-d 自定义分隔符,默认为制表符”TAB”;
-f 显示指定字段的内容 , 与-d一起使用;
[root@localhost tp]#cat b.txt
no name sex score
1 tom 男 90
2 jan 女 80
3 jack 男 99
[root@localhost tp]#cat b.txt | cut -d " " -f 2 #以空格为分隔符,区第二个字段
name
tom
jan
jack
比较两个任意类型的文件,若两个文件相同则默认不输出任何信息,若两个文件不同,则会输出第一个不同之处的字符和列数编号,结果输出到标准输出。
-s 不显示错误信息
-l 标示出所有不一样的地方
-i 指定一个数目
-c 除了标明差异处的十进制字码之外,一并显示该字符所对应字符
用以创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据。
结束当次循环,继续执行下一次循环。
系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。/etc/crontab文件是系统任务调度的配置文件。
用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。
-e 编辑该用户的计时器设置
-l 列出该用户的计时器设置
-r 删除该用户的计时器设置
-u 指定要设定计时器的用户名称
[root@localhost tp]#crontab -e #设置定时任务
30 9 * * * /usr/bin/ls #每天的9点30,列出当前目录的文件
[root@localhost tp]#crontab -l #查看定时任务
30 9 * * * /usr/bin/ls
#要想定时任务对所有人生效,要在 /etc/crontab 文件下设置定时任务
[root@localhost etc]#vim crontab
# * * * * * 命令或脚本 (注意:这里命令和脚本要绝对路径)
五个星号分别代表:分,时,日,月,周
–help 在线帮助
#开启和关闭服务
[root@linuxcool ~]# chkconfig telnet on
[root@linuxcool ~]# chkconfig telnet off
#增加httpd服务,删除httpd服务
[root@linuxcool ~]# chkconfig –-add httpd
[root@linuxcool ~]# chkconfig –-del httpd
sources 时间同步源
sourcestats 时间同步源状态
#开启chrony服务
[root@localhost sh]#systemctl enable chronyd
#查看时间同步源
[root@localhost sh]#chronyc sources -v
**格式:**date [选项] [+输出形式]
-d datestr 显示 datestr 中所设定的时间 (非系统时间)
-s datestr 将系统时间设为 datestr 中所设定的时间
-u 显示目前的格林威治时间
[root@localhost ~]#date #显示当前时间
2021年 11月 01日 星期一 16:55:32 CST
[root@localhost ~]#date "+%c"
2021年11月01日 星期一 16时55分47秒
[root@localhost ~]#date '+%B %d' #显示月份与日数
十一月 01
仅显示与目录有关的内容。
–help 显示帮助
-a 显示所有系统文件
-B <块大小> 指定显示时的块大小
-h 以容易阅读的方式显示
-H 以1000字节为换算单位来显示
-i 显示索引字节信息
-k 指定块大小为1KB
-l 只显示本地文件系统
-t <文件系统类型> 只显示指定类型的文件系统
-T 输出时显示文件系统类型
[root@localhost ~]#df -hT #显示磁盘分区使用情况
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 37G 4.5G 33G 13% /
devtmpfs devtmpfs 897M 0 897M 0% /dev
tmpfs tmpfs 912M 0 912M 0% /dev/shm
tmpfs tmpfs 912M 9.1M 903M 1% /run
tmpfs tmpfs 912M 0 912M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 179M 836M 18% /boot
tmpfs tmpfs 183M 4.0K 183M 1% /run/user/42
tmpfs tmpfs 183M 32K 183M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /run/media/root/CentOS 7 x86_64
[root@linuxcool ~]# df -t ext4 #显示文件系统类型为ext4的磁盘使用情况
#将本地的/dev/sda 整盘备份到/dev/sdc下
[root@linuxcool ~]# dd if=/dev/sda of=/dev/sdc
# dd if=/dev/sda of=/backup/tp.bak bs=512 count=1
复制 if=你要复制的文件 of=复制后的存放位置 bs=复制的大小 count=复制的次数
diff以逐行的方式,比较文本文件的异同处。
a diff预设只会逐行比较文本文件
-b 不检查空格字符的不同
-W 在使用-y参数时,指定栏宽
-x 不比较选项中所指定的文件或目录
-X 您可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件
-y 以并列的方式显示文件的异同之处
#并排格式输出
[root@localhost aa]#diff 1.txt 2.txt -y -W 50
achuhsdiuv | qqq
cusidgciu | 11111
sivuui | 22223
bcisdgcvi | 2fdgdvd
kscvg <
sbvjbvjvbshvo <
lsbcvudgv <
gfiiysdtfwgf93bv <
vjcdkcbvoudfsg <
vnfo <
#注意:”|”表示前后2个文件内容有不同,”<“表示后面文件比前面文件少了1行内容,”>”表示后面文件比前面文件多了1行内容。
declare定义的变量仅能在当前shell环境中起作用,切换shell环境后将无效。
-i 安装软件包
-r 删除软件包
-l 显示已安装软件包列表
-L 显示于软件包关联的文件
-c 显示软件包内文件列表
#列出当前已安装的包
[root@linuxcool ~]# dpkg -l
-b 打印文件系统中预留的块信息
-h 仅显示超级块信息
-i 从指定的文件系统映像文件中读取文件系统信息
[root@linuxcool ~]# dumpe2fs /dev/hda1 #打印/dev/hda1文件系统的超级块和快组信息
[root@linuxcool ~]# dumpe2fs -h /dev/hda1 #打印/dev/hda1文件系统的超级块信息
-d
-a 显示目录中所有文件大小
-h 以易读方式显示文件大小
-s 仅显示总计
[root@localhost aa]#du -ha
0 ./bb/cc
0 ./bb
0 ./5.txt
4.0K ./1.txt
4.0K ./2.txt
4.0K ./3.txt
4.0K ./4.txt
16K .
[root@localhost aa]#du -hs
16K .
[root@localhost aa]#du -h
0 ./bb/cc
0 ./bb
16K .
#注意:这里的-a,-s不能同时使用
-n 不输出结尾的换行符
-e “\a” 发出警告音
-e “\b” 删除前面的一个字符
-e “\c” 结尾不加换行符
-e “\f” 换行,光标扔停留在原来的坐标位置
-e “\n” 换行,光标移至行首
-e “\r” 光标移至行首,但不换行
[root@localhost aa]#echo "hello" #输出字符串
hello
[root@localhost aa]#echo $PATH #输出变量提取后的值
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost aa]#echo \$PATH #对内容进行转义,不让$符号的提取变量值功能生效
$PATH
[root@localhost aa]#echo "hello world" > 1.txt #结合输出重定向符,将字符串信息导入文件中
[root@localhost aa]#cat 1.txt
hello world
[root@localhost aa]#echo `date` #使用反引号符执行命令,并输出其结果到终端
2021年 11月 01日 星期一 17:35:18 CST
-all 显示shell所有关闭与启动的指令
exit命令用来退出当前的shell或退出终端 ,并返回给定值。
状态值0代表执行成功,其他值代表执行失败。
**格式:**exit [状态值]
0 执行成功
1 执行失败
$? 参照上一个状态值
export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。
#列出当前所有的环境变量
[root@linuxcool ~]# export -p
#命令同env
空格 隔开每个项
\(反斜杠) 放在 shell 特定的字符前面
“”(引号) 对包含空格和其他特殊字符的字符串要用引号括起来
#计算字符串长度
[root@localhost aa]#expr length "hello world"
11
[root@localhost aa]#expr index "hello world" o #抓取第一个字符出现的位置
5
e2fsck命令可以检查ext2、ext3、ext4文件系统,如果系统已经挂载了,那么不建议去检查,因为这样是不安全的。
-i | 显示网卡驱动的信息 |
---|---|
-E | 修改网卡只读存储器字节 |
-K | 修改网卡 Offload 的状态 |
ethx | 查询ethx网口基本设置,其中 x 是对应网卡的编号,如eth0、eth1等 |
-s | 修改网卡的部分配置 |
-t | 让网卡执行自我检测 |
eval命令用于重新运算求出参数的内容。eval可读取一连串的参数,然后再依参数本身的特性来执行。
显示系统中物理上的空闲和已用内存,还有交换内存,同时,也能显示被内核使用的缓冲和缓存。这些信息是通过解析文件 /proc/meminfo 而收集到的。
-m 以mb为单位显示内存使用情况
-g 以gb为单位显示内存使用情况
-s 持续显示内存
-t 显示内存使用总合
#以MB为单位显示内存使用情况
[root@localhost ~]#free -m
total used free shared buff/cache available
Mem: 1823 310 1125 9 387 1313
Swap: 2047 0 2047
#周期性查询内存使用情况,每10秒查询一次
[root@localhost ~]#free -s 10
total used free shared buff/cache available
Mem: 1867048 317952 1151964 9380 397132 1344876
Swap: 2097148 0 2097148
-b:不显示文件名称
-L 直接显示符号连接所指向的文件类别
[root@localhost ~]#file aa
aa: directory
[root@localhost ~]#file -b aa
directory
-l | 列出该用户的账号名称、真实姓名、用户根目录、登录所用的 shell、登录时间、邮件地址、电子邮件状态等 |
---|---|
-m | 排除查找用户的真实姓名 |
-s | 列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话 |
-p | 列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容 |
[root@localhost ~]#finger -l
Login: root Name: root
Directory: /root Shell: /bin/bash
On since 日 11月 7 08:33 (CST) on pts/0 from 192.168.111.1
5 seconds idle
No mail.
No Plan.
find参数选项很多,并且支持正则,功能强大。
-name 按名称查找
-size 按大小查找
-user 按属性查找
-type 按类型查找
-iname 忽略大小写
-path 文件路径
-ctime n : 在过去n天内被修改过的文件
-atime n : 在过去n天内被读取过的文件
[root@linuxcool ~]# find /etc -name "*.conf"
#使用-size参数查看/etc目录下面大于1M的文件:
[root@linuxcool ~]# find /etc -size +1M
#查找当前用户主目录下的所有文件:
[root@linuxcool ~]# find $HOME -print
-a 自动修复文件系统,不询问任何问题
-r 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式
-t 指定要检查的文件系统类型
[root@linuxcool ~]# fsck -t ext3 -r /usr/local
[root@linuxcool ~]# findfs UUID="1271a9f5-3c66-43c5-a3ff-c79750db70c2"
-b 指定每个分区的大小
-l 列出指定的外围设备的分区表状况
-s 将指定的分区大小输出到标准输出上,单位为区块
#查看所有磁盘分区
[root@localhost ~]#fdisk -l
#选择磁盘分区
[root@linuxcool ~]# fdisk /dev/sdb
-a 显示命令行中指定的所有文件
-k 杀死访问指定文件的所有进程
-i 杀死进程前需要用户进行确认
-l 列出所有已知信号名
-m 指定一个被加载的文件系统或一个被加载的块设备
-n 选择不同的名称空间
-u 在每个进程后显示所属的用户名
#列出使用/etc/passwd文件的本地进程的进程号:
[root@localhost ~]#fuser /etc/passwd
#列出使用/etc/filesystems文件的进程的进程号和用户登录名:
[root@linuxcool ~]# fuser -u /etc/filesystems
#终止使用给定文件系统的所有进程:
[root@linuxcool ~]# fuser -k -x -u -c /dev/hd1
fping可以在命令行中指定要ping的主机数量范围,也可以指定含有要ping的主机列表文件。
-a 显示存活的
-g 指定一个范围
-u 显示不存活的
#检测192.168.1.1到192.168.1.10之间的主机是否存在:
[root@linuxcool ~]# fping -a -g 192.168.1.1 192.168.1.10
#将IP列表放在一个文件里面,通过读取文件来检测列表里的主机是否存在:
[root@linuxcool ~]# fping -a -f ip.txt
g 指定新建工作组的id
-r 创建系统工作组,系统工作组的组ID小于500
#查看所有组
cat /etc/group
#查看用户组信息
id 用户
#新建组并指定PID
[root@localhost ~]#groupadd -g 1005 swl
swl:x:1005:
-g 设置欲使用的群组识别码
-o 重复使用群组识别码
-n 设置欲使用的群组名称
#更改swl组名为zwww
[root@localhost ~]#groupmod -n zwww swl
zwww:x:1005:
[root@localhost ~]#cat /etc/group|tail -3
tp:x:1000:tp
lisi:x:1001:
zwww:x:1005:
#删除用户组 zwww
[root@localhost ~]#groupdel zwww
[root@localhost ~]#cat /etc/group|tail -3
tcpdump:x:72:
tp:x:1000:tp
lisi:x:1001:
-a 添加用户为组成员
-d 从组成员中删除用户
-l 列出组群的成员
-p 从组群中清除所有成员
#设置用户lisi 的主要组群为 tp:
tp:x:1000:tp
lisi:x:1001:
[root@localhost ~]#groupmems -g tp -a lisi
[root@localhost ~]#cat /etc/group|tail -2
tp:x:1000:tp,lisi
lisi:x:1001:
#列出主要组群的成员:
[root@localhost ~]#groupmems -g tp -l
tp lisi
-a 添加用户到组
-d 从组删除用户
-A 指定管理员
-M 指定组成员和-A的用途差不多
-r 删除密码
[root@localhost ~]#cat /etc/group|tail -2
tp:x:1000:tp,lisi
lisi:x:1001:
#使用-d参数把lisi用户从 tp组中删除
[root@localhost ~]#gpasswd -d lisi tp
正在将用户“lisi”从“tp”组中删除
[root@localhost ~]#cat /etc/group|tail -2
tp:x:1000:tp
lisi:x:1001:
#把lisi用户加入到tp组中
[root@localhost ~]#gpasswd -a lisi tp
正在将用户“lisi”加入到“tp”组中
-r 只读模式
-s 排序组id
#对组账号文件进行验证:
[root@linuxcool ~]# grpck /etc/group
-s 要使用的服务配置
-help 给出该系统求助列表
-usage 给出简要的用法信息
-V 打印程序版本号
#从passwd库中得到账号tp信息:
[root@localhost ~]#getent passwd tp
tp:x:1000:1000:tp:/home/tp:/bin/bash
-a 使用ASCII文字模式
-d 解开压缩文件
-f 强行压缩文件
-l 列出压缩文件的相关信息
-c 把压缩后的文件输出到标准输出设备,不去更动原始文件
-r 递归处理,将指定目录下的所有文件及子目录一并处理
-q 不显示警告信息
#压缩1.txt文件
[root@localhost aa]#gzip 1.txt
[root@localhost aa]#ls
1.txt.gz 2.txt 3.txt 4.txt 5.txt bb
#列出1.txt压缩问件的信息
[root@localhost aa]#gzip -l 1.txt.gz
compressed uncompressed ratio uncompressed_name
105 105 22.9% 1.txt
#解压1.txt文件
[root@localhost aa]#gzip -d 1.txt.gz
[root@localhost aa]#ls
1.txt 2.txt 3.txt 4.txt 5.txt bb
#查看文件的字节数,字数,行数
[root@localhost aa]#wc 1.txt
10 10 105 1.txt
用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为”.gz”。事实上gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip命令单独完成。
-h 在线帮助。
-S<压缩字尾字符串> 更改压缩字尾字符串
-v 显示指令执行过程
-V 显示版本信息
#解压,显示详细执行过程:
[root@linuxcool ~]# gunzip -v 1.gz
#指定后缀名解压:
[root@linuxcool ~]# gunzip -v -S "mygz" 1.mygz
-l 列出指定的设备的分区表状况
#查看所选分区情况:
[root@localhost aa]#gdisk -l /dev/sdb
GPT fdisk (gdisk) version 0.8.6
Partition table scan:
MBR: not present
BSD: not present
APM: not present
GPT: not present
Creating new GPT entries.
Disk /dev/sdb: 41943040 sectors, 20.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 6CC59280-FF55-4866-B696-FB226F7AE21B
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 41942973 sectors (20.0 GiB)
Number Start (sector) End (sector) Size Code Name
grub是一个引导程序或者是一个系统引导工具,通过grub命令可以引导种类丰富的系统,如linux、freebsd、windows等。
grub-install:在设备上安装GRUB
-c 指定加密文件
-o 指定解密文件
–gen-key 生成密钥对
–list-keys 查看已有的密钥
#对称加密myfile文件:
[root@linux ~]# gpg -c myfile
#解密对称加密的文件:
[root@linux ~]# gpg -o mydecrypt -d myfile.gpg
#生成密钥对:
[root@linux ~]# gpg --gen-key
#查看已有的密钥:
[root@linux ~]# gpg --list-keys
显示当前SELinux的应用模式,是强制、执行还是停用。
#显示SElinux的状态
[root@localhost aa]#getenforce
Disabled
#临时关闭SELinux
[root@localhost aa]#getenforce 0
-n 后面接数字,代表显示几行的意思
-c 指定显示头部内容的字符数
-v 总是显示文件名的头信息
-q 不显示文件名的头信息
#显示文件开头三行
[root@localhost aa]#head -3 1.txt
achuhsdiuv
cusidgciu
sivuui
[root@localhost aa]#head -n 3 1.txt
#不显示文件倒数三行(从开头到倒数第四行)
[root@localhost aa]#head -n -3 1.txt
#显示文件前5个字符:
[root@localhost aa]#head -c 5 1.txt
achuh
-a 显示主机别名
-d 显示DNS域名
-f 显示FQDN名称
-i 显示主机的ip地址
-s 显示短主机名称,在第一个点处截断
-y 显示NIS域名
#显示主机名
[root@localhost aa]#hostname -a
localhost.localdomain
#显示主机别名
[root@localhost aa]#hostname -a
-a 将当前shell会话的历史命令追加到命令历史文件中,命令历史文件是保存历史命令的配置文件
-c 清空当前历史命令列表
-d 删除历史命令列表中指定序号的命令
-w 把当前的shell历史命令内存缓冲区的内容写入命令历史文件
#显示最近的10条命令:
[root@localhost aa]#history 10
#将当前Shell会话的历史命令追加到命令历史文件中:
[root@localhost aa]#history -a
-d 在哈希表中清除记录
-l 显示哈希表中的命令
-p<指令> 将具有完整路径的命令加入到哈希表中
-r 清除哈希表中的记录
-t 显示哈希表中命令的完整路径
#显示哈希表中的命令:
[root@linuxcool ~]# hash -l
#删除哈希表中的命令:
[root@linuxcool ~]# hash -r
#向哈希表中添加命令:
[root@linuxcool ~]# hash -p /usr/sbin/adduser myadduser
#在哈希表中清除记录:
[root@linuxcool ~]# hash -d
halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。
-w 并不是真正的重启或关机,只是写wtmp(/var/log/wtmp)纪录
-d 不写wtmp纪录(已包含在选项[-n]中)
-f 没有调用shutdown而强制关机或重启
-i 关机(或重启)前关掉所有的网络接口
-p 该选项为缺省选项,就是关机时调用poweroff
#使用-p参数关闭操作系统,等同于poweroff 命令,并关闭了操作系统的电源:
[root@linuxcool ~]# halt -p
#使用-f参数强制关机,操作系统电源未关闭:
[root@linuxcool ~]# halt -f
Halting.
0 关机
1 单用户
2 多用户
3 完全多用户模式
5 图形界面
6 重启
#切换成最小化安装模式
[root@localhost ~]#init 3
#切换成图形界面
[root@localhost ~]#init 5
#重启
[root@localhost ~]#init 6
-w 显示info文档的物理位置
-f 指定要访问的info文件
-n 在首个浏览过info文件中指定节点
#查看ls命令的info文档:
[root@linuxcool ~]# info ls
#显示ls命令info文档的物理位置:
[root@linuxcool ~]# info -w ls
-g 显示用户所属群组的ID
-G 显示用户所属附加群组的ID
-n 显示用户,所属群组或附加群组的名称
-u 显示用户ID
#显示当前用户的用户ID
[root@localhost ~]#id -u lisi
1001
#显示当前用户的所有信息:
[root@localhost ~]#id
uid=0(root) gid=0(root) 组=0(root)
-f 输入编码
-t 输出编码
-c 忽略不可转换的字符
-s 不显示有关转换出错的信息
-l 列出支持的编码
#查看支持的编码列表:
[root@linuxcool ~]# iconv -l
用于配置和显示Linux内核中网络接口的网络参数。
down 关闭指定的网络设备
up 启动指定的网络设备
IP地址 指定网络设备的IP地址
#启动关闭指定网卡:
[root@linuxcool ~]# ifconfig eth0 down
[root@linuxcool ~]# ifconfig eth0 up
-s 输出更详细的信息
-4 指定使用的网络层协议是IPv4协议
-6 指定使用的网络层协议是IPv6协议
#显示IP信息
[root@localhost ~]#ip a
iptables命令是linux系统中在用户空间中运行的运来配置内核防火墙的工具。它可以设置,维护和检查linux内核中的ipv4包过滤规则和管理网络地址转换(NAT)。
格式: install [参数] [源文件] [目标文件]
-c 比较每组文件和目标文件,在一些情况下不修改目标文件
-d 将所有的参数视为目标名称,为指定的目录创建所有组件
-g 自行设置所属组,而不是进程目前所属组
#创建/root/www文件夹:
[root@linuxcool ~]# install -d /root/www
-o 只显示有io操作的进程
-b 批量显示,无交互,主要用作记录到文件
-n NUM 显示NUM次,主要用于非交互式模式
-d SEC 间隔SEC秒显示一次
-p PID 监控的进程pid
-u USER 监控的进程用户
#使用-o参数只显示IO操作进程:
[root@linuxcool ~]# iotop -o
-c 仅显示CPU使用情况
-d 仅显示设备利用率
#每隔两秒报告一次:
[root@linuxcool ~]# iostat -d 2
#每2秒报告一次,持续6次:
[root@linuxcool ~]# iostat -d 2 6
-i 指定要监控的网卡
-n 直接显示IP, 不进行DNS反解析
#默认监控第一块网卡的流量:
[root@linuxcool ~]# iftop
-i 立即在指定网络接口上开启IP流量监视
-g 立即开始生成网络接口的概要状态信息
-d 在指定网络接口上立即开始监视明细的网络流量信息
-s 在指定网络接口上立即开始监视TCP和UDP网络流量信息
-z 在指定网络接口上显示包计数
-l 在指定网络接口上立即开始监视局域网工作站信息
-t 指定命令监视的时间
-f 清空所有计数器
#监视网卡eth0的详细流量:
[root@linuxcool ~]# iptraf -d eth0
#监视网卡eth0的详细ip流量:
[root@linuxcool ~]# iptraf -i eth0
#监视网卡eth0的详细tcp/udp流量:
[root@linuxcool ~]# iptraf -s eth0
-l 显示作业列表时包括进程号
-n 显示上次使用jobs后状态发生变化的作业
-p 显示作业列表时仅显示其对应的进程号
-r 仅显示运行的作业
-s 仅显示暂停的作业
#显示当前的作业列表:
[root@linuxcool ~]# jobs
#显示当前的作业号以及对应的进程号:
[root@linuxcool ~]# jobs -l
-l 列出系统支持的信号
-s 指定向进程发送的信号
-a 处理当前进程时不限制命令名和进程号的对应关系
-p 指定kill命令只打印相关进程的进程号,而不发送任何信号
#列出系统支持的信号列表
[root@swl ~]#kill -l
#杀死进程
[root@linuxcool ~]# kill -9 1951
-r 使用正规表达式匹配要杀死的进程名称
-u 杀死指定用户的进程
#杀死httpd所有进程
[root@linuxcool ~]# killall -9 httpd
-a 显示所有设备
-b 以bytes方式显示设备大小
-e 排除设备
-f 显示文件系统信息
[root@localhost ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part
├─centos-root 253:0 0 37G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
sr0 11:0 1 4.2G 0 rom
-a 显示所有文件及目录 (包括以“.”开头的隐藏文件)
-l 使用长格式列出文件及目录信息
-r 将文件以相反次序显示(默认依英文字母次序)
-t 根据最后的修改时间排序
-A 同 -a ,但不列出 隐藏文件
-S 根据文件大小排序
-R 递归列出所有子目录
#按文件大小排序
[root@localhost ~]#ls -S
#以长格式列出文件信息,ll 为 ls -l
[root@localhost ~]#ll
总用量 8
drwxr-xr-x 3 root root 81 11月 8 15:19 aa
-rw-------. 1 root root 1757 9月 24 21:58 anaconda-ks.cfg
-rw-r--r--. 1 root root 1785 9月 24 13:59 initial-setup-ks.cfg
drwxr-xr-x 2 root root 6 11月 9 11:29 www
#显示有关CPU的相关信息
[root@localhost ~]#lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
–help 在线帮助
-b 为每个已存在的目标文件创建备份文件
-d 此选项允许“root”用户建立目录的硬链接
-f 强制创建链接,即使目标文件已经存在
-n 把指向目录的符号链接视为一个普通文件
-i 交互模式,若目标文件已经存在,则提示用户确认进行覆盖
-s 对源文件建立符号链接,而非硬链接
-v 详细信息模式,输出指令的详细执行过程
#为文件创建软连接
[root@localhost ~]#ln -s aa /opt
[root@localhost ~]#ll /opt
总用量 0
lrwxrwxrwx 1 root root 2 11月 9 21:26 aa -> aa
drwxr-xr-x. 2 root root 6 3月 26 2015 rh
-a 列出目录中的所有文件,包括隐藏文件
-d 只显示目录名称
-R 递归地处理指定目录下的所有文件及子目录
#使用 lsattr 命令来显示文件属性:
[root@localhost ~]#lsattr /etc/resolv.conf
---------------- /etc/resolv.conf
用于查看进程开打的文件,打开文件的进程,进程打开的端口(TCP、UDP)。
-a 列出打开文件存在的进程
-c <进程名> 列出指定进程所打开的文件
-g 列出GID号进程详情
-d <文件号> 列出占用该文件号的进程
+d <目录> 列出目录下被打开的文件
+D <目录> 递归列出目录下被打开的文件
-n <目录> 列出使用NFS的文件
-i <条件> 列出符合条件的进程
-p <进程号> 列出指定进程号所打开的文件
-u 列出UID号进程详情
#查看文件进程信息
lsof
#查看80端口
[root@localhost ~]#lsof -i :80
#列出GID号进程详情:
[root@linuxcool ~]# lsof -g
#列出目录下被打开的文件:
[root@linuxcool ~]# lsof +d /root
#递归列出目录下被打开的文件:
[root@linuxcool ~]# lsof +D /home/linuxcool
#列出使用NFS的文件:
[root@linuxcool ~]# lsof -n /root
ctrl+F:下一页;ctrl+B:上一页
[root@linuxcool ~]# history | less
#自加操作:
[root@linux ~]# let no++
#自减操作:
[root@linux ~]# let no--
-d<目录> 指定数据库所在的目录
–help 显示帮助
#搜索/etc目录下所有以sh开头的文件:
[root@localhost ~]#locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells
pvcreate:创建物理卷;vgcreate:创建卷组
-L 指定逻辑卷的大小
-n 指定逻辑卷名字
[root@linux ~]# lvcreate -L 25G -n swl linux
#指定大小为25G,名称为swl,卷组名为linux
[root@localhost ~]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- 36.99g
swap centos -wi-ao---- 2.00g
[root@localhost ~]#lvdisplay
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID MEn3Y4-FzUC-7N9m-gNDn-DUpH-bGPS-eH0mwa
. . . . . .
-f 强制删除
-L 指定逻辑卷的大小
-f 在不提示的情况下减小空间
#将逻辑卷的空间大小减少50M:
[root@linux ~]# lvreduce -L -50M /dev/vg10/lv01
-L 指定逻辑卷的大小
#为逻辑卷增加100M空间:
[root@linux ~]# lvextend -L +100M /dev/vg10/lv01
#显示模块信息:
[root@linuxcool ~]# lsmod
-d 打印调试信息
-q 不发出警告
-s 不花时间查找或向数据库添加有关stray cats的信息
-p 不花时间检查删除的手册页并从数据库中清理它们
#更新top命令手册页索引缓存:
[root@linuxcool ~]# mandb top
#使用-d参数,打印调试信息:
[root@linuxcool ~]# mandb -d unzip
-i 若存在同名文件,则向用户询问是否覆盖
-f 覆盖已有文件时,不进行任何提示
-b 当文件存在时,覆盖前为其创建一个备份
-u 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作
#将文件file_1重命名为file_2:
[root@linuxcool ~]# mv file_1 file_2
#将文件file移动到目录opt中 :
[root@linuxcool ~]# mv file /opt
-s 给邮件追加主题
-a 发送邮件附件,多个附件使用多次-a选项即可
-b 指定密件抄送的收信人地址
-c 指定抄送的收信人地址
#发一封标题为test的空信给后面的邮箱:
[root@linuxcool ~]# mail -s test [email protected]
-p 递归创建多级目录
-m 建立目录的同时设置目录的权限
#递归创建目录:
[root@linuxcool ~]# mkdir -p swl/aa/bb
-num 指定每屏显示的行数
-f 计算实际的行数,而非自动换行的行数
-p 先清除屏幕再显示文本文件的剩余内容
-c 与-p相似,不滚屏,先显示内容再清除旧内容
-s 多个空行压缩成一行显示
#显示文件file的内容,显示之前先清屏,附已显示的百分比:
[root@linuxcool ~]# more -dc file
#显示文件file的内容,每10行显示一次,而且在显示之前先清屏:
[root@linuxcool ~]# more -c -10 file
#显示文件file的内容,每5行显示一次,而且在显示之后再清屏:
[root@linuxcool ~]# more -p -5 file
#逐页显示 file 文档内容,如有连续两行以上空白行则以一行空白行显示 :
[root@linuxcool ~]# more -s file
#从第 20 行开始显示 file 之文档内容 :
[root@linuxcool ~]# more +20 file
#格式化分区
mkfs.xfs /dev/sdb1
#读取指定文件作为makefile文件:
[root@linux ~]# make -f my_linux
-v 显示网络接口的信息
-R 重设MII到开启状态
-r 重启自动协商模式
-w 查看网络接口连接的状态变化
-l 写入事件到系统日志
-A 指令特定的网络接口
-F 更改网络接口协商方式
#查看网络接口的协商状态:
[root@linuxcool ~]# mii-tool -v eth0
#使用 -r 重启自动协商模式:
[root@linuxcool ~]# mii-tool -r eth0
-a 加载命令行给出的全部的模块
-c 显示所有模块的设置信息
-d 使用排错模式
-l 显示可用的模块
-r 从内核中移除模块
-t 指定模块类型
-s 记录错误信息到系统日志中
#查看modules的配置文件:
[root@linuxcool ~]# modprobe -c
#列出内核中所有已经或者未挂载的所有模块:
[root@linuxcool ~]# modprobe -l
#挂载指定模块:
[root@linuxcool ~]# modprobe -v ide-cd
#移除指定模块:
[root@linuxcool ~]# modprobe -r ide-cd
-a 显示模块开发人员
-d 显示模块的说明
#显示sg模块的信息:
[root@linuxcool ~]# modinfo sg
#显示sg模块的开发人员信息:
[root@linuxcool ~]# modinfo -a sg
-r 已报告模式显示
-c 发送多少个数据包
-n 不用主机解释
-s 用来指定ping数据包的大小
#使用-c参数设置每秒发送数据包数量:
[root@linuxcool ~]# mtr -r -c 30 202.108.33.94
#生成临时目录:
[root@linuxcool ~]# mktemp -d
#在指定目录下生成临时文件:
[root@linuxcool ~]# mktemp -d --tmpdir=/home abc.XXX
-d 定义密码的最小数目,默认值是2
-l 定义口令的长度,默认值为9
-v 导致密码设置互动可见
#生成随机密码同时制定长度为20:
[root@linuxcool ~]# mkpasswd -l 20
#生成指定数字位数的密码:
[root@linuxcool ~]# mkpasswd -d 3
#每隔1个时间单位采样5次:
[root@linuxcool ~]# mpstat 1 5
#生成文件md5值:
[root@linuxcool ~]# md5sum file
#文件内容校验:
[root@linuxcool ~]# md5sum -c d.md5
-p 设置本地主机使用的通信端口
-s 设置本地主机送出数据包的IP地址
-u 使用UDP传输协议
-v 显示指令执行过程
#扫描80端口:
[root@linuxcool ~]# nc -nvv 192.168.3.1 80
#扫描UDP端口:
[root@linuxcool ~]# nc -u -z -w2 192.168.0.1 1-1000
#打开或新建文件:
[root@linuxcool ~]# nano test.txt
#保存所做的修改:
[root@linuxcool ~]# Ctrl+O
#要剪切一整行:
[root@linuxcool ~]# Ctrl+K
#粘贴:
[root@linuxcool ~]# Ctrl+U
-c 指定加密方法,可以指定为NONE、DES、MD5、SHA256、SHA5121
-r 创建系统账户
-s 为SHA*加密算法进行四舍五入
#将群组切换到linuxcool组 :
[root@linuxcool ~]# newgrp linuxcool
info 显示当前网络计划的版本和可用功能
ip 从系统中获取IP信息
#从系统中获取IP信息:
[root@linuxcool ~]# netplan ip
#显示当前网络计划的版本和可用功能:
[root@linuxcool ~]# netplan info
nmcli命令是可以完成网卡上的所有配置,并可以写入配置文件中。
d 监控和管理网络设备的接口
c 监控和管理网络设备的连接
#显示所有连接的列表:
[root@linuxcool ~]# nmcli con show
#查看接口信息:
[root@linuxcool ~]# nmcli device show
–traceroute 扫描主机端口并跟踪路由
-p 扫描指定端口和端口范围
-sP 对目标主机进行ping扫描
-A 使用高级功能进行扫描
#扫描主机并跟踪路由:
[root@linuxcool ~]# nmap --traceroute www.linuxcool.com
#使用-p参数探测80、443端口:
[root@linuxcool ~]# nmap -p80,443 www.linuxcool.com
-back 在互动式界面里,显示Back钮,而非Cancel钮
-level <等级代号> 在指定的执行等级中,决定要开启或关闭哪些系统服务
#编辑运行级别0,1和6:
[root@linuxcool ~]# ntsysv --levels 016
#调整日期时钟:
[root@linuxcool ~]# ntpdate -b
-in 输入
-out 输出
#查看当前工作目录路径
[root@localhost aa]#pwd
/root/aa
-f 强制关闭操作系统
-i 关闭操作系统之前关闭所有的网络接口
-h 关闭操作系统之前将系统中所有的硬件设置为备用模式
#把所有进程显示出来
[root@linuxcool ~]# ps -aux
#把所有进程显示出来,并输出到ps.txt文件:
[root@linuxcool ~]# ps -aux > ps.txt
#显示指定用户信息:
[root@linuxcool ~]# ps -u root
#按 CPU 资源的使用量对进程进行排序:
[root@linuxcool ~]# ps aux | sort -nk 3
#按内存资源的使用量对进程进行倒序排序:
[root@linuxcool ~]# ps aux | sort -rnk 4
-d 删除密码
-l 锁定用户密码,无法被用户自行修改
-u 解开已锁定用户密码,允许用户自行修改
-S 查询密码状态
#修改当前登陆的账户密码:
[root@linuxcool ~]# passwd
#锁定密码不允许用户修改:
[root@linuxcool ~]# passwd -l linuxcool
#解除锁定密码,允许用户修改:
[root@linuxcool ~]# passwd -u linuxcool
#下次登陆强制改密码:
[root@linuxcool ~]# passwd -e linuxcool
#查询密码状态
[root@localhost aa]#passwd -S lisi
lisi PS 2021-09-24 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
-c 指定发送报文的次数
-i 指定收发信息的间隔时间
-I 使用指定的网络接口送出数据包
-s 设置数据包的大小
#设置次数为4,时间间隔为3秒:
[root@linuxcool ~]# ping -c 4 -i 3 www.baidu.com
patch命令让用户利用设置修补文件的方式,修改,更新原始文件。
格式: paste [参数] [文件1] [文件2]
-d 默认域的分隔符是空格或tab键,设置新的域分隔符
-s 将每个文件粘贴成一行
– 从标准输入中读取数据
[root@linuxcool ~]# paste file1 file2
aaa AAA
bbb BBB
ccc CCC
ddd DDD
eee EEE
#显示当前所有进程的进程号和进程id:
[root@linuxcool ~]# pstree -p
printenv:显示指定的环境变量的值
–help 显示此帮助信息并退出
#显示所有环境变量:
[root@linuxcool ~]# printenv
#显示环境变量 LANG 的值:
[root@linuxcool ~]# printenv LANG
\a 警告字符
\n 换行
\r 回车
-d 不更新内核
-s 显示摘要和分区
-h 显示帮助信息
-v 显示版本信息
#创建多个物理卷:
[root@linuxcool ~]# pvcreate /dev/sdc{1,2,3,4}
-s 以短格式输出
#将源物理卷/dev/sda5上的物理盘区移动到物理卷/dev/sda6上:
[root@linuxcool ~]# pvmove /dev/sda5 /dev/sda6
-d 调试模式
-f 强制删除
-y 对提问回答yes
-d 设置一个字符串,用于分隔输出的每个进程ID
-f 模式参数仅用于匹配进程名
-I 列出进程名及进程ID
-P 仅选择匹配指定父进程ID的进程
-u 选择仅匹配指定有效用户ID进程
-U 选择仅匹配指定真实用户ID的进程
#查询用户root启动的bash进程的PID:
[root@localhost aa]#pgrep -u root bash
2186
2472
3887
-o 仅向找到的最小(起始)进程号发送信号
-n 仅向找到的最大(结束)进程号发送信号
-P 指定父进程号发送信号
-g 指定进程组
-t 指定开启进程的终端
#杀死Apache进程:
[root@linuxcool ~]# pkill httpd
格式:pmap [参数] [进程ID ]
格式:pssh [参数] [文件]
-h 执行命令的远程主机列表文件
-l 远程机器的用户名
-p 一次最大允许多少连接
-A 提示输入密码并且把密码传递给ssh(注意这个参数添加后只是提示作用,随便输入或者不输入直接回车都可以)
-O 设置ssh参数的具体配置,参照ssh_config配置文件
-x 传递多个SSH 命令,多个命令用空格分开,用引号括起来
-X 同-x 但是一次只能传递一个命令
-f 忽略不存在的文件,不会出现警告信息
-i 删除前会询问用户是否操作
-r 递归删除
#删除文件
[root@localhost aa]#ls
1.txt 2.txt 3.txt 4.txt 5.txt bb
[root@localhost aa]#rm -rf *.txt
[root@localhost aa]#ls
bb
-w 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
-d 不把记录写到 /var/log/wtmp 档案里
-i 在重开机之前先把所有网络相关的装置先停止
将 Windows 上的文件上传到linux
-p 用递归的方式删除指定的目录路径中的所有父级目录,非空则报错
? 可替代单个字符
可替代多个字符
#改文件名字,修改前的名字,要修改的名字,要改的文件
[root@swl sh]#rename aa.txt b.txt aa.txt
[root@swl sh]#ls
b.txt
rpm命令包含了五种基本功能:安装、卸载、升级、查询和验证。
-a 查询所有的软件包
-e 卸载软件包
-f 查询文件或命令属于哪个软件包
-h 安装软件包时列出标记
-i 显示软件包的相关信息
–install 安装软件包
-l 显示软件包的文件列表
-p 查询指定的rpm软件包
-q 查询软件包
-R 显示软件包的依赖关系
-U 升级软件包
-v 显示命令执行过程
#显示全部只读变量:
[root@linuxcool ~]# readonly
[root@localhost aa]#cat hh.txt
hello world.
hao are you.
#颠倒过来显示文本内容
[root@localhost aa]#rev hh.txt
.dlrow olleh
.uoy era oah
read 内部命令被用来从标准输入读取单行数据。
-a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符
-t 后面跟秒数,定义输入字符的等待时间
-n 后跟一个数字,定义输入文本的长度
-p 后面跟提示信息,即在输入前打印提示信息
-s 安静模式,在输入字符时不再屏幕上显示
#允许在 read 命令行中直接指定一个提示:
#!/bin/bash
read -p "输入网站名:" file
echo "你输入的网站名是 $file"
exit 0
#指定 read 命令等待输入的秒数,当计时满时,read命令返回一个非零退出状态:
#!/bin/bash
if read -t 5 -p "输入网站名:" file
then
echo "你输入的网站名是 $file"
else
echo "\n抱歉,你输入超时了。"
fi
exit 0
#使 read 命令中输入的数据不显示在命令终端上:
#!/bin/bash
read -s -p "请输入您的密码:" pass
echo "\n您输入的密码是 $pass"
exit 0
-net 到一个网络的路由表
-host 到一个主机的路由表
Add 增加指定的路由记录
Del 删除指定的路由记录
gw 设置默认网关
dev 路由记录所表示的网络接口
#添加一条路由记录:
[root@linuxcool ~]# route add -net 192.168.60.11 netmask 192.168.60.1 dev ens192
#删除路由记录:
[root@linuxcool ~]# route del -net 192.168.60.11 netmask 192.168.60.1 dev ens192
#添加和删除默认网关:
[root@linuxcool ~]# route add default gw 192.168.60.1
[root@linuxcool ~]# route del default gw 192.168.60.1
-a 删除所有目前不需要的模块
-v 显示指令执行的详细信息
-f 强制移除模块,使用此选项比较危险
-n 不解析服务名称,已数字方式显示
-a 显示所有套接字
-l 显示处于监听状态的套接字
-o 显示计时器信息
-e 显示详细的套接字信息
-m 显示套接字的内存使用情况
-p 显示使用套接字的进程
-i 显示内部的TCP信息
-s 显示套接字使用概况
-4 仅显示ipv4的套接字
-6 仅显示ipv6的套接字
-0 显示PACKET套接字
-t 只显示TCP套接字
-u 只显示UDP套接字
-d 只显示DCCP套接字
-w 只显示RAW套接字
-x 只显示 Unix套接字
-D 将原始TCP套接字信息转储到文件
#显示TCP套接字:
[root@linuxcool ~]# ss -t -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:*
ESTAB 0 52 192.168.60.19:ssh 192.168.30.21:59321
LISTEN 0 128 *:websm *:*
LISTEN 0 128 [::]:ssh [::]:*
#显示UDP套接字:
[root@linuxcool ~]# ss -u -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 0.0.0.0:bootpc 0.0.0.0:*
UNCONN 0 0 127.0.0.1:323 0.0.0.0:*
UNCONN 0 0 [::1]:323 [::]:*
-c 当执行“shutdown -h 11:50”指令时,只要按+键就可以中断关机的指令
-f 重新启动时不执行fsck
-F 重新启动时执行fsck
-h 将系统关机
-k 只是送出信息给所有用户,但不会实际关机
-n 不调用init程序进行关机,而由shutdown自己进行
-r shutdown之后重新启动
-t 送出警告信息和删除信息之间要延迟多少秒
#指定现在立即关机:
[root@linuxcool ~]# shutdown -h now
#指定5分钟后关机,同时送出警告信息给登入用户:
[root@linuxcool ~]# shutdown +5 "System will shutdown after 5 minutes"
-v 因为 sudo 在第一次执行时或是在 N分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过N分钟,也会问密码
-k 强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
-b 将要执行的指令放在背景执行
-p prompt 可以更改问密码的提示语,其中 %u 会代换为使用者的帐号名称,%h 会显示主机名称
-s 执行环境变数中的SHELL 所指定的shell ,或是 /etc/passwd 里所指定的 shell
#切换到root用户:
[root@linuxcool ~]# sudo su
#指定用户执行命令:
[root@linuxcool ~]# sudo -u userb ls -l
#以root权限执行上一条命令:
[root@linuxcool ~]# sudo !!
-A 开启认证代理连接转发功能
-a 关闭认证代理连接转发功能
-b
-C 请求压缩所有数据
-F<配置文件> 指定ssh指令的配置文件,默认的配置文件为“/etc/ssh/ssh_config”
-f 后台执行ssh指令
-g 允许远程主机连接本机的转发端口
-i<身份文件> 指定身份文件(即私钥文件)
-l<登录名> 指定连接远程服务器的登录用户名
-N 不执行远程指令
-o<选项> 指定配置选项
-p<端口> 指定远程服务器上的端口
-q 静默模式,所有的警告和诊断信息被禁止输出
-X 开启X11转发功能
-x 关闭X11转发功能
-y 开启信任X11转发功能
#登录远程服务器:
[root@linuxcool ~]# ssh 202.102.240.88
#用test用户连接远程服务器:
[root@linuxcool ~]# ssh -l test 202.102.220.88
#查看分区列表:
[root@linuxcool ~]# ssh 202.102.220.88 /sbin/fdisk -l
-B 指定传输文件时缓冲区的大小
-l 使用ssh协议版本1
-b 指定批处理文件
-C 使用压缩
-o 指定ssh选项
-F 指定ssh配置文件
-R 指定一次可以容忍多少请求数
-v 升高日志等级
#使用sftp命令链接到服务器:
[root@linuxcool ~]# sftp 192.168.20.29
#指定传输文件是缓冲区大小:
[root@linuxcool ~]# sftp -B 512 192.168.20.29
#在传输过程中使用压缩:
[root@linuxcool ~]# sftp -C 192.168.20.29
-c 命令从-c后的字符串读取
-i 实现脚本交互
-n 进行shell脚本的语法检查
-x 实现shell脚本逐条语句的跟踪
#跟踪脚本调试shell脚本,能打印出所执行的每一行命令以及当前状态:
[root@linuxcool ~]# sh -x test.sh
-A 将所有的视窗都调整为目前终端机的大小
-d<作业名称> 将指定的screen作业离线
-m 即使目前已在作业中的screen作业,仍强制建立新的screeN作业
-r<作业名称>
恢复离线的screen作业
-R 先试图恢复离线的作业,若找不到离线的作业,即建立新的screen作业
-s 指定建立新视窗时,所要执行的shell
-S 指定screen作业的名称
-v 显示版本信息
-x 恢复之前离线的screen作业
-ls 显示目前所有的screen作业
-list 显示目前所有的screen作业
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业
#创建screen终端:
[root@linuxcool ~]# screen
#创建screen终端并执行任务:
[root@linuxcool ~]# screen vi ~/main.c
-f 格式
-s 字符串
-w 在列前添加0 使得宽度相同
#产生5以内的整数:
[root@linuxcool ~]# seq 5
#产生98~101之间的整数,并且要求数字之间的分隔符为”:::”:
[root@linuxcool ~]# seq -s ":::" -f "%03g" 98 101
-L 支持符号链接
-f 显示文件系统的信息
-t 以简洁的方式输出
#查看文件 anaconda-ks.cfg 的三种时间状态:Access,Modify,Change:
[root@linuxcool ~]# stat anaconda-ks.cfg
#查看文件系统信息:
[root@linuxcool ~]# stat -f anaconda-ks.cfg
-m --modify-acl 更改文件的访问控制列表
-M --modify-file=file 从文件读取访问控制列表条目更改
-x --remove=acl 根据文件中访问控制列表移除条目
-X --remove-file=file 从文件读取访问控制列表条目并删除
-b --remove-all 删除所有扩展访问控制列表条目
-k --remove-default 移除默认访问控制列表
-d --default 应用到默认访问控制列表的操作
-P --physical 依照自然逻辑,不跟随符号链接
-R --recursive 递归操作子目录
#修改一个文件的acl权限,添加一个用户权限:
[root@linuxcool ~]# getfacl test
file: test
owner: root
group: root
user::rwx
user:zwx:rw-
group::r-x
mask::rwx
other::r-x
[root@linuxcool ~]# setfacl -Rm u:zwx:rw- test
[root@linuxcool ~]# getfacl test
file: test
owner: root
group: root
user::rwx
user:zwx:rw-
group::r-x
mask::rwx
other::r-x
#清除一个目录的ACL权限:
[root@linuxcool ~]# setfacl -x u:zwx test
[root@linuxcool ~]# getfacl test
file: test
owner: root
group: root
user::rwx
group::r-x
other::r-x
-b 忽略每行前面开始出的空格字符
-c 检查文件是否已经按照顺序排序
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符
-f 排序时,将小写字母视为大写字母
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符
-m 将几个排序号的文件进行合并
-M 将前面3个字母依照月份的缩写进行排序
-n 依照数值的大小排序
-o <输出文件> 将排序后的结果存入制定的文件
-r 以相反的顺序来排序
-t <分隔字符> 指定排序时所用的栏位分隔字符
-k 指定需要排序的栏位
#sort将文件/文本的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出:
[root@linuxcool ~]# cat sort.txt
AA:10:1.1
CC:30:3.3
DD:40:4.4
BB:20:2.2
[root@linuxcool ~]# sort sort.txt
AA:10:1.1
BB:20:2.2
CC:30:3.3
DD:40:4.4
-a 标示已修改的变量,以供输出至环境变量
-b 使被中止的后台程序立刻回报执行状态
-C 转向所产生的文件无法覆盖已存在的文件
-d Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消
-e 若指令传回值不等于0,则立即退出shell
-f 取消使用通配符
-h 自动记录函数的所在位置
-k 指令所给的参数都会被视为此指令的环境变量
-l 记录for循环的变量名称
-m 使用监视模式
#使用declare命令定义一个新的环境变量”mylove”,并且将其值设置为”Visual C++”,输入如下命令:
[root@linuxcool ~]# declare mylove='Visual C++'
#再使用set命令将新定义的变量输出为环境变量,输入如下命令:
[root@linuxcool ~]# set -a mylove
#执行该命令后,将会新添加对应的环境变量。用户可以使用env命令和grep命令分别显示和搜索环境变量”mylove”,输入命令如下:
[root@linuxcool ~]# env | grep mylove '
-e 以选项中指定的script来处理输入的文本文件
-f