linux命令就应该这样记(带索引超详细)

Linux命令大全

1、帮助命令:

help命令只能显示shell内部命令的帮助信息,而linux系统中绝大多数命令是外部命令,所以help命令的作用非常有限。

而对于外部命令的帮助信息可以使man命令或者info命令查看。

(1) help:显示shell内部命令的帮助信息

格式:help [参数] [内部命令]

-d 输出每个命令的简短模式

-s 输出短格式的帮助信息

-m 以伪man手册的格式显示帮助信息

[root@localhost ~]# help -s  cd
cd: cd [-L|[-P [-e]]] [dir]
(2) man命令:查看命令帮助信息

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

2、基础命令

A系:

awk:文本和数据进行处理的编程语言

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:设置命令别名

使用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

B系:

bc:浮点运算

支持任意精度的交互执行的计算器语言。

[root@linuxcool ~]# echo "1.212*3" | bc 
 3.636
[root@localhost ~]#echo "scale=2;3/8" | bc
.37
bash:shell脚本解释器

-n 检测脚本是否正确,并不执行脚本
-x 执行脚本,输出执行过程
-c bash从字符串中读入命令,如果字符串后还有变量就被设定为从$0开始的位置参数

[root@localhost sh]#bash -n ping.sh 
[root@localhost sh]#bash -x ping.sh 
basename :显示文件路径的基本文件名
显示文件路径名/usr/bin/sort的基本文件名sort:
[root@linuxcool ~]# basename /usr/bin/sort
sort
bzip2 :bz2文件的压缩程序
-c	将压缩与解压缩的结果送到标准输出
-d	执行解压缩
-f	bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数
-k	bzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数
-s	降低程序执行时内存的使用量
-t	测试.bz2压缩文件的完整性
-v	压缩或解压缩文件时,显示详细的信息
-z	强制执行压缩

压缩文件:
[root@linuxcool ~]# bzip2 a.txt
检查文件完整性:
[root@linuxcool ~]# bzip2 -t a.txt.bz2
bunzip2:bz2文件的解压缩程序

参数跟bzip2的参数一致;

解压.bz2文件:
[root@linuxcool ~]# bunzip2 -v temp.bz2  
bzcat :读取bzip2压缩文件的内容
显示test.txt.bz2解压缩之后的文件内容:
[root@linuxcool ~]# bzcat test.txt.bz2 
 a b c d
 e f g h
 i j k l
blkid:显示关于可用块设备的信息

-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"
break:结束循环语句

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   

C 系:

cd :切换目录
[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
cat :显示文件内容

用于查看内容较少的纯文本文件的。当文件内容较大时,用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:显示日历

**格式:**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
clock:调整RTC时间
[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   //同步时间

clear :清除屏幕

作用类似于 Ctrl+L,清屏的作用

cp:复制文件或目录

**格式:**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:文本传输工具

**格式:**curl [参数] [网址]

-O 把输出写到该文件中,保留远程文件的文件名
-u 通过服务端配置的用户名和密码授权访问

[root@localhost opt]#curl www.baidu.com
chmod:改变文件或目录权限

-c 若该文件权限确实已经更改,才显示其更改动作
-f 若该文件权限无法被更改也不显示错误讯息
-v 显示权限变更的详细资料
-R 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

#文件权限,-r:可读(4),-w:可写(2),-x:可执行(1)
#改变文件权限,使其可读可写可执行
[root@localhost tp]#ll
总用量 4
-rw-r--r-- 1 root root 30 1031 16:54 a.txt  //这里是文件的属主可读可写,所属组可读,其他人可读
[root@localhost tp]#chmod 777 a.txt 
[root@localhost tp]#ll
总用量 4
-rwxrwxrwx 1 root root 30 1031 16:54 a.txt
#chmod [u,g,o,a]  [+,-]  [rwx]  文件或目录
u,g,o,a分别表示:属主,属组,其他用户,所有用户
+,-分别表示:增加,去除权限
chown:改变文件的用户或用户组

将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID,组可以是组名或者组ID,文件是以空格分开的要改变权限的文件列表,支持通配符。

-R 对目前目录下的所有文件与子目录进行相同的拥有者变更
-c 若该文件拥有者确实已经更改,才显示其更改动作
-f 若该文件拥有者无法被更改也不要显示错误讯息
-h 只对于连结(link)进行变更,而非该 link 真正指向的文件
-v 显示拥有者变更的详细资料

[root@localhost tp]#ll
总用量 8
-rw-r--r-- 1 root root 30 1031 16:54 a.txt
-rw-r--r-- 1 root root 23 1031 17:41 b.txt
drwxr-xr-x 2 root root  6 1031 17:41 swl
[root@localhost tp]#chown bin a.txt   //改变文件的属主
[root@localhost tp]#ll
总用量 8
-rw-r--r-- 1 bin  root 30 1031 16:54 a.txt
-rw-r--r-- 1 root root 23 1031 17:41 b.txt
drwxr-xr-x 2 root root  6 1031 17:41 swl
[root@localhost tp]#chown bin:bin b.txt   //改变文件的属主和所属组
[root@localhost tp]#ll
总用量 8
-rw-r--r-- 1 bin  root 30 1031 16:54 a.txt
-rw-r--r-- 1 bin  bin  23 1031 17:41 b.txt
drwxr-xr-x 2 root root  6 1031 17:41 swl
chgrp:更改文件用户组

-f 不显示错误信息
-R 递归处理,将指定目录下的所有文件及子目录一并处理
-v 显示指令执行过程

[root@localhost tp]#ll b.txt 
-rw-r--r-- 1 bin bin 23 1031 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 1031 17:41 b.txt
#--reference	把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同
[root@localhost tp]#ll
总用量 8
-rw-r--r-- 1 root bin  30 1031 16:54 a.txt
-rw-r--r-- 1 bin  root 23 1031 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 1031 16:54 a.txt
-rw-r--r-- 1 bin  root 23 1031 17:41 b.txt
chage:修改帐号和密码的有效期限

-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
chpasswd:批量更新密码

把一个文件内容重新定向添加到/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
chsh:更改使用者shell设定

-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
chfn:系统管理

-f 设置真实姓名
-h 设置家中的电话号码
-u 在线帮助

chattr:更改文件属性

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
cut :连接文件并打印到标准输出设备上

-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
cmp:比较两个文件是否有差异

比较两个任意类型的文件,若两个文件相同则默认不输出任何信息,若两个文件不同,则会输出第一个不同之处的字符和列数编号,结果输出到标准输出。

-s 不显示错误信息
-l 标示出所有不一样的地方
-i 指定一个数目
-c 除了标明差异处的十进制字码之外,一并显示该字符所对应字符

createrepo:创建yum源生成元数据

用以创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据。

continue:结束本次循环

结束当次循环,继续执行下一次循环。

crontab:定时执行任务

系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。/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 
# * * * * * 命令或脚本 (注意:这里命令和脚本要绝对路径)
五个星号分别代表:分,时,日,月,周
chroot:改变根目录

–help 在线帮助

chkconfig:检查与设置系统的各种服务
#开启和关闭服务
[root@linuxcool ~]# chkconfig telnet on
[root@linuxcool ~]# chkconfig telnet off
#增加httpd服务,删除httpd服务
[root@linuxcool ~]# chkconfig –-add httpd
[root@linuxcool ~]# chkconfig –-del httpd
chronyc:设置时间与时钟服务器同步

sources 时间同步源
sourcestats 时间同步源状态

#开启chrony服务
[root@localhost sh]#systemctl enable chronyd
#查看时间同步源
[root@localhost sh]#chronyc sources -v

D系:

date:显示日期与时间

**格式:**date [选项] [+输出形式]

-d datestr 显示 datestr 中所设定的时间 (非系统时间)
-s datestr 将系统时间设为 datestr 中所设定的时间
-u 显示目前的格林威治时间

[root@localhost ~]#date   #显示当前时间
202111月 01日 星期一 16:55:32 CST
[root@localhost ~]#date "+%c"
2021年11月01日 星期一 16时55分47秒
[root@localhost ~]#date '+%B %d'    #显示月份与日数
十一月 01
dirname:去除文件名中的非目录部分

仅显示与目录有关的内容。

–help 显示帮助

df:显示磁盘空间使用情况

-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的磁盘使用情况
dos2unix:将DOS格式的文本文件转换成UNIX格式
dd:拷贝文件及转换
#将本地的/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:比较文件差异

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变量

declare定义的变量仅能在当前shell环境中起作用,切换shell环境后将无效。

dpkg:管理deb包

-i 安装软件包
-r 删除软件包
-l 显示已安装软件包列表
-L 显示于软件包关联的文件
-c 显示软件包内文件列表

#列出当前已安装的包
[root@linuxcool ~]# dpkg -l 
dumpe2fs:打印快组信息

-b 打印文件系统中预留的块信息

-h 仅显示超级块信息
-i 从指定的文件系统映像文件中读取文件系统信息

[root@linuxcool ~]# dumpe2fs /dev/hda1   #打印/dev/hda1文件系统的超级块和快组信息
[root@linuxcool ~]# dumpe2fs -h /dev/hda1   #打印/dev/hda1文件系统的超级块信息
du:查看空间

-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不能同时使用

E系:

echo:输出字符串或提取Shell变量的值

-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`   #使用反引号符执行命令,并输出其结果到终端
202111月 01日 星期一 17:35:18 CST

enable:启动或关闭 shell 内建指令

-all   显示shell所有关闭与启动的指令

exit:退出shell

exit命令用来退出当前的shell或退出终端 ,并返回给定值。

状态值0代表执行成功,其他值代表执行失败。

**格式:**exit [状态值]

0 执行成功
1 执行失败
$? 参照上一个状态值

export:系统设置

export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。

#列出当前所有的环境变量
[root@linuxcool ~]# export -p
#命令同env
env:显示和定义环境变量
e2label:设置文件系统的卷标
expr:命令行计数器

空格 隔开每个项
\(反斜杠) 放在 shell 特定的字符前面
“”(引号) 对包含空格和其他特殊字符的字符串要用引号括起来

#计算字符串长度
[root@localhost aa]#expr length "hello world"
11
[root@localhost aa]#expr index "hello world" o    #抓取第一个字符出现的位置
5

e2fsck:检查使用 Linux ext2档案系统的partition是否正常工作

e2fsck命令可以检查ext2、ext3、ext4文件系统,如果系统已经挂载了,那么不建议去检查,因为这样是不安全的。

ethtool:查询与设置网卡参数
-i 显示网卡驱动的信息
-E 修改网卡只读存储器字节
-K 修改网卡 Offload 的状态
ethx 查询ethx网口基本设置,其中 x 是对应网卡的编号,如eth0、eth1等
-s 修改网卡的部分配置
-t 让网卡执行自我检测
eval:重新运算求出参数

eval命令用于重新运算求出参数的内容。eval可读取一连串的参数,然后再依参数本身的特性来执行。

F系:

free:显示系统内存情况

显示系统中物理上的空闲和已用内存,还有交换内存,同时,也能显示被内核使用的缓冲和缓存。这些信息是通过解析文件 /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

file:识别文件类型

-b:不显示文件名称

-L 直接显示符号连接所指向的文件类别

[root@localhost ~]#file aa
aa: directory
[root@localhost ~]#file -b aa
directory

finger:查询其他使用者的资料
-l 列出该用户的账号名称、真实姓名、用户根目录、登录所用的 shell、登录时间、邮件地址、电子邮件状态等
-m 排除查找用户的真实姓名
-s 列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话
-p 列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容
[root@localhost ~]#finger -l
Login: root           			Name: root
Directory: /root                    	Shell: /bin/bash
On since 日 117 08:33 (CST) on pts/0 from 192.168.111.1
   5 seconds idle
No mail.
No Plan.

find:查找和搜索文件

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
fsck:检查并修复Linux文件系统

-a 自动修复文件系统,不询问任何问题

-r 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式

-t 指定要检查的文件系统类型

[root@linuxcool ~]# fsck -t ext3 -r /usr/local
findfs:依据卷标(Label)和UUID查找文件系统所对应的设备文件
[root@linuxcool ~]# findfs UUID="1271a9f5-3c66-43c5-a3ff-c79750db70c2"
fdisk:磁盘分区

-b 指定每个分区的大小
-l 列出指定的外围设备的分区表状况
-s 将指定的分区大小输出到标准输出上,单位为区块

#查看所有磁盘分区
[root@localhost ~]#fdisk -l
#选择磁盘分区
[root@linuxcool ~]# fdisk /dev/sdb
fuser: 使用文件或文件结构识别进程

-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:检测主机是否存在

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系:

groupadd:新建工作组

g 指定新建工作组的id
-r 创建系统工作组,系统工作组的组ID小于500

#查看所有组
cat /etc/group
#查看用户组信息
id 用户
#新建组并指定PID
[root@localhost ~]#groupadd -g 1005 swl
swl:x:1005:
groupmod:更改群组识别码或名称

-g 设置欲使用的群组识别码
-o 重复使用群组识别码
-n 设置欲使用的群组名称

#更改swl组名为zwww
[root@localhost ~]#groupmod -n zwww swl
zwww:x:1005:
groupdel:删除用户组
[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:

groupmems:管理用户主要组群的成员

-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 
gpasswd:设置管理用户组

-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”组中

grpck:验证文件的完整性

-r 只读模式
-s 排序组id

#对组账号文件进行验证:
[root@linuxcool ~]# grpck /etc/group 
getent:查看记录

-s 要使用的服务配置
-help 给出该系统求助列表
-usage 给出简要的用法信息
-V 打印程序版本号

#从passwd库中得到账号tp信息:
[root@localhost ~]#getent passwd tp
tp:x:1000:1000:tp:/home/tp:/bin/bash
gzip:压缩和解压缩文件

-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
gunzip:解压缩文件

用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为”.gz”。事实上gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip命令单独完成。

-h 在线帮助。

-S<压缩字尾字符串> 更改压缩字尾字符串

-v 显示指令执行过程
-V 显示版本信息

#解压,显示详细执行过程:
[root@linuxcool ~]# gunzip -v 1.gz
#指定后缀名解压:
[root@linuxcool ~]# gunzip -v -S "mygz" 1.mygz
gdisk:交互式GPT操纵器

-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的命令行shell工具

grub是一个引导程序或者是一个系统引导工具,通过grub命令可以引导种类丰富的系统,如linux、freebsd、windows等。

grub-install:在设备上安装GRUB

gpg :加密工具

-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
getenforce:显示SELinux的状态

显示当前SELinux的应用模式,是强制、执行还是停用。

#显示SElinux的状态
[root@localhost aa]#getenforce
Disabled
#临时关闭SELinux
[root@localhost aa]#getenforce 0

H系:

head:显示文件开头内容

-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
hostname:显示和设置系统的主机名

-a 显示主机别名
-d 显示DNS域名
-f 显示FQDN名称
-i 显示主机的ip地址
-s 显示短主机名称,在第一个点处截断
-y 显示NIS域名

#显示主机名
[root@localhost aa]#hostname -a
localhost.localdomain
#显示主机别名
[root@localhost aa]#hostname -a
history:显示与操纵历史命令

-a 将当前shell会话的历史命令追加到命令历史文件中,命令历史文件是保存历史命令的配置文件
-c 清空当前历史命令列表
-d 删除历史命令列表中指定序号的命令

-w 把当前的shell历史命令内存缓冲区的内容写入命令历史文件

#显示最近的10条命令:
[root@localhost aa]#history 10
#将当前Shell会话的历史命令追加到命令历史文件中:
[root@localhost aa]#history -a
hash:显示与清除命令运行时查询的哈希表

-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:关机

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.
hexdump:显示文件十六进制格式

I 系:

init:切换系统运行级别

0 关机
1 单用户
2 多用户
3 完全多用户模式
5 图形界面
6 重启

#切换成最小化安装模式
[root@localhost ~]#init 3
#切换成图形界面
[root@localhost ~]#init 5
#重启
[root@localhost ~]#init 6
info:阅读info格式的文件

-w 显示info文档的物理位置
-f 指定要访问的info文件
-n 在首个浏览过info文件中指定节点

#查看ls命令的info文档:
[root@linuxcool ~]# info ls
#显示ls命令info文档的物理位置:
[root@linuxcool ~]# info -w ls
id:显示用户ID和组ID

-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)
iconv:转换文件编码

-f 输入编码
-t 输出编码
-c 忽略不可转换的字符
-s 不显示有关转换出错的信息
-l 列出支持的编码

#查看支持的编码列表:
[root@linuxcool ~]# iconv -l
if else fi:shell函数中的选择结构
ifconfig:显示或设置网络设备

用于配置和显示Linux内核中网络接口的网络参数。

down 关闭指定的网络设备
up 启动指定的网络设备
IP地址 指定网络设备的IP地址

#启动关闭指定网卡:
[root@linuxcool ~]# ifconfig eth0 down
[root@linuxcool ~]# ifconfig eth0 up 
ip:显示与操作路由

-s 输出更详细的信息
-4 指定使用的网络层协议是IPv4协议
-6 指定使用的网络层协议是IPv6协议

#显示IP信息
[root@localhost ~]#ip a
iptables:内核包过滤与NAT管理工具

iptables命令是linux系统中在用户空间中运行的运来配置内核防火墙的工具。它可以设置,维护和检查linux内核中的ipv4包过滤规则和管理网络地址转换(NAT)。

install:复制文件和设置属性

格式: install [参数] [源文件] [目标文件]

-c 比较每组文件和目标文件,在一些情况下不修改目标文件
-d 将所有的参数视为目标名称,为指定的目录创建所有组件
-g 自行设置所属组,而不是进程目前所属组

#创建/root/www文件夹:
[root@linuxcool ~]# install -d /root/www
iotop:监视磁盘I/O状态

-o 只显示有io操作的进程
-b 批量显示,无交互,主要用作记录到文件
-n NUM 显示NUM次,主要用于非交互式模式
-d SEC 间隔SEC秒显示一次
-p PID 监控的进程pid
-u USER 监控的进程用户

#使用-o参数只显示IO操作进程:
[root@linuxcool ~]# iotop -o
iostat:监视系统输入输出设备和CPU的使用情况

-c 仅显示CPU使用情况
-d 仅显示设备利用率

#每隔两秒报告一次:
[root@linuxcool ~]# iostat -d 2
#每2秒报告一次,持续6次:
[root@linuxcool ~]# iostat -d 2 6
iftop:套接字及进程的网络利用率

-i 指定要监控的网卡
-n 直接显示IP, 不进行DNS反解析

#默认监控第一块网卡的流量:
[root@linuxcool ~]# iftop 
iptraf:实时监视网卡流量

-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 
insmod:载入模块

J系:

jobs:显示shell的作业信息

-l 显示作业列表时包括进程号
-n 显示上次使用jobs后状态发生变化的作业
-p 显示作业列表时仅显示其对应的进程号
-r 仅显示运行的作业
-s 仅显示暂停的作业

#显示当前的作业列表:
[root@linuxcool ~]# jobs 
#显示当前的作业号以及对应的进程号:
[root@linuxcool ~]# jobs -l

K系:

kill:杀死进程

-l 列出系统支持的信号
-s 指定向进程发送的信号
-a 处理当前进程时不限制命令名和进程号的对应关系
-p 指定kill命令只打印相关进程的进程号,而不发送任何信号

#列出系统支持的信号列表
[root@swl ~]#kill -l
#杀死进程
[root@linuxcool ~]# kill -9 1951
killall:使用进程名称来杀死一组进程

-r 使用正规表达式匹配要杀死的进程名称
-u 杀死指定用户的进程

#杀死httpd所有进程
[root@linuxcool ~]# killall -9 httpd

L 系:

lsblk:查看系统豆的磁盘

-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  

ls:显示指定工作目录下的内容及属性信息

-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 118 15:19 aa
-rw-------. 1 root root 1757 924 21:58 anaconda-ks.cfg
-rw-r--r--. 1 root root 1785 924 13:59 initial-setup-ks.cfg
drwxr-xr-x  2 root root    6 119 11:29 www

lscpu:显示CPU有关信息
#显示有关CPU的相关信息
[root@localhost ~]#lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian

logout:退出系统

–help 在线帮助

ln:为文件创建连接

-b 为每个已存在的目标文件创建备份文件
-d 此选项允许“root”用户建立目录的硬链接
-f 强制创建链接,即使目标文件已经存在
-n 把指向目录的符号链接视为一个普通文件
-i 交互模式,若目标文件已经存在,则提示用户确认进行覆盖
-s 对源文件建立符号链接,而非硬链接
-v 详细信息模式,输出指令的详细执行过程

#为文件创建软连接
[root@localhost ~]#ln -s aa /opt
[root@localhost ~]#ll /opt
总用量 0
lrwxrwxrwx  1 root root 2 119 21:26 aa -> aa
drwxr-xr-x. 2 root root 6 326 2015 rh

lsattr:显示文件隐藏属性

-a 列出目录中的所有文件,包括隐藏文件
-d 只显示目录名称
-R 递归地处理指定目录下的所有文件及子目录

#使用 lsattr 命令来显示文件属性:
[root@localhost ~]#lsattr /etc/resolv.conf 
---------------- /etc/resolv.conf

lsof:查看文件的进程信息

用于查看进程开打的文件,打开文件的进程,进程打开的端口(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
less:分页显示工具

ctrl+F:下一页;ctrl+B:上一页

[root@linuxcool ~]# history | less 
let:执行一个或多个表达式
#自加操作:
[root@linux ~]# let no++ 
#自减操作:
[root@linux ~]# let no--
locate:快速查找文件或目录

-d<目录> 指定数据库所在的目录
–help 显示帮助

#搜索/etc目录下所有以sh开头的文件:
[root@localhost ~]#locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells

lvcreate:创建逻辑卷

pvcreate:创建物理卷;vgcreate:创建卷组

-L 指定逻辑卷的大小
-n 指定逻辑卷名字

[root@linux ~]# lvcreate -L 25G -n swl linux
#指定大小为25G,名称为swl,卷组名为linux
lvs:报告有关逻辑卷的信息
[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      
lvdisplay:显示LVM逻辑卷的属性
[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
. . . . . .
lvremove:删除指定LVM逻辑卷

-f 强制删除

lvreduce:减少LVM逻辑卷所占空间大小

-L 指定逻辑卷的大小
-f 在不提示的情况下减小空间

#将逻辑卷的空间大小减少50M:
[root@linux ~]# lvreduce -L -50M /dev/vg10/lv01
lvextend:扩展逻辑卷空间

-L 指定逻辑卷的大小

#为逻辑卷增加100M空间:
[root@linux ~]# lvextend -L +100M /dev/vg10/lv01
lsmod:显示已加载模块状态
#显示模块信息:
[root@linuxcool ~]# lsmod

M系:

mandb:创建或更新手册页索引缓存

-d 打印调试信息
-q 不发出警告
-s 不花时间查找或向数据库添加有关stray cats的信息
-p 不花时间检查删除的手册页并从数据库中清理它们

#更新top命令手册页索引缓存:
[root@linuxcool ~]# mandb top
#使用-d参数,打印调试信息:
[root@linuxcool ~]# mandb -d unzip
mv:移动或改名文件

-i 若存在同名文件,则向用户询问是否覆盖
-f 覆盖已有文件时,不进行任何提示
-b 当文件存在时,覆盖前为其创建一个备份
-u 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作

#将文件file_1重命名为file_2:
[root@linuxcool ~]# mv file_1 file_2
#将文件file移动到目录opt中 :
[root@linuxcool ~]# mv file /opt
mail:发送和接收邮件

-s 给邮件追加主题
-a 发送邮件附件,多个附件使用多次-a选项即可
-b 指定密件抄送的收信人地址
-c 指定抄送的收信人地址

#发一封标题为test的空信给后面的邮箱:
[root@linuxcool ~]# mail -s test [email protected]
mkdir:创建目录

-p 递归创建多级目录
-m 建立目录的同时设置目录的权限

#递归创建目录:
[root@linuxcool ~]# mkdir -p swl/aa/bb
more:显示文件文本内容

-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:在特定分区上建立文件系统
#格式化分区
mkfs.xfs /dev/sdb1
make:编辑内核或模块
#读取指定文件作为makefile文件:
[root@linux ~]# make -f my_linux
mii-tool:网络设备协商工具

-v 显示网络接口的信息
-R 重设MII到开启状态
-r 重启自动协商模式
-w 查看网络接口连接的状态变化
-l 写入事件到系统日志
-A 指令特定的网络接口
-F 更改网络接口协商方式

#查看网络接口的协商状态:
[root@linuxcool ~]# mii-tool -v eth0
#使用 -r 重启自动协商模式:
[root@linuxcool ~]# mii-tool -r eth0
modprobe:内核模块智能加载工具

-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
modinfo:显示kernel模块的信息

-a 显示模块开发人员
-d 显示模块的说明

#显示sg模块的信息:
[root@linuxcool ~]# modinfo sg 
#显示sg模块的开发人员信息:
[root@linuxcool ~]# modinfo -a sg
mtr:网络诊断

-r 已报告模式显示
-c 发送多少个数据包
-n 不用主机解释
-s 用来指定ping数据包的大小

#使用-c参数设置每秒发送数据包数量:
[root@linuxcool ~]# mtr -r -c 30 202.108.33.94 
mktemp:建立暂存文件
#生成临时目录:
[root@linuxcool ~]# mktemp -d
#在指定目录下生成临时文件:
[root@linuxcool ~]# mktemp -d --tmpdir=/home abc.XXX 
mkpasswd:生成用于用户的新密码

-d 定义密码的最小数目,默认值是2
-l 定义口令的长度,默认值为9
-v 导致密码设置互动可见

#生成随机密码同时制定长度为20:
[root@linuxcool ~]# mkpasswd -l 20
#生成指定数字位数的密码:
[root@linuxcool ~]# mkpasswd -d 3
mpstat:显示变化的CPU数据
#每隔1个时间单位采样5次:
[root@linuxcool ~]# mpstat 1 5
mkinitrd:建立ramdisk映像文件
md5sum:校验文件
#生成文件md5值:
[root@linuxcool ~]# md5sum file  
#文件内容校验:
[root@linuxcool ~]# md5sum -c d.md5 

N系:

nc:设置路由

-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
nano字符终端文本编辑器
#打开或新建文件:
[root@linuxcool ~]# nano test.txt
#保存所做的修改:
[root@linuxcool ~]# Ctrl+O
#要剪切一整行:
[root@linuxcool ~]# Ctrl+K
#粘贴:
[root@linuxcool ~]# Ctrl+U
newusers:更新和批量创建新用户

-c 指定加密方法,可以指定为NONE、DES、MD5、SHA256、SHA5121
-r 创建系统账户
-s 为SHA*加密算法进行四舍五入

newgrp:登入另一个群组
#将群组切换到linuxcool组 :
[root@linuxcool ~]# newgrp linuxcool
netplan:网络配置工具

info 显示当前网络计划的版本和可用功能
ip 从系统中获取IP信息

#从系统中获取IP信息:
[root@linuxcool ~]# netplan ip
#显示当前网络计划的版本和可用功能:
[root@linuxcool ~]# netplan info
nmcli:网络管理命令行工具

nmcli命令是可以完成网卡上的所有配置,并可以写入配置文件中。

d 监控和管理网络设备的接口
c 监控和管理网络设备的连接

#显示所有连接的列表:
[root@linuxcool ~]# nmcli con show  
#查看接口信息:
[root@linuxcool ~]# nmcli device show
nmap:网络探测工具和安全和端口扫描器

–traceroute 扫描主机端口并跟踪路由
-p 扫描指定端口和端口范围
-sP 对目标主机进行ping扫描
-A 使用高级功能进行扫描

#扫描主机并跟踪路由:
[root@linuxcool ~]# nmap --traceroute www.linuxcool.com
#使用-p参数探测80、443端口:
[root@linuxcool ~]# nmap -p80,443 www.linuxcool.com
ntsysv:设置系统服务

-back 在互动式界面里,显示Back钮,而非Cancel钮
-level <等级代号> 在指定的执行等级中,决定要开启或关闭哪些系统服务

#编辑运行级别0,1和6:
[root@linuxcool ~]# ntsysv --levels 016  
ntpdate:设置日期和时间
#调整日期时钟:
[root@linuxcool ~]# ntpdate -b

O系:

od: 输出文件内容
openssl:加密算法

-in 输入
-out 输出

P系:

pwd:显示当前路径
#查看当前工作目录路径
[root@localhost aa]#pwd
/root/aa
poweroff:关闭操作系统并切断电源

-f 强制关闭操作系统
-i 关闭操作系统之前关闭所有的网络接口
-h 关闭操作系统之前将系统中所有的硬件设置为备用模式

ps:显示进程状态
#把所有进程显示出来
[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 
passwd:修改用户账户密码

-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 算法。)
ping:测试主机间网络连通性

-c 指定发送报文的次数
-i 指定收发信息的间隔时间
-I 使用指定的网络接口送出数据包

-s 设置数据包的大小

#设置次数为4,时间间隔为3秒:
[root@linuxcool ~]# ping -c 4 -i 3 www.baidu.com
patch:修补文件

patch命令让用户利用设置修补文件的方式,修改,更新原始文件。

paste:合并两个文件

格式: paste [参数] [文件1] [文件2]

-d 默认域的分隔符是空格或tab键,设置新的域分隔符
-s 将每个文件粘贴成一行
– 从标准输入中读取数据

[root@linuxcool ~]# paste file1 file2
 aaa     AAA
 bbb    BBB
 ccc    CCC
 ddd    DDD
 eee    EEE
pstree:以树状图显示进程
#显示当前所有进程的进程号和进程id:
[root@linuxcool ~]# pstree -p

printenv:显示指定的环境变量的值

–help 显示此帮助信息并退出

#显示所有环境变量:
[root@linuxcool ~]# printenv
#显示环境变量 LANG 的值:
[root@linuxcool ~]# printenv LANG
printf:shell输出

\a 警告字符
\n 换行
\r 回车

partprobe:重读分区表

-d 不更新内核
-s 显示摘要和分区
-h 显示帮助信息
-v 显示版本信息

pvcreate:创建逻辑卷
#创建多个物理卷:
[root@linuxcool ~]# pvcreate /dev/sdc{1,2,3,4}
pvs:格式化输出物理卷信息报表
pvdisplay:显示物理卷属性

-s 以短格式输出

pvmove:移动物理盘区
#将源物理卷/dev/sda5上的物理盘区移动到物理卷/dev/sda6上:
[root@linuxcool ~]# pvmove /dev/sda5 /dev/sda6
pvremove:删除物理卷

-d 调试模式
-f 强制删除
-y 对提问回答yes

pgrep:用于检索当前正在运行的进程

-d 设置一个字符串,用于分隔输出的每个进程ID
-f 模式参数仅用于匹配进程名
-I 列出进程名及进程ID
-P 仅选择匹配指定父进程ID的进程
-u 选择仅匹配指定有效用户ID进程
-U 选择仅匹配指定真实用户ID的进程

#查询用户root启动的bash进程的PID:
[root@localhost aa]#pgrep -u root bash
2186
2472
3887
pkill:按照进程名杀死进程

-o 仅向找到的最小(起始)进程号发送信号
-n 仅向找到的最大(结束)进程号发送信号
-P 指定父进程号发送信号
-g 指定进程组
-t 指定开启进程的终端

#杀死Apache进程:
[root@linuxcool ~]# pkill httpd
pmap:显示进程的内存映像

格式:pmap [参数] [进程ID ]

pssh:批量管理执行

格式:pssh [参数] [文件]

-h 执行命令的远程主机列表文件
-l 远程机器的用户名
-p 一次最大允许多少连接
-A 提示输入密码并且把密码传递给ssh(注意这个参数添加后只是提示作用,随便输入或者不输入直接回车都可以)
-O 设置ssh参数的具体配置,参照ssh_config配置文件
-x 传递多个SSH 命令,多个命令用空格分开,用引号括起来
-X 同-x 但是一次只能传递一个命令

Q系:

quit:退出数据库

R系:

rm:移除文件或目录

-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
reboot:重启

-w 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
-d 不把记录写到 /var/log/wtmp 档案里
-i 在重开机之前先把所有网络相关的装置先停止

rz:上传文件

将 Windows 上的文件上传到linux

rmdir:删除空目录

-p 用递归的方式删除指定的目录路径中的所有父级目录,非空则报错

rename:批量改变文件名

? 可替代单个字符

  • 可替代多个字符

    #改文件名字,修改前的名字,要修改的名字,要改的文件
    [root@swl sh]#rename aa.txt b.txt aa.txt
    [root@swl sh]#ls
    b.txt
    
rpm:RPM软件包管理器

rpm命令包含了五种基本功能:安装、卸载、升级、查询和验证。

-a 查询所有的软件包
-e 卸载软件包
-f 查询文件或命令属于哪个软件包
-h 安装软件包时列出标记
-i 显示软件包的相关信息
–install 安装软件包
-l 显示软件包的文件列表
-p 查询指定的rpm软件包
-q 查询软件包
-R 显示软件包的依赖关系
-U 升级软件包
-v 显示命令执行过程

readonly:标记shell变量或函数为只读
#显示全部只读变量:
[root@linuxcool ~]# readonly 
rev:颠倒过来显示文件内容
[root@localhost aa]#cat hh.txt 
hello world.
hao are you.
#颠倒过来显示文本内容
[root@localhost aa]#rev hh.txt 
.dlrow olleh
.uoy era oah
read:读取单行数据

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
resize2fs:调整文件系统大小
route:显示并设置路由

-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
rmmod:删除模块

-a 删除所有目前不需要的模块
-v 显示指令执行的详细信息
-f 强制移除模块,使用此选项比较危险

rsync:远程数据同步工具

S系:

ss命令 : 显示活动套接字信息

-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              [::]:*  
shutdown命令 : 关闭服务器

-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" 
sudo命令 : 以系统管理者的身份执行指令

-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 !!
ssh命令 : 安全连接客户端

-A 开启认证代理连接转发功能
-a 关闭认证代理连接转发功能
-b 使用本机指定的地址作为对位连接的源IP地址
-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
sftp命令 : 交互式的文件传输程序

-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
sh命令 – shell命令语言解释器

-c 命令从-c后的字符串读取
-i 实现脚本交互
-n 进行shell脚本的语法检查
-x 实现shell脚本逐条语句的跟踪

#跟踪脚本调试shell脚本,能打印出所执行的每一行命令以及当前状态:
[root@linuxcool ~]# sh -x test.sh 

screen命令 : 多重视窗管理程序

-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
seq命令 : 打印数字序列

-f 格式
-s 字符串
-w 在列前添加0 使得宽度相同

#产生5以内的整数:
[root@linuxcool ~]# seq 5
#产生98~101之间的整数,并且要求数字之间的分隔符为”:::”:
[root@linuxcool ~]# seq -s ":::" -f "%03g" 98 101
stat命令 : 显示文件状态信息

-L 支持符号链接
-f 显示文件系统的信息
-t 以简洁的方式输出

#查看文件 anaconda-ks.cfg 的三种时间状态:Access,Modify,Change:
[root@linuxcool ~]# stat anaconda-ks.cfg 
#查看文件系统信息:
[root@linuxcool ~]# stat -f anaconda-ks.cfg 
setfacl命令 : 设置文件ACL规则

-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
sort命令 : 排序文件并输出

-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
set命令 : 设置shell

-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 '
sed命令 : 处理编辑文本文件

-e 以选项中指定的script来处理输入的文本文件
-f 以选项中指定的script文件来处理输入的文本文件
-h 显示帮助
-n 仅显示script处理后的结果
-V 显示版本信息

#在file文件的第四行后添加一行,并将结果输出到标准输出:
[root@linuxcool ~]# sed -e 4a\newline file 
HELLO LINUX!   
Linux is a free unix-type opterating system.  
This is a linux testfile!  
Linux test  
newline 
#将 /dir 的内容列出并且列印行号,同时删除第 2~5 行:
[root@linuxcool ~]# nl /dir | sed '2,5d'
1 root:x:0:0:root:/root:/bin/bash
6 sync:x:5:0:sync:/sbin:/bin/sync
7 shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
split命令 : 文件分割

-b 指定每多少字节切成一个小文件
–help 查看帮助信息
-C 与参数”-b”相似,但是在切 割时将尽量维持每行的完整性

#将文件”README”每6行切割成一个文件:
[root@linuxcool ~]# split -6 README 
sync命令 : 刷新文件系统缓冲区

–help 显示命定详细帮助信息
–version 显示版本号

#显示帮助信息:
[root@linuxcool ~]# sync --help

swapon命令 : 激活交换空间

-a 将/etc/fstab文件中所有设置为swap的设备,启动为交换区
-h 显示帮助
-p 制定交换区的优先顺序
-s 显示交换区的使用情况

#显示交换区的版本信息:
[root@linuxcool ~]# swapon -v /dev/hdb4
#显示交换区的使用情况:
[root@linuxcool ~]# swapon -s
#设定优先权:
[root@linuxcool ~]# swapon -p 3 /dev/hdb4
swapoff:关闭系统交换区

-a 将/etc/fstab文件中所有设置为swap的设备关闭
-h 帮助信息

#关闭交换分区:
[root@linuxcool ~]# swapoff /dev/sda2
scp:远程拷贝文件

-P 指定远程主机的端口号
-q 不显示复制进度
-r 以递归方式复制

从远程复制目录到本地:
[root@linuxcool ~]# scp -r [email protected]:/opt/soft/mysql /opt/soft/
上传本地目录到远程机器指定目录:
[root@linuxcool ~]# scp -r /opt/soft/mysql [email protected]:/opt/soft/scptest
保留文件的最后修改时间,最后访问时间和权限模式:
[root@linuxcool ~]# scp -p /root/install.log [email protected]:/tmp  
sudo:以系统管理者的身份执行指令
#指定用户执行命令:
[root@linuxcool ~]# sudo -u userb ls -l 
sshpass:用于非交互的ssh 密码验证

-p 指定密码
-f 指定文件

#安装sshpass:
[root@linuxcool ~]# yum install -y epel-release
[root@linuxcool ~]# yum install -y sshpass
[root@linuxcool ~]# sshpass -V
#基本使用方法:
[root@linuxcool ~]# sshpass -p "password" ssh username@ip
#当远程主机端口不再是22默认端口时候:
[root@linuxcool ~]# sshpass -p "password" ssh -p 8443 username@ip
#直接远程连接某台主机:
[root@linuxcool ~]# sshpass -p xxx ssh [email protected]
#本地执行远程机器的命令:
[root@linuxcool ~]# sshpass -p xxx ssh [email protected] "ethtool eth0"
#远程连接指定ssh的端口:
[root@linuxcool ~]# sshpass -p 123456 ssh -p 1000 [email protected]
#从密码文件读取文件内容作为密码去远程连接主机:
[root@linuxcool ~]# sshpass -f xxx.txt ssh [email protected]
#从远程主机上拉取文件到本地:
[root@linuxcool ~]# sshpass -p '123456' scp root@host_ip:/home/test/t ./tmp/
ssh-keygen:密钥认证

-b 指定密钥长度
-e 读取openssh的私钥或者公钥文件
-f 指定用来保存密钥的文件名
-t 指定要创建的密钥类型
-C 添加注释

#创建一个默认密钥:
[root@linuxcool ~]# ssh-keygen
#使用-t参数创建一个指定密钥的类型并添加注释:
[root@linuxcool ~]# ssh-keygen -t rsa -C "[email protected]" 
#使用-e参数读取openssh的私钥或者公钥文件:
[root@linuxcool ~]# ssh-keygen -e
ssh-copy-id:复制公钥到远程主机

-i 指定公钥文件

#拷贝本机公钥到远程主机上面:
[root@linuxcool ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub [email protected]
ssh-agent:ssh密钥管理器

-d 调试模式
-k 把ssh-agent进程杀掉
-s 生成Bourne shell 风格的命令输出

ssh-add:agent的高速缓存

-D 删除ssh-agent中的所有密钥
-d 从ssh-agent中的删除密钥
-l 显示ssh-agent中的密钥
-L 显示ssh-agent中的公钥
-X 对ssh-agent进行解锁
-x 对ssh-agent进行加锁

#把专用密钥添加到 ssh-agent 的高速缓存中:
[root@linuxcool ~]# ssh-add ~/.ssh/id_dsa
#从ssh-agent中删除密钥:
[root@linuxcool ~]# ssh-add -d ~/.ssh/id_xxx.pub
setenforce:设置SELinux状态

1 开启
0 关闭

sestatus:显示SELinux状态
[root@localhost aa]#sestatus 
SELinux status:                 disabled
sudoedit:以另外一个用户文件编辑文件

格式:sudoedit [参数] [文件]

-u 以指定用户运行命令
-g 以指定主要组群运行命令
-n 防止提示用户输入密码

T系:

tmux命令 – 终端复用软件

Ctrl+b 激活控制台
? 列出所有快捷键;按q返回
Ctrl+z 挂起当前会话
r 强制重绘未脱离的会话
s 选择并切换会话;在同时开启了多个会话时使用

#安装tmux软件:
[root@linuxcool ~]# brew install tmux
[root@linuxcool ~]# sudo apt-get install tmux
[root@linuxcool ~]# yum install -y tmux
[root@linuxcool ~]# yum install libevent libevent-devel ncurses-devel
[root@linuxcool ~]# tar -zvxf tmux-2.3.tar.gz # 
[root@linuxcool ~]# cd tmux-2.3
[root@linuxcool ~]# ./configure
[root@linuxcool ~]# make && make install
touch命令 : 创建文件

-a 改变档案的读取时间记录
-m 改变档案的修改时间记录
-r 使用参考档的时间记录,与 --file 的效果一样
-c 不创建新文件
-d 设定时间与日期,可以使用各种不同的格式
-t 设定档案的时间记录,格式与 date 命令相同
–no-create 不创建新文件

#创建空文件:
[root@linuxcool ~]# touch file.txt  
#批量创建文件:
[root@linuxcool ~]# touch file{1..5}.txt 
[root@linuxcool ~]# ls
file1.txt file2.txt file3.txt file4.txt file5.txt 
tty命令 : 打印输出连接到标准输入的终端文件名

-s/–silent/–quiet 无打印输出结果,只是返回退出状态码
–help 打印输出tty命令的帮助信息并退出
–version 打印输出当前tty命令版本信息

#直接输入tty命令,打印输连接到当前标准输入的终端设备文件名:
[root@linuxcool ~]# tty
/dev/pts/1
#输入”tty -s/--silent/--quiet”无直接返回结果,需要通过”echo $?”查看返回的退出码:
[root@linuxcool ~]# tty -s
[root@linuxcool ~]# echo $?
0
type命令 : 显示指定命令的类型

lias 别名
keyword 关键字,Shell保留字
function 函数,Shell函数
builtin 内建命令,Shell内建命令
file 文件,磁盘文件,外部命令
unfound 没有找到

#别名命令:
[root@linuxcool ~]# type ls
ls is aliased to `ls --color=auto'
#内建命令:
[root@linuxcool ~]# type cd
cd is a shell builtin
#关键字:
[root@linuxcool ~]# type if
if is a shell keyword
timedatectl命令 : 控制系统时间和日期

status 显示当前时间设置
set-time TIME 设置系统时间
set-timezone ZONE 设置系统时区
list-timezones 显示已知时区

#查看当前的时区:
[root@linuxcool ~]# timedatectl status
#设置系统日期:
[root@linuxcool ~]# timedatectl set-time 2020-08-20
#查看所有的时区:
[root@linuxcool ~]# timedatectl list-timezones
tr命令 – 字符转换

-c 选定字符串1中字符集的补集,即反选字符串1的补集
-d 删除字符串1中出现的所有字符
-s 删除所有重复出现的字符序列,只保留一个

#实现大小字母的转换:
[root@linuxcool ~]# cat file_1
 abc 012
 def 345
 ghi 678
 jkl 909
[root@linuxcool ~]# tr "[a-z]" "[A-Z]" 
 ABC 012
 DEF 345
 GHI 678
 JKL 909
#删除file_1中的小写字母:
[root@linuxcool ~]# tr -d "[a-z]" 
  012
  345
  678
  909
tee命令 : 读取标准输入的数据

-a 附加到既有文件的后面,而非覆盖它
-i 忽略中断信号
— help 查看帮助信息
— version 显示版本信息

#使用指令”tee”将用户输入的数据同时保存到文件”file1″和”file2″中,输入如下命令:
[root@linuxcool ~]# tee file1 file2 
tree:以树状图列出目录内容

-a 显示所有文件和目录
-d 显示目录名称而非内容
-D 列出文件或目录的更改时间
-f 在每个文件或目录之前,显示完整的相对路径名称
-g 列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码
-i 不以阶梯状列出文件或目录名称
-l 如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录
-n 不在文件和目录清单上加上色彩
-N 直接列出文件和目录名称,包括控制字符
-s 列出文件或目录大小
-t 用文件和目录的更改时间排序
-u 列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码
-x 将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该子目录予以排除在寻找范围外
-L 层级显示

#tree显示文件
[root@localhost aa]#tree
.
├── bb
│   └── cc
├── hh.txt
└── hh.txt.tar.gz

2 directories, 2 files
#只显示n层目录(n为数字):
[root@linuxcool ~]# tree -L 2
#用文件和目录的更改时间排序:
[root@linuxcool ~]# tree -t
#以相反次序排序:
[root@linuxcool ~]# tree -r
#在每个文件或目录之前,显示完整的相对路径:
[root@linuxcool ~]# tree -f
#只显示目录:
[root@linuxcool ~]# tree -d
#显示所有文件和目录:
[root@linuxcool ~]# tree -a
tac:反向列示文件内容

-b 在行前而非行尾添加分隔标志
-r 将分隔标志视作正则表达式来解析
-s 使用指定字符串代替换行作为分隔标志

#反向列出test.txt文件的内容:
[root@linuxcool ~]# cat test.txt 
hello world
hello linuxcool
[root@linuxcool ~]# tac test.txt 
hello linuxcool
hello world
true:重定向清空文件内容
#清除指定的文件内容:
[root@linuxcool ~]# true > linuxcool.log
test:检查条件是否成立

-eq (=) 等于则为真
-ne (!=) 不等于则为真
-gt (>) 大于则为真
-ge (>=) 大于等于则为真
-lt (<) 小于则为真
-le (<=) 小于等于则为真

#!/bin/bash
num1=101
num2=100 
if test $[num1] -ge $[num2] then     
echo '两个数相等!' 
else     
echo '两个数不相等!' 
fi 
tail:查看文件尾部内容

-c 输出文件尾部的N(N为整数)个字节内容

-f 显示文件最新追加的内容

-n 输出文件的尾部N(N位数字)行内容

#显示文件file的最后10行:
[root@linuxcool ~ ]  tail file
#显示文件file的内容,从第20行至文件末尾:
[root@linuxcool ~ ]  tail +20 file 
#显示文件file的最后10个字符:
[root@linuxcool ~ ]  tail -c 10 file 
#一直变化的文件总是显示后10行:
[root@linuxcool ~ ]  tail -f 10 file
tailf:跟踪文件输出

-n 输出最后数行
-V 输出版本信息并退出
-h 显示帮助并退出

#显示文件最后5行内容:
[root@linuxcool ~]# tailf -n 5 log2014.log
tar:打包和备份的归档工具

-d 记录文件的差别
-x 从归档文件中提取文件
-t 列出备份文件的内容
-z 通过gzip指令压缩/解压缩文件,文件名最好为*.tar.gz
-f 指定备份文件
-v 显示指令执行过程
-r 添加文件到已经压缩的文件
-j 通过bzip2指令压缩/解压缩文件,文件名最好为.tar.bz2
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-w 确认压缩文件的正确性
-p 保留原来的文件权限与属性

#打包文件,格式为.tar.gz
[root@localhost aa]#tar -zcvf hh.txt.tar.gz hh.txt 
[root@localhost aa]#ls
bb  hh.txt  hh.txt.tar.gz
#解压归档文件
[root@localhost aa]#ls
bb  hh.txt.tar.gz
[root@localhost aa]#tar -zxvf hh.txt.tar.gz 
[root@localhost aa]#ls
bb  hh.txt  hh.txt.tar.gz
tune2fs:文件系统管理
#查看详细信息:
[root@linux ~]# tune2fs -l /dev/sdb1
#设置强制检查前文件系统可以挂载的次数:
[root@linux ~]# tune2fs -c 30 /dev/sdb1
#10天后检查:
[root@linux ~]# tune2fs -i 10 /dev/sdb1
#3周后检查:
[root@linux ~]# tune2fs -i 3w /dev/sdb1
#半年后检查:
[root@linux ~]# tune2fs -i 6m /dev/sdb1
#禁用时间检查:
[root@linux ~]# tune2fs -i 0 /dev/sdb1 
#添加日志功能,将ext2转换成ext3文件系统:
[root@linux ~]# tune2fs -j /dev/sdb1
#调整/dev/sdb1分区的保留空间为40000个磁盘块:
[root@linux ~]# tune2fs -r 40000 /dev/sdb1
#设置/dev/sdb1挂载选项,启用Posix Access Control Lists和用户指定的扩展属性:
[root@linux ~]# tune2fs -o acl,user_xattr /dev/sdb1
tcpdump:监听网络流量
traceroute:追踪数据包在网络上的传输时的全部路径
#追踪本地数据包到www.linuxprobe.com的传输路径:
[root@linuxcool ~]# traceroute www.linuxprobe.com
#跳数设置:
[root@linuxcool ~]# traceroute -m 7 www.linuxprobe.com
#显示IP地址,不查主机名 :
[root@linuxcool ~]# traceroute -n www.linuxprobe.com
#把探测包的个数设置为值4:
[root@linuxcool ~]# traceroute -q 4 www.linuxprobe.com
#把对外发探测包的等待响应时间设置为3秒:
[root@linuxcool ~]# traceroute -w 3 www.linuxprobe.com
tracepath:追踪报文的路由信息

-n 只显示ip地址
-b 同时显示ip地址和主机名
-l 设置初始化的数据包长度,默认为65535
-m 设置最大TTL值,默认为30
-p 设置要使用的初始目标端口

#追踪到达域名的主机路由信息(同时显示ip地址与主机名):
[root@linux ~]# tracepath -b www.linux.com
#设置追踪报文路由的最大TTL值:
[root@linux ~]# tracepath -m 20 www.linux.com
trap:指定采取的动作

-l 让shell打印一个命令名称和其相对应的编号的列表
-p 打印与每一个信号有关联的命令的列表
缺省 每个接收到的sigspec信号都将会被重置为它们进入shell时的值
-f 阻止中断信号

top:实时显示进程动态

-d 改变显示的更新速度
-c 切换显示模式
-s 安全模式,将交谈式指令取消, 避免潜在的危机
-i 不显示任何闲置 (idle) 或无用 (zombie) 的行程
-n 更新的次数,完成后将会退出 top

#显示完整的进程信息:
[root@linuxcool ~]# top -c
#以批处理模式显示程序信息:
[root@linuxcool ~]# top -b
#以累积模式显示程序信息:
[root@linuxcool ~]# top -s
#设置信息更新次数:
[root@linuxcool ~]# top -n 2
#信息更新时间间隔为2秒
[root@localhost aa]#top -d 2

U系:

unalias命令 : 取消命令别名

-a 取消所有命令别名

#先设置一个别名:
[root@linuxcool ~]# alias i='ls'
[root@linuxcool ~]# i
IGI  Leader  NetEase
#使用unalias命令将已经设置的命令别名”i”取消:
[root@linuxcool ~]# unalias i
dos2unix命令 : 将DOS格式的文本文件转换成UNIX格式

-k 保持输出文件的日期不变
-q 安静模式,不提示任何警告信息
-V 查看版本
-c 转换模式:ASCII 7bit ISO Mac
-o 写入到源文件
-n 写入到新文件

#最简单的用法就是dos2unix直接跟上文件名:
[root@linuxcool ~]# dos2unix file
#如果一次转换多个文件,把这些文件名直接跟在dos2unix之后。(注:也可以加上-o参数,也可以不加,效果一样)
[root@linuxcool ~]# dos2unix file1 file2 file3
[root@linuxcool ~]# dos2unix -o file1 file2 file3
useradd命令 : 创建用户

-D 改变新建用户的预设值
-c 添加备注文字
-d 新用户每次登陆时所使用的家目录
-e 用户终止日期,日期的格式为YYYY-MM-DD
-f 用户过期几日后永久停权。当值为0时用户立即被停权,而值为-1时则关闭此功能,预设值为-1
-g 指定用户对应的用户组
-G 定义此用户为多个不同组的成员
-m 用户目录不存在时则自动创建
-M 不建立用户家目录,优先于/etc/login.defs文件设定
-n 取消建立以用户名称为名的群组
-r 建立系统帐号
-u 指定用户id

-s 指定用户登录的shell环境

#添加新用户linuxcool:
[root@linuxcool ~]# useradd linuxcool
#不创建家目录,并且禁止登陆:
[root@linuxcool ~]# useradd -M -s /sbin/nologin linuxcool
#添加新用户linuxcool,指定UID为888,指定归属用户组为root,cool成员,其shell类型为/bin/sh:
[root@linuxcool ~]# useradd -u 888 -s /bin/sh -G root,cool linuxcool
usermod命令 : 修改用户账号

-c<备注> 修改用户账号的备注文字
-d<登入目录> 修改用户登入时的目录
-e<有效期限> 修改账号的有效期限
-f<缓冲天数> 修改在密码过期后多少天即关闭该账号
-g<群组> 修改用户所属的群组
-G<群组> 修改用户所属的附加群组
-l<账号名称> 修改用户账号名称
-L 锁定用户密码,使密码无效
-s 修改用户登入后所使用的shell
-u 修改用户ID
-U 解除密码锁定

#更改登陆目录:
[root@linuxcool ~]# usermod -d /home/hnlinux root
#改变用户的uid:
[root@linuxcool ~]# usermod -u 777 root
#修改用户名为linux:
[root@linuxcool ~]# usermod -l Linux linuxcool
userdel命令 : 删除用户

-f 强制删除用户账号
-r 删除用户主目录及其中的任何文件
-h 显示命令的帮助信息

#删除用户,但不删除其家目录及文件:
[root@linuxcool ~]# userdel linuxcool
#删除用户,并将其家目录及文件一并删除:
[root@linuxcool ~]# userdel -r linuxcool
#强制删除用户:
[root@linuxcool ~]# userdel -f linuxcool
umask命令 : 设定权限掩码

-S 以文字的方式来表示权限掩码
-p 输出的权限掩码可直接作为指令来执行

#使用指令”umask”查看当前权限掩码:
[root@linuxcool ~]# umask 
#使组用户的写权限,其他用户的读、写和执行权限都被取消:
[root@linuxcool ~]# umask u=, g=w, o=rwx
uncompress命令 : 压缩或解压缩compress文件unxz

-b 压缩效率是一个介于9到16的数值,值越大,压缩效率就越高
-c 把压缩后的文件输出到标准输出设备,不删除原始文件
-f 强制执行压缩或者解压缩
-v 显示压缩统计信息

#解压缩/root/install.log.Z文件:
[root@linuxcool ~]# compress -f /root/install.log
uniq命令 : 去除文件中的重复行

-c 打印每行在文本中重复出现的次数
-d 只显示有重复的纪录,每个重复纪录只出现一次
-u 只显示没有重复的纪录

#删除连续文件中连续的重复行:
[root@linuxcool ~]# cat testfile 
 test 30  
 test 30  
 test 30  
 Hello 95  
 Hello 95  
 Hello 95  
 Hello 95  
 Linux 85
 Linux 85
 [root@linuxcool ~]# uniq testfile 
 test 30  
 Hello 95  
 Linux 85
unset命令 : 删除指定的shell变量或函数

-f 仅删除函数
-v 仅删除变量

#使用unset命令将前面所创建的环境变量mylove及其对应的值进行删除,输入如下命令:
[root@linuxcool ~]# unset -v mylove    
unzip命令 : 解压缩zip文件

-l 显示压缩文件内所包含的文件
-v 执行时显示详细的信息
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换
-n 解压缩时不要覆盖原有的文件
-j 不处理压缩文件中原有的目录路径

#把/home目录下面的mydata.zip解压到mydatabak目录里面:
[root@linuxcool ~]# unzip mydata.zip -d mydatabak 
#把/home目录下面的wwwroot.zip直接解压到/home目录里面:
[root@linuxcool ~]# unzip wwwroot.zip 
#把/home目录下面的abc12.zip、abc23.zip、abc34.zip同时解压到/home目录里面:
[root@linuxcool ~]# unzip abc\*.zip 
umount命令 : 卸载文件系统

-a 卸载/etc/mtab中记录的所有文件系统
-h 显示帮助
-n 卸载时不要将信息存入/etc/mtab文件中
-r 若无法成功卸载,则尝试以只读的方式重新挂入文件系统
-t 文件系统类型:仅卸载选项中所指定的文件系统
-v 执行时显示详细的信息
-V 显示版本信息

#通过设备名卸载:
[root@linuxcool ~]# umount -v  /dev/sda1
/dev/sda1 umounted 
#通过挂载点卸载:
[root@linuxcool ~]# umount -v /mnt/mymount/
/tem/diskboot.img umounted 
uptime命令 : 查看系统负载

-p 以漂亮的格式显示机器正常运行的时间
-s 系统自开始运行时间,格式为yyyy-mm-dd hh:mm:ss
-h 显示帮助信息

#显示当前系统运行负载情况:
[root@linuxcool ~]# uptime 
15:23:22 up 2 days,  5:13,  3 users,  load average: 0.12, 0.04, 0.05
#使用-p参数显示机器正常运行的时间:
[root@linuxcool ~]# uptime -p
up 2 days, 5 hours, 15 minutes
ulimit命令 : 控制shell程序的资源

-a 显示目前资源限制的设定
-d 程序数据节区的最大值,单位为KB
-t 指定CPU使用时间的上限,单位为秒
-u 用户最多可开启的程序数目
-v 指定可使用的虚拟内存上限,单位为KB

#显示系统资源的设置:
[root@linuxcool ~]# ulimit -a 
#设置单一用户程序数目上限 :
[root@linuxcool ~]# ulimit -u 500
#将每个进程可以打开的文件数目加大到4096 :
[root@linuxcool ~]# ulimit -n 4096 

V系:

vi命令 : 文本编辑器

-R 只读模式
-v Vi模式
-e Ex模式
-y 简易模式
-c<命令> 加载第一个文件之后执行指定命令
-s<脚本输入文件> 从指定脚本输入文件阅读普通模式命令
-w<脚本输出文件> 追加所有类型的命令写入脚本输出文件
-W<脚本输出文件> 写入所有类型的命令到指定脚本输出文件 + 从文件末尾开始
+<行数> 从指定行开始
-p<数量> 打开指定数量的标签页(带文件名)
-r<文件名> 恢复崩溃的会话
-r 列出交换文件并退出
-T<终端> 设置使用指定终端
-n 不使用交换文件,只用内存
-Z 受限模式
-m 不允许修改(写入)
-b 二进制模式
-M 在文本中不允许修改

#使用vi编辑器:
[root@linuxcool ~]# vi
#编辑指定文件:
[root@linuxcool ~]# vi linuxcool.log
vim的三种模式:
#1、命令模式
使用 Vim 编辑文件时,默认处于命令模式。在此模式下,可以使用上、下、左、右键或者 k、j、h、l 命令进行光标移动,还可以对文件内容进行复制、粘贴、替换、删除等操作。
#2、输入模式
在输入模式下可以对文件执行写操作,类似在 Windows 的文档中输入内容。进入输入模式的方法是输入 i、a、o 等插入命令,编写完成后按 Esc 键即可返回命令模式。
#3、底线命令模式
修改完文件之后按下ESC键退出输入模式,进入命令模式,再输入冒号(:)即可进入底线命令模式,在命令行输入wq即可进行保存并退出vim
按ESC键—>再按“:”

:w - 保存文件,不退出 vim
:wq -强制保存文件,退出 vim
vipw命令 : 编辑某些配置文件

-g 编辑group数据库
-p 编辑passwd数据库
-q 安静模式
-s 编辑shadow或gshadow数据库

#编辑/etc/passwd文件:
[root@linuxcool ~]# vipw -p
#编辑/etc/group文件:
[root@linuxcool ~]# vipw -g
#编辑/etc/shadow文件:
[root@linuxcool ~]# vipw -s
vigr命令 : 修改group、gshadow文件

-g 修改组信息
-p 修改密码信息
-R 在CHROOT_DIR目录中应用更改并使用CHROOT_DIR目录中的配置文件
-s 编辑shadow 或 gshadow 信息

#修改组信息:
[root@linuxcool ~]# vigr -g 
#修改密码信息:
[root@linuxcool ~]# vigr -p
vimdiff命令 : 同时编辑多个文件

w 在命令模式下,按Ctrl + w在多个文件之间跳转
u 在命令模式下,按u执行撤销操作
qa 同时退出多个文件
wqa 保存并同时退出多个文件

#同时编辑2个文件:
[root@linuxcool ~]# vimdiff file1 file2 
[root@linuxcool ~]# vim -d file1 file2 
#同时编辑3个文件:
[root@linuxcool ~]# vimdiff file1 file2 file3
[root@linuxcool ~]# vim -d file1 file2 file3
vgcreate命令 : 创建卷组

-l 卷组上允许创建的最大逻辑卷数
-p 卷组中允许添加的最大物理卷数
-s 卷组上的物理卷的PE大小

#创建卷组 “vg1000” :
[root@linuxcool ~]# vgcreate vg1000
#创建最大逻辑卷数为200的卷组 “vg1000” :
[root@linuxcool ~]# vgcreate -l 200 vg1000
vgreduce命令 : 删除物理卷

-a 如果命令行中没有指定要删除的物理卷,则删除所有的空物理卷
-removemissing 删除卷组中丢失的物理卷,使卷组恢复正常状态

#从卷组”vg2000″中移除物理卷/dev/sdb2:
[root@linuxcool ~]# vgreduce vg2000 /dev/sdb2
Removed "/dev/sdb2" from volume group "vg2000"
vgextend命令 : 扩展卷组

-d 调试模式
-t 仅测试

#将物理卷/dev/sdb1加入卷组vglinuxprobe:
[root@linuxcool ~]# vgextend vglinuxprobe /dev/sdb1
vgremove命令 : 删除LVM卷组

-f 强制删除

#删除卷组vg1000:
[root@linuxcool ~]# vgremove vg1000
Volume group "vg1000" successfully removed
vgs命令 : 报告关于卷组的信息

– -aligned 使用–separator对齐输出列
– -nameprefixes 添加一个“LVM2_”前缀加上字段名输出
– -noheadings 标题行,通常是输出的第一行
– -all 列出所有的卷组
– -nosuffix 在输出尺寸上后缀
– -unbuffered 立即产生输出,无需正确的排序或对齐列
-O 逗号分隔的有序的列的列表进行排序
– -rows 输出的列作为行

#显示卷组vg1的信息:
[root@linuxcool ~]# vgs vg1
#显示结果使用分隔符对齐输出:
[root@linuxcool ~]# vgs --aligned vg1
#列出所有卷组:
[root@linuxcool ~]# vgs --all
vgdisplay命令 : 显示LVM卷组的信息

-A 仅显示活动卷组的属性
-s 使用短格式输出的信息

#显示存在的卷组”vg1000″的属性:
[root@linuxcool ~]# vgdisplay vg1000 
#显示存在的卷组”vg2000″的属性:
[root@linuxcool ~]# vgdisplay vg2000
vmstat命令 – 显示虚拟内存状态

-a 显示活动内页
-f 显示启动后创建的进程总数
-m 显示slab信息
-n 头信息仅显示一次
-s 以表格方式显示事件计数器和内存状态
-d 报告磁盘状态
-p 显示指定的硬盘分区状态
-S 输出信息的单位

#显示活动内页:
[root@linuxcool ~]# vmstat -a
#显示启动后创建的进程总数:
[root@linuxcool ~]# vmstat -f
#显示slab信息:
[root@linuxcool ~]# vmstat -m
visudo命令 : 编辑/etc/sudoers文件

-c 启用check-only模式
-q 启用安静模式,此模式下不显示错误信息
-s 启用严格检查sudoers文件

#使用visudo命令编辑/etc/sudoers文件:
[root@linuxcool ~]# visudo
#检查/etc/sudoers文件的语法错误、所有者和模式:
[root@linuxcool ~]# visudo -c

W系:

who命令 : 打印当前登录用户

-a 打印全面信息
-b 打印系统最近启动时间
-d 打印死掉的进程
-l 打印系统登录进程
-H 带有列标题打印用户名,登录终端和登录时间
-t 打印系统上次锁定时间
-u 打印已登录用户列表

#打印用户登录信息(-H 带有列标题打印):
[root@linuxcool ~]# who -H
名称     线路          时间              备注
root     pts/0        2019-04-10 12:31 (192.168.12.34)
#打印全部信息:
[root@linuxcool ~]# who -H -a
名称     线路       时间           空闲  进程号 备注   退出
系统引导 2019-04-03 15:01
运行级别 3 2019-04-03 15:02
登录     tty1      2019-04-03 15:02           852 id=tty1
                   2019-04-03 15:31          1022 id=102  终端=0 退出=0
root     + pts/0   2019-04-10 12:27   .  2789 (192.168.12.34)
whoami命令 : 打印当前登录用户

whoami命令显示自身的用户名称,本指令相当于执行”id -un”指令

#查询当前登录的用户名:
[root@linuxcool ~]# whoami 
root
w命令 :显示已登录用户

-h/–no-header 不打印头信息
-u/–no-current 当显示当前进程和cpu时间时忽略用户名
-s/–short 使用短输出格式
-f/–from 显示用户从哪登录
-o/–old-style 老式输出
-i/–ip-addr 显示IP地址而不是主机名(如果可能)
–help 显示此帮助并退出
-V/–version 显示版本信息

#显示目前登入系统的用户信息:
[root@linuxcool ~]# w
#不打印头信息:
[root@linuxcool ~]# w -h
#显示用户从哪登录:
[root@linuxcool ~]# w -f
which命令 : 查找文件

-n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名
-p 与-n参数相同,但此处的<文件名长度>包括了文件的路径
-w 指定输出时栏位的宽度
-V 显示版本信息

#查找文件、显示命令路径:
[root@linuxcool ~]# which bash
/bin/bash
[root@linuxcool ~]# which adduser 
/usr/sbin/adduser 
说明:which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!所以,不同的 PATH 配置内容所找到的命令当然不一样的!
#使用which去找which:
[root@linuxcool ~]# which which 
alias which='alias|/usr/bin/which  --tty-only --read-alias --show-dot --show-tilde'/usr/bin/which  
whereis命令 : 显示命令及相关文件的路径

-b 查找二进制程序或命令
-B 从指定目录下 查找二进制程序或命令
-m 查找man手册文件
-M 从指定目录下 查找man手册文件
-s 只查找源代码文件
-S 从指定目录下 查找源代码文件

#显示ln命令的程序和man手册页的位置:
[root@linuxcool ~]# whereis ln
ln: /usr/bin/ln /usr/share/man/man1/ln.1.gz /usr/share/man/man1p/ln.1p.gz
#显示ln命令的二进制程序的路径:
[root@linuxcool ~]# whereis -b ln
ln: /usr/bin/ln
#显示ln命令的man手册页的路径:
[root@linuxcool ~]# whereis -m ln
ln: /usr/share/man/man1/ln.1.gz /usr/share/man/man1p/ln.1p.gz
whatis命令 : 查询命令执行功能

whatis命令等同于使用man -f命令。

#ls命令执行情况:
[root@linuxcool ~]# whatis ls
ls                   (1)  - list directory contents
ls                   (1p)  - list directory contents

#cp命令执行情况:
[root@linuxcool ~]# whatis cp
cp                   (1)  - copy files and directories
cp                   (1p)  - copy files
wget命令 : 文件下载

-V –-version 显示wget的版本后退出
-h –-help 打印语法帮助
-b, –-background 启动后转入后台执行
-e –-execute=COMMAND

#使用wget下载单个文件:
[root@linuxcool ~]# wget http://www.Linuxcool.com/testfile.zip

#下载并以不同的文件名保存:
[root@linuxcool ~]# wgetc  -O test.zip http://www.Linuxcool.com

#wget限速下载:
[root@linuxcool ~]# wget --limit-rate=300k http://www.linuxcool.com/test.zip

X系:

xxd命令 : 以十六进制形式表示

-a 它的作用是自动跳过空白内容,默认是关闭的
-c 它的后面加上数字表示每行显示多少字节的十六进制数,默认是16字节
-g 设定以几个字节为一块,默认为2字节
-l 显示多少字节的内容

#使用-a参数,自动跳过空白,从0x200开始,输入文件:
[root@linuxcool ~]# xxd -a -s +0x200 linuxcool.txt
#使用-a、-c参数,自动跳过空白,每行显示12字节,从0x200开始,输入文件:
[root@linuxcool ~]# xxd -a -c 12 -s +0x200 linuxcool.txt
xz命令 : POSIX 平台开发工具

z, --compress 强制压缩
-t, --test 测试压缩文件的完整性
-l, --list 列出有关.xz文件的信息
-k, --keep 保留(不要删除)输入文件
-f, --force 强制覆盖输出文件和(解)压缩链接
-c, --stdout, --to-stdout 写入标准输出,不要删除输入文件
-0 … -9 压缩预设; 默认为6; 取压缩机和使用7-9之前解压缩内存使用量考虑在内!
-e, --extreme 尝试通过使用更多的CPU时间来提高压缩比
-T, --threads=NUM 最多使用NUM个线程; 默认值为1
set to 0 设置为0,使用与处理器内核一样多的线程
-q, --quiet 抑制警告; 指定两次以抑制错误
-v, --verbose 冗长; 指定两次更详细
-h, --help 显示这个简洁的帮助并退出
-H, --long-help 显示更多帮助(还列出了高级选项)
-V, --version 显示版本号并退出

#压缩一个文件 test.txt,压缩成功后生成 test.txt.xz, 原文件会被删除:
[root@linuxcool ~]$ xz test.txt
[root@linuxcool ~]$ ls test.txt*
test.txt.xz
#解压 test.txt.xz 文件,并使用参数 -k 保持原文件不被删除:
[root@linuxcool ~]$ xz -d -k test.txt.xz
[root@linuxcool ~]$ ls test.txt*
test.txt.xz test.txt
xzcat命令 : 查看xz压缩文件的内容

-z 强制压缩
-d 强制解压缩
-t 测试压缩文件的完整性
-l 使用列表格式显示
-k 保留输入文件,不要删除
-f 强制操作

#查看压缩文件/root/tt.xz内容:
[root@linuxcool ~]# xzcat /root/tt.xz
xfs_growfs :刷新文件系统
#刷新xfs文件系统
xfs_growfs    /dev/ky15/ky1501         

Y系:

yes命令 : 重复打印字符串

yes命令的作用是中输出指定的字符串,直到yes进程被杀死。不带任何参数输的yes命令默认的字符串就是y。 终止yes命令可以使用组合键ctrl+c

#重复打印一段字符:
[root@linuxcool ~]# yes linuxcool
linuxcool
linuxcool
linuxcool
linuxcool
linuxcool
linuxcool
linuxcool
linuxcool
...
^C //使用ctrl+c强制停止
yum命令 : 基于RPM的软件包管理器

-h 显示帮助信息
-y 对所有的提问都回答“yes”
-c 指定配置文件
-q 安静模式
-v 详细模式
-t 检查外部错误
-d 设置调试等级(0-10)
-e 设置错误等级(0-10)
-R 设置yum处理一个命令的最大等待时间
-C 完全从缓存中运行,而不去下载或者更新任何头文件
install 安装rpm软件包
update 更新rpm软件包
check-update 检查是否有可用的更新rpm软件包
remove 删除指定的rpm软件包
list 显示软件包的信息
search 检查软件包的信息
info 显示指定的rpm软件包的描述信息和概要信息
clean 清理yum过期的缓存
shell 进入yum的shell提示符
resolvedep 显示rpm软件包的依赖关系
localinstall 安装本地的rpm软件包
localupdate 显示本地rpm软件包进行更新
deplist 显示rpm软件包的所有依赖关系

#自动搜索最快镜像插件:
[root@linuxcool ~]# yum install yum-fastestmirror
#安装yum图形窗口插件:
[root@linuxcool ~]# yum install yumex
#清除缓存目录下的软件包:
[root@linuxcool ~]# yum clean packages

Z系:

zcat命令 :查看压缩文件的内容

-S 当后缀不是标准压缩包后缀时使用此选项
-c 将文件内容写到标注输出
-d 执行解压缩操作
-l 显示压缩包中文件的列表
-L 显示软件许可信息
-q 禁用警告信息
-r 在目录上执行递归操作
-t 测试压缩文件的完整性
-V 显示指令的版本信息
-l 更快的压缩速度
-9 更高的压缩比

#不解压缩文件的情况下,显示压缩包中文件的内容:
[root@linuxcool ~]# zcat file.gz
#查看多个压缩文件:
[root@linuxcool ~]# zcat file1.gz file2.gz
zip命令 : 压缩文件

-q 不显示指令执行过程
-r 递归处理,将指定目录下的所有文件和子目录一并处理
-z 替压缩文件加上注释
-v 显示指令执行过程或显示版本信息
-n<字尾字符串> 不压缩具有特定字尾字符串的文件

#将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip:
[root@linuxcool ~]# zip -q -r html.zip /home/html
#压缩文件 cp.zip 中删除文件 a.c:
[root@linuxcool ~]# zip -dv cp.zip a.c 

你可能感兴趣的:(linux,bash,运维,开发语言,apache)