linux命令都含有一定格式,有具体的语法。我们应用命令时一般需要按语法应用。
有些特殊命令,不遵从通用格式,应用时要格外注意。
命令很多,不需要都记住,但对命令有一个整体的了解,对快速使用命令、找到需要功能的命令十分重要。
本文对linux命令的分类进行归纳总结,梳理抽象,进行深度剖析。
一、按命令功能分类
根据命令使用后产生的作用分类,是初学者要首先掌握的。我们想应用命令做什么事情,可根据此分类快速找到命令。
1.文件和目录管理命令
这类命令用于操作文件和目录,包括创建、删除、复制、移动、重命名等操作。常用的命令有:ls、cd、mkdir、rm、cp、mv、ln、dd等。
2.文件查看命令
这类命令可以查看文件内容。常用的命令有:cat、head、tail、more、less、nl等。
3.文本处理命令
这类命令用于对文本文件进行处理和操作,包括查找、替换、排序等。常用的命令有:vi/vim、nano、gvim、grep、sed、awk、sort、cut等。
4.压缩和解压命令
这类命令用于压缩和解压文件和目录,常用的命令有:tar、zip、gzip、xl等。
5.用户及组管理命令
这类命令主要对新用户、新组进行创建、修改、删除等操作。常用的命令有:useradd、usermod、passwd、groupadd、groupmod、id、groups、su、sudo等
6.权限管理命令
这类命令用于管理文件和目录的权限,包括设置文件的所有者和组、设置权限等。常用的命令有:chown、chmod、chgrp、chattr、lsattr等。
7.网络管理命令
这类命令用于管理网络相关的设置和操作,包括网络配置、网络状态查看、网络连接等。常用的命令有:ifconfig、ping、ip、route、ss、iptables、firewall-cmd等。
8.命令(二进制文件)信息命令
这类命令主要对作为命令的文件进行类型查看、状态查看、位置查看等。常用的命令有:type、which、file、stat、man、info、help、readelf、strings、huxdump等。
9.系统管理命令
这类命令用于管理系统的各个方面,包括软件管理、进程管理、服务管理等。常用的命令有:yum、rpm、wget、apt-get(版本不同,软件安装方式不同)、make、install、hostname、hostnamectl、ps、top、nmcli、systemctl等。
10.系统信息命令
这类命令用于查看系统的一些基本信息和状态,包括系统版本、硬件信息、内存使用情况等。常用的命令有:uname、du、df、lscpu、lsblk、free等。
二、按命令复杂程度分类
1.简单命令
最基本的命令,其格式完全遵守语法:
命令名 选项 参数
如仅有命令名
命令 [默认参数]
cd pwd
如仅有一个参数
fill 文件名
如一个选项、一个参数
ls -l /tmp
如多个选项
ls -alhSr
如多个参数
mkdir test1 user2 demo3
初学者能多了解常用命令的选项、参数即可,能正确区分出选项、参数
此类命令有小小的变动,不要大惊小怪:选项与参数可以变换位置:
cat /etc/passwd -n
这种情况是先看文件内容,发现不合适后再调出命令,适当添加选项
这类命令的选项有三种风格:短选项、长选项、BSD(应用少,记住常用的即可,如tar xf **、ps aux)
2.复杂命令
这类含有多个选项与参数,并配合执行动作(操作)
这类命令有多种组合而无规律,只有多应用多记忆
cp -pv 文件1 文件2..目标目录
位置固定:前面几个参数可以是普通文件或目录,最后一个必须是目录
grep -E "^ls|pwd$" 文件名
应用正则^ | $
find . -name *.* -o -type f -exec
应用逻辑连接-o
三、按命令执行时影响操作环境分类
1.创建子进程
除执行内部命令不创建子进程外,执行外部命令时都会在当前bash进程创建一个子进程而应用exec函数集。
ls
cp
2.创建临时缓存区
临时缓存占用前台,不能继续录入命令。只有释放临时缓存才能显示命令行
vim a.txt
nano a.sh
less
top
3.创建新窗口
nmtui
nm-connection-editor
rz
sz
四、按命令内部构成分类
1.单一命令
这类命令就是一个命令,完成一项作业/功能。
echo 12345 ——打印输出到标准输出(屏幕)
ping baidu.com ——查看网络联通性
2.命令集合
一个主命令包含很多子命令(动作)。完全打破单一命令的语法格式,形成新的命令集。
这种命令集在新版本中广泛应用,把原来的分散的小命令整合为一个命令集,方便管理。其功能强大,可选择性强,可多训练多应用。
ip ——该命令包含a添加、d删除、r路由等不同操作。
nmcli
systemctl
hostnamectl
3.命令组合
多个命令组成一个功能,相互配合、扩展原功能等。
a.包含
一个命令中不能再含有平等/同级的命令,只能进行命令引用,使用$()或者``。
echo `date`
echo与date命令不能在一个命令中同等级别,第二个命令必须引用才可。
b.平行
两个命令是平级关系,但有执行的先后顺序。这类命令不多,记住常用的即可。
查看一个命令的执行时间,会用到两个命令:计时命令time、正常执行命令如dd(经常用此方式验证系统的读写盘性能)
time ping -c4 8.8.8.8
time ls /
time dd if=/dev/zero of=test bs=4K count=1000
c.逻辑
二个或多个命令间有三种逻辑关系:顺序;&&与||或,酌情使用。
mkdir;ls;cd
d.编程
在命令行把命令与bash关键字组合,构成一段代码,仅相当于命令,来完成一定功能。
for i in $(seq 10);do echo -en "$i\t";sleep .5;done;echo
此案例为延迟打印输出10个数字。
4. 命令扩展
命令正常情况下输出到屏幕(标准输出),采取一定手段可以重定向、输出变输入等。
a.与重定向结合
echo123456 >test.txt
常用重定向有:>标准输出重定向 >>标准输出追加 &>标准输出与标准错误一起重定向
b.与管道符结合
ls -l | grep "^-"
前一个命令的标准输出作为第二个命令的标准输入
c.与数字结合
命令后添加数字,一般保留数字含义,但有个别有其他含义
history 5——数字作为最后的行数(即最新的命令条数)
init 0——不同数字代表系统运行在不同级别
(常用数字:3字符界面;5图形界面;6重启系统;0 关机)
sleep 2——数字作为秒计时
touch 1 2 3——数字作为文件名
d.与特殊符号结合
cd ~——~代表家目录
cd -——-代表原目录
ls *.txt——*代表任意通配符
dnf -y install httpd &——&代表后台执行安装命令