本文接着上篇Linux常用命令-1继续往后学习其他常用命令。
2.3 目录操作类命令
1.mkdir命令
mkdir命令用于创建一个目录。该命令的语法为:
上述目录名可以为相对路径,也可以为绝对路径。
mkdir命令的常用参数选项如下。
-p:在创建目录时,如果父目录不存在,则同时创建该目录及该目录的父目录。
2.rmdir命令
rmdir命令用于删除空目录。该命令的语法为:
上述目录名可以为相对路径,也可以为绝对路径。但所删除的目录必须为空目录。
rmdir命令的常用参数选项如下。
-p:在删除目录时,一同删除父目录,但父目录中必须没有其他目录及文件。
2.4 复制命令
1.cp命令
cp命令主要用于文件或目录的复制。该命令的语法为:
cp命令的常用参数选项如下。
-a:尽可能将文件状态、权限等属性照原状予以复制。
-f:如果目标文件或目录存在,先删除它们再进行复制(即覆盖),并且不提示用户。
-i:如果目标文件或目录存在,提示是否覆盖已有的文件。
-R:递归复制目录,即包含目录下的各级子目录。
复制(cp)这个指令是非常重要的,不同身份者执行这个指令会有不同的结果产生,尤其是-a、-p选项,对于不同身份来说,差异非常大。
例子:下面的练习中,有的身份为root,有的身份为一般账号(在这里用lu这个账号),练习时请特别注意身份的差别。
例1:用root身份,将家/opt目录下的1.txt复制到/tmp下,并更名为2.txt。
重复做两次,由于/tmp下已经存在2.txt了,加上-i选项后,则在覆盖前会询问使用者是否确定!可以按下no/n或者yes/y来二次确认
例2:用root用户和普通用户来拷贝wtmp文件并查看其属性。
切换账户为普通用户lu
我们先进行删除操作,可以看到,无法删除通过root用户拷贝过来的wtmp_2
我们先切换到root用户删除掉wtmp_2文件,然后再用lu普通账户拷贝一下wtmp文件,查看一下有什么不一样的。
可以看出来,两个文件的用户归属不一样,/var/log/wtmp属于root用户 wtmp_2属于lu用户。通过 cp -a可以完整地把文件及属性都拷贝过来。
由于是root的身份,因此复制过来的文件拥有者与群组就改变成为root所有。由于具有这个特性,所以当我们在进行备份的时候,某些需要特别注意的特殊权限文件。例如,密码文件(/etc/shadow)以及一些配置文件,就不能直接以cp来复制,而必须要加上-a或-p等属性。
注意:如果想要复制文件给其他使用者,也必须要注意文件的权限(包含读、写、执行以及文件拥有者等),否则,其他人还是无法针对你给的文件进行修改。
2.5 文件操作类命令
1.mv命令
mv命令主要用于文件或目录的移动或改名。该命令的语法为:
mv命令的常用参数选项如下。
-i:如果目标文件或目录存在,则提示是否覆盖目标文件或目录。
-f:无论目标文件或目录是否存在,直接覆盖目标文件或目录,不提示。
2.rm命令
rm命令主要用于文件或目录的删除。该命令的语法为:
rm命令的常用参数选项如下。
-i:删除文件或目录时提示用户。
-f:删除文件或目录时不提示用户。
-R:递归删除目录,即包含目录下的文件和各级子目录。
3.touch命令
touch命令用于建立文件或更新文件的修改日期。该命令的语法为:
touch命令的常用参数选项如下。
-d yyyymmdd:把文件的存取或修改时间改为yyyy年mm月dd日。
-a:只把文件的存取时间改为当前时间。
-m:只把文件的修改时间改为当前时间。
4. whereis命令
whereis命令用来寻找命令的可执行文件所在的位置。该命令的语法为:
whereis命令的常用参数选项如下。
-b:只查找二进制文件。
-m:只查找命令的联机帮助手册部分。
-s:只查找源代码文件。
例如:
5.whatis命令
whatis命令用于获取命令简介。它从某个程序的使用手册中抽出一行简单的介绍性文件,帮助用户迅速了解这个程序的具体功能。该命令的语法为:
例如:
2.6 系统信息类命令
系统信息类命令是对系统的各种信息进行显示和设置的命令。
1.dmesg命令
dmesg命令用实例名和物理名称来标识连到系统上的设备。dmesg命令也用于显示系统诊断信息、操作系统版本号、物理内存大小以及其他信息。
提示:系统启动时,屏幕上会显示系统CPU、内存、网卡等硬件信息。但通常显示得比较快,如果用户没有来得及看清,可以在系统启动后用dmesg命令查看。
2.free命令
free命令主要用来查看系统内存、虚拟内存的大小及占用情况。
3.date命令
date命令可以用来查看系统当前的日期和时间。
date命令还可以用来设置当前的日期和时间,例如:
[root@RHEL7-1 ~]# date -d 08/08/2024
2024年 08月 08日 星期一 00:00:00 CST
注意:只有root用户才可以改变系统的日期和时间。
4.cal命令
cal命令用于显示指定月份或年份的日历,可以带两个参数,其中,年、月份用数字表示;只有一个参数时表示年份,年份的范围为1~9999;不带任何参数的cal命令显示当前月份的日历。
5.clock命令
clock命令用于从计算机的硬件获得日期和时间。
2.7 进程管理类命令
进程管理类命令是对进程进行各种显示和设置的命令。
1.ps命令
ps命令主要用于查看系统的进程。该命令的语法为:
ps命令的常用参数选项如下。
-a:显示当前控制终端的进程(包含其他用户的)。
-u:显示进程的用户名和启动时间等信息。
-w:宽行输出,不截取输出中的命令行。
-l:按长格形式显示输出。
-x:显示没有控制终端的进程。
-e:显示所有的进程。
-t n:显示第n个终端的进程。
提示:ps通常和重定向、管道等命令一起使用,用于查找出所需的进程。输出内容的第一行的中文解释是:进程的所有者;进程ID号;运算器占用率;内存占用率;虚拟内存使用量(单位是KB);占用的固定内存量(单位是KB);所在终端进程状态;被启动的时间;实际使用CPU的时间;命令名称与参数等。
2.pidof命令
pidof命令用于查询某个指定服务进程的PID值,该命令格式为:
每个进程的进程号码值(PID)是唯一的,因此可以通过PID来区分不同的进程。例如,可以使用如下命令来查询本机上sshd服务程序的PID:
出现三个PID说明当前的sshd服务被开了三个进程。通过ps -ef |grep sshd查看如上图。
3.kill命令
前台进程在运行时,可以用“Ctrl+C”组合键来终止它,但后台进程无法使用这种方法终止,此时可以使用kill命令向进程发送强制终止信号,以达到目的,例如
上述命令用于显示kill命令所能够发送的信号种类。每个信号都有一个数值对应,例如SIGKILL信号的值为9。kill命令的格式为:
参数选项-s一般跟信号的类型。比如,通过ps查询进程,通过kill -s SIGKILL 进程号 便可结束进程,也可以直接使用kill -9 进程号。
4.killall命令
killall命令用于终止某个指定名称的服务所对应的全部进程,该命令格式为
通常来讲,复杂软件的服务程序会有多个进程协同为用户提供服务,如果逐个去结束这些进程会比较麻烦,此时可以使用killall命令来批量结束某个服务程序带有的全部进程。
此时连接会出现中断,如果想重新连接可以进入虚拟机重新启动sshd服务:systemctl start sshd, 也可以重新启动虚拟机操作系统。
注意:如果在系统终端中执行一个命令后想立即停止它,可以同时按下“Ctrl + C”组合键(生产环境中比较常用的一个组合键),这样将立即终止该命令的进程。或者,如果有些命令在执行时不断地在屏幕上输出信息,影响到后续命令的输入,则可以在执行命令时在末尾添加上一个&符号,这样命令将进入系统后台来执行。
5.top命令
和ps命令不同,top命令可以实时监控进程的状况。top屏幕自动每5秒刷新一次,也可以用“top -d 20”,使得top屏幕每20秒刷新一次。
6.at命令
如果想在特定时间运行Linux命令,可以将at添加到语句中。语法是at后面跟着希望命令运行的日期和时间,然后命令提示符变为at>,这样就可以输入在上面指定的时间运行的命令。