Linux命令(全)零基础入门,包含使用方法等

1.cd

它的用法就是改变当前工作目录

cd /:进入根目录。

cd ~:进入当前用户的主目录。

cd ..:进入上一级目录。

cd -:进入上一次所在的目录。

cd /path/to/dir:进入指定路径下的dir目录。

cd ./dir:以当前目录为参考进入指定dir目录。

cd ~/dir:以当前用户的主目录为参考进入指定dir目录。

注:cd对大小写敏感

2.ls

它的用法是显示目录中的文件和子目录

-a 列出目录下的一切文件,包含以 . 最初的隐含文件。

-m 横向输出文件名,并以“,”作分格符。

-c 以最后一次修改时间来排序列表。

-R 列出一切子目录下的文件。

-l 列出文件的具体信息。

-s 每个文件的后面打印出文件的大小。

复合命令:

ls -lh -a:长格式列出当前目录中所有文件和隐藏文件,并且文件大小是人类可读的

ls -lh lianxi:查看lianxi的大小,并将lianxi中的文件列出来;此外想查看某个文件大小,而不将子目录等列出来,可以使用du -h lianxi:列出lianxi文件大小

3.rm

它的用法是用于删除文件和目录。

-f:强制删除,忽略不存在的文件,不提示。

-i:交互式删除,每个文件删除前都会询问用户。

-r 或 -R:递归删除,用于删除目录及其内容。

-v:显示详细信息,列出被删除的文件。

复合命令:

rm -f file.txt:强制删除file.txt文件 rm -i file1.txt file2.txt:交互式删除file1.txt和file2.txt文件

rm -r folderName:递归删除folderName目录 rm -v file.txt:删除file.txt并显示详细信息

rm -rf folderName:强制递归删除目录folderName rm -ri folderName:交互式递归删除目录folderName

注:

rm命令删除的文件默认无法恢复,使用时需谨慎。 ​ 使用-f参数时特别小心,因为它不会提示就直接删除文件。 ​ 对于重要文件,建议先备份再删除。

4.mkdir

它的用法就是创建目录。

-p:递归创建目录,即如果要创建的目录的上级目录不存在,会自动创建上级目录。

-m:设置新目录的权限模式。 -v:显示创建过程中的详细信息。

-q:静默创建目录,不显示任何输出信息。(这在自动化脚本或批量创建目录时非常有用,因为它可以避免输出信息干扰脚本的执行过程或结果‌)

用法:

mkdir dir:创建dir目录。

mkdir dir1 dir2:创建多个目录,dir1和dir2。

mkdir -p parent_dir/child_dir:创建多级目录(创建parent_dir目录,并在parent_dir下创建child_dir目录)。

mkdir -m 755 dir:使用指定权限创建目录dir(读权限的数值是4,写权限的数值是2,执行权限的数值是1)。

mkdir -v dir:创建目录dir,并输出信息性消息。 mkdir -q dir:创建目录dir,不输出任何消息。

拓展:

mkdir -p /parent_dir/child_dir && chown user:group /parent_dir/child_dir:创建目录并设置其所有者和所属组,其中/parent_dir/child_dir为目录,user为目录所有者用户名,group为所属组的组名。

5.touch

它的用法就是更新文件的访问和修改时间。如果文件不存在,touch将创建一个新空文件。

用法:

touch demo.txt:更新文件demo.txt的时间戳。

touch -t 202408222121 demo1.txt:为demo1.txt设置特定时间戳(2024年8月22日21:21)

touch demo1.txt:创建新文件demo1.txt。

(拓展:echo > demo1.txt:使用echo命令可以将文本输出到指定的文件中,如果该文件不存在,则会创建该文件。 cat > demo1.txt:如果将一个空的文件名作为参数传递给cat命令,它会创建一个空文件。 vi demo1.txt:编辑文件,如果文件不存在则创建文件并进行编辑,执行指令进入编辑中按esc,输入:后再输入wq,即可保存退出)

touch远程创建文件:

1、ssh远程执行touch命令创建文件 ssh username@remote_host 'touch /path/to/remote/file.txt':这里的username是您在远程主机上的用户名,remote_host是远程主机的IP地址或域名,/path/to/remote/file.txt是远程文件的完整路径。

2、如果远程主机使用的是不同的SSH端口,您需要使用-p选项指定端口 ssh -p port username@remote_host 'touch /path/to/remote/file.txt':-p用于指定端口,port为实际端口号

6.vim

它是Linux系统中一个非常流行的文本编辑器。

Vim具有三种模式:‌命令模式‌、‌输入模式‌和‌编辑模式(末行模式)‌,用户可以在这些模式之间自由切换以执行不同的操作。

命令模式‌:这是Vim启动后的默认模式,用户可以在此模式下使用键盘命令进行文本编辑,如移动光标、复制、粘贴、删除等操作。例如,使用h、j、k、l键可以分别向左、下、上、右移动光标。要进入输入模式进行文本编辑,可以按i、a、o等键。 ‌输入模式‌:在输入模式下,用户可以直接输入文本。要退出输入模式并返回到命令模式,需要按Esc键。

‌编辑模式(末行模式)‌:通过在命令模式下按:键可以进入编辑模式,也称为末行模式。在此模式下,用户可以执行保存文件、退出编辑器等操作,如:w保存文件而不退出,:q退出编辑器而不保存更改,:wq保存更改并退出。 

例如:vim demo1.text:编辑文件demo1.text,如果文件不存在则创建文件并进行编辑,执行指令进入编辑中按i、a、o等键可以进行编辑,编辑完成后按esc,输入:后再输入wq,即可保存退出

使用技巧:

切换到命令模式‌:通过按下Esc键,可以从插入模式切换到命令模式。 ‌移动光标‌:使用h(左)、j(下)、k(上)、l(右)键移动光标,或者使用w移动到下一个单词开头,b移动到上一个单词开头,0移动到行首,$移动到行尾。 ‌插入文本‌:在命令模式下,按下i键进入插入模式,然后开始输入文本。 ‌保存文件‌:在命令模式下输入,然后按下回车键保存文件。 ‌退出Vim‌:在命令模式下输入退出Vim,如果需要保存并退出,则输入。强制退出不保存可以使用!。 ‌复制粘贴文本‌:使用v键选择文本,然后按下y键复制,按下p键粘贴。 ‌搜索文本‌:在命令模式下输入/关键词,然后按下回车键进行搜索。 ‌替换文本‌:在命令模式下输入:%s/要替换的内容/替换后的内容/g,然后按下回车键进行替换。 ‌撤销操作‌:在命令模式下输入u撤销上一步操作。 ‌多文件编辑‌:使用 filename命令打开文件,使用或切换到下一个缓冲区,或切换到上一个缓冲区。 ‌窗口分割‌:使用 filename或 filename命令水平分割窗口, filename或 filename命令垂直分割窗口。 ‌配置Vim‌:Vim的配置文件为~/.vimrc,可以在其中添加配置来定制Vim的行为。 掌握这些技巧,可以大大提高在Linux系统中使用Vim编辑器的效率‌

7.cat

它是一个 Linux 命令行工具,用于查看、创建和连接文件。

用法:

cat file:查看file内容。

cat > file:创建file,输入内容,按 Ctrl+D 结束。

cat >> file:追加内容到文件file,按 Ctrl+D 结束。

cat file1 file2 > file3:合并文件,将file1、file2合并到file3。

cat -n file:显示行号。

cat -n file | tail -n +N:从第 N 行开始显示。

cat file | tac:反向显示文件内容(从底部开始)。

cat /dev/null > file:创建空文件。

cat filename | tail -n N:显示文件的最后 N 行。

cat filename | head -n N | tail -n 1:显示文件的第 N 行。

8:tail

它在Linux中用于显示文件的最后几行。

用法:

tail fire:显示fire文件的最后10行

tail -n 20 fire:显示fire文件的最后20行

tail -f fire:实时跟踪文件末尾的变化

tail -n +N file:从第N行开始显示,直到文件末尾

注:

tail命令用于显示文件的末尾内容,而tailf命令实际上是tail -f的别名,它们都用于实时监控文件的新增内容。然而,它们之间存在一些细微的区别。 tailf用于实时显示文件的最新内容。如果文件不增长,它不会去访问磁盘文件,因此特别适合那些便携机上跟踪日志文件,因为它减少了磁盘访问,可以省电。 如果你需要一直查看一个日志文件的最新内容,并且不关心文件是否被删除或重命名,那么使用tail -f或tailf都是合适的。 如果你希望在文件被删除或重命名后自动重新打开文件进行追踪,那么应该使用tail -F命令(等同于--follow=name --retry),尽管直接使用tailf或tail -F的场合较少,因为通常通过tail -F来指定。

9.grep

它用于在文件中搜索字符串。它支持使用正则表达式进行复杂的搜索模式。

用法:

-i:不区分大小写地搜索。

-v:显示不包含匹配文本的所有行。

-n:显示匹配行的行号。

-r 或 -R:递归地搜索每个目录下的文件。

-l:只列出包含匹配文本的文件名,而不列出具体匹配的行。

-w:只匹配整个单词。

-c:计算匹配的行数。

-e:指定多个模式。

-E:使用扩展正则表达式。

实例:

grep "hello" fire.txt:搜索文件 "fire.txt" 中包含 "hello" 的所有行

grep -i "hello" fire.txt:不区分大小写搜索文件 "fire.txt" 中包含 "hello" 的所有行

grep -n -R "hello" :在当前目录及子目录下搜索 "hello" 并显示行号

grep -c "hello" fire.txt:在fire.txt统计包含 "hello" 的行数

grep -E "^h.*o$" fire.txt:使用扩展正则表达式搜索 "hello"

10.find

它用于在指定目录下查找文件。

用法:

-name firename:根据文件名搜索文件,firename是文件名。

-type type:根据文件类型搜索文件,type 可以是 f(普通文件)、d(目录)、l(链接)等。

-size [+-]SIZE:根据文件大小搜索文件,SIZE 是数字加单位(如 k、M、G)。

-mtime DAYS:根据文件修改时间搜索文件,DAYS 是天数。

实例:

find . -type f -name ".sh":在当前目录及其子目录下查找所有 .sh 文件

find /home -type f -size +100k:在 /home 目录下查找大于 100k 的文件

find /var/log -type f -mtime -7:在 /var/log 目录下查找修改时间在 7 天以内的所有文件

find /etc -type f -name "hello":在 /etc 目录下查找文件名以 hello开头的文件

11.locate

它是用于快速查找文件系统中的文件或目录。

实例:

locate file.txt:查询文件file.txt

locate /home/*.sh:查找 /home 目录下所有以 .sh结尾的文件

注:

使用 locate 之前,你可能需要先更新数据库。这通常是通过 sudo updatedb 命令完成的。 locate 是一个非实时查找命令,它可能不会显示最新创建或最近移动到文件系统中的文件。 如果你对文件系统做出了更改(如创建或删除文件),你应该在运行 locate 之前运行 sudo updatedb,以确保数据库是最新的。

12.cp

它用于复制文件和目录。

用法:

-r 或 --recursive:递归复制,用于复制目录及其子目录。

-f 或 --force:强制覆盖目标文件,不提示确认。

-n 或 --no-clobber:不覆盖目标文件,若目标文件已存在则跳过。

-a 或 --archive:归档复制,用于复制文件或目录的所有属性,包括权限、时间戳等。

实例:

cp file.txt /home/user/Documents/:将file.txt复制到/home/user/Documents/目录下。

cp file1.txt file2.txt /home/user/files/:将把file1.txt和file2.txt复制到/home/user/files/目录下。

cp -r /tmp/dir1 /home/user/dir1/:将递归地把/tmp/dir1目录及其内容复制到/home/user/dir1/目录下。

13.scp

它是是Linux系统中用于安全地复制文件或目录的工具。

用法:

-r:递归复制整个目录。

-P(大写):指定远程主机的端口号。

-p:保留文件的原始属性(如权限、时间戳等)。

-v:显示详细的传输信息。

-i:指定用于身份验证的私钥文件。

-q:静默模式,不显示进度和错误消息。

-C:在传输过程中启用压缩,以减少网络传输时间。

实例:

scp file.txt username@remotehost:/home/username/:将file.txt复制到远程主机remotehost的/home/username/目录。

scp username@remotehost:/home/username/file.txt /home/localuser/:将远程主机remotehost上的/home/username/file.txt复制到本地目录/home/localuser/

scp -r localdir username@remotehost:/home/username/:将本地目录localdir及其所有内容复制到远程主机remotehost的/home/username/目录

scp -P 2222 localfile.txt username@remotehost:/home/username/:通过端口2222复制文件到远程主机

scp -i ~/.ssh/id_rsa localfile.txt username@remotehost:/home/username/:使用私钥~/.ssh/id_rsa将文件复制到远程主机

14:ln

它是Linux系统中用于创建链接的工具,它支持创建两种类型的链接,即硬链接和符号链接(也称为软链接)。

用法:

-s:建立软链接文件。如果不加“-s”选项,则建立硬链接文件。

-f:强制执行。如果目标文件已经存在,则删除目标文件后再建立链接文件。

-i:在创建链接之前进行交互式确认。

-n:把符号链接视为普通文件。

-v:显示详细的输出信息。

实例:

硬链接:

硬链接会创建一个新的inode(索引节点),该inode指向原文件的数据。因此,硬链接与原文件共享数据,但不能跨文件系统。创建硬链接不会移动原文件。

ln file link_file

符号链接(软连接):

符号链接是一个指向另一个文件的指针。当你跟随符号链接时,你会找到它引用的文件。符号链接可以跨文件系统,并且可以指向目录。

ln -s target link_file

创建一个指向/etc/passwd的硬链接和一个符号链接:

ln /etc/passwd passwd.hlink:硬

ln -s /etc/passwd passwd.slink:软

15.chmod

它是用于修改文件或目录的权限。

用法:

u: 用户(文件所有者)

g: 组

o: 其他用户

a: 所有人(相当于ugo)

+: 增加权限

-: 减少权限

=: 设置权限

r: 读权限

w: 写权限

x: 执行权限

X: 仅当文件是目录或已有执行权限时才设置执行权限

s: 设置用户或组ID

t: 粘滞位

八进制模式‌使用数字来表示权限,每个权限位用一个八进制数表示:

4: 读权限

2: 写权限

1: 执行权限

777:读、写、执行权限(rwxrwxrwx)

775:读、写、执行权限,但组和其他用户只有读和执行权限(rwxrwxr-x)

755:读和执行权限,组和其他用户只有读权限(rwxr-xr-x)‌

实例:

chmod u+x file.txt:给文件所有者增加执行权限

chmod go-w file.txt:给组和其他人减少写权限

chmod a=r file.txt:给所有人设置只读权限

chmod 755 file.txt:设置文件所有者为读、写、执行权限;组为读、执行权限;其他人也为读、执行权限。

chmod 644 file.txt:设置文件所有者为读、写权限;组为读权限;其他人也为读权限

16.chgrp

它用于更改文件或目录的所属群组。

用法:

-R:递归处理,将指定目录下的所有文件和子目录的所属用户组一起修改。

-h:如果指定的文件是一个符号链接,则对符号链接指向的文件进行操作,而不是对符号链接本身进行操作。

实例:

chgrp users /path/to/file.txt:将文件file.txt的所属用户组更改为users

此外,chgrp命令还支持其他参数,如: -c 或 --changes:效果类似-v参数,但仅回报更改的部分。 -f 或 --quiet 或 --silent:不显示错误信息。 -v 或 --verbose:显示指令执行过程。 --help:在线帮助。 --reference=<参考文件或目录>:使用指定的参考文件或目录的群组设置。

17.chown

它用于更改文件或目录的所有者和/或组。

用法:

-R:递归地更改目录及其下面的所有文件和子目录的所有权。

-v:显示详细的操作信息,例如成功更改的文件或目录。

-c:仅显示更改的所有权的信息

实例:

chown john file1.txt:将文件file1.txt的所有权更改为用户john

chown john:users file1.txt:同时更改用户和组,将file1.txt的所有权更改为用户john和组users

18.passwd

它包括修改用户密码、锁定和解锁用户账户、设置密码过期等。

--修改用户密码‌: 修改当前用户的密码,只需输入passwd命令,系统会提示输入当前用户的旧密码,然后要求输入新的密码两次进行确认。 修改其他用户的密码,需要使用sudo权限,命令为sudo passwd 用户名。输入root用户的密码后,要求输入新密码两次进行确认。 --锁定和解锁用户账户‌: 使用passwd --lock 用户名命令可以锁定用户账户,禁止用户登录。 使用passwd --unlock 用户名命令可以解锁被锁定的用户账户,允许用户登录。 --设置密码过期‌: 使用passwd --expire 用户名命令可以设置用户的密码为过期状态,用户下次登录时需要更改密码。 --删除用户密码‌: 使用passwd -d 用户名命令可以删除用户的密码,通常用于设置密码为空。 ‌查看密码状态‌: 使用passwd -S 用户名可以查看用户密码的状态,包括账户是否被锁定或密码是否已过期等信息。 --其他选项‌: passwd --help可以查看passwd命令的帮助信息,列出所有可用的选项。 在使用passwd命令时,请确保你有足够的权限来修改用户密码,以及确保输入的密码是安全的。

19.rz/sz

rz和sz命令是利用ZModem协议进行文件传输的工具,分别用于从本地向远程Linux服务器上传文件和从远程Linux服务器向本地下载文件。

rz:

-a:以文本方式传输(ASCII)。

-b:以二进制方式传输。

-e:对控制字符进行转义,以确保文件传输正确。

实例‌: 上传单个文件:rz filename

上传多个文件:rz file1 file2 file3

上传文件夹:先将文件夹打包成tar.gz格式,然后使用rz命令上传打包文件。

sz:

a:以文本方式接收(ASCII)。

-b:以二进制方式接收。

-e:对控制字符进行转义。

实例‌: 下载单个文件:sz filename

下载多个文件或整个目录(通过打包后上传整个打包文件再下载):根据打包和上传时的操作进行相应的下载操作。

20.yum

它是是Linux系统中用于管理软件包的工具,它基于RPM包管理系统,能够自动处理依赖关系,并从指定的服务器自动下载和安装RPM包。

安装软件包‌:使用yum install命令可以安装指定的软件包。例如,要安装Apache HTTP服务器,可以运行命令sudo yum install httpd。 ‌

更新软件包‌:使用yum update命令可以更新系统中已安装的软件包到最新版本。要更新所有已安装的软件包,可以运行命令sudo yum update。 ‌

搜索软件包‌:使用yum search命令可以搜索指定的软件包。例如,要搜索与Apache相关的软件包,可以运行命令sudo yum search apache。 ‌

列出已安装的软件包‌:使用yum list installed命令可以列出系统中已安装的软件包。要列出所有已安装的软件包,可以运行命令sudo yum list installed。 ‌

删除软件包‌:使用yum remove命令可以删除指定的软件包。例如,要删除Apache HTTP服务器,可以运行命令sudo yum remove httpd。 ‌

清理缓存‌:使用yum clean命令可以清理YUM的缓存。例如,要清理所有缓存,可以运行命令sudo yum clean all。

21.curl

它是一个强大的命令行工具,用于发送HTTP请求和接收数据。

发送GET请求‌:默认情况下,curl发送GET请求。例如,要获取Example Domain的内容,只需在命令行中输入curl Example Domain。 ‌设置代理‌:使用-x参数可以设置HTTP请求的代理。例如,如果想要通过socks5://james:cats@myproxy.com:8080代理发送请求,可以使用命令curl -x socks5://james:cats@myproxy.com:8080 Example Domain。如果不指定代理协议,默认使用HTTP协议。 ‌

指定HTTP请求方法‌:使用-X参数可以指定HTTP请求的方法。例如,要向Example Domain发送POST请求,可以使用命令curl -X POST Example Domain。 ‌

发送自定义请求头‌:使用-H参数可以发送自定义的请求头。例如,要设置User-Agent头为Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36,可以使用命令curl -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" Example Domain。 ‌

上传文件‌:使用-F参数可以上传文件。例如,要上传一个名为file.txt的文件到服务器,可以使用命令curl -F "file=@file.txt" http://upload.example.com/upload。 ‌

接收数据并保存‌:使用重定向操作符(>>)可以将接收到的数据保存到文件中。例如,要将Example Domain的内容保存到example.html文件中,可以使用命令curl Example Domain > example.html。 ‌

发送JSON数据‌:在发送JSON数据时,需要设置header的Content-Type为application/json,并使用-d或--data参数指定要发送的JSON字符串。例如,要发送JSON数据到服务器,可以使用命令curl -X POST -H "Content-Type: application/json" -d '{"name":"John", "age":30}' http://api.example.com/data

22.wget

它是Linux系统中用于从指定的URL下载文件的工具。

用法:

-O:指定下载的文件名。

-c:断点续传,即从上次下载中断的地方继续下载。

-b:后台下载。

-q:静默模式,不输出下载信息。

-t:重试下载次数。

-T:下载超时时间。

-U:User-Agent字符串,用于伪装浏览器或其他客户端身份。

-P:下载到指定目录。

-r:递归下载,即下载指定URL中所有链接指向的文件。

-np:不进入上级目录。

-nd:不创建目录结构。

-nc:不覆盖已存在的文件,即遇到同名文件不进行下载。

-i:从文件中读取URL列表进行下载。

-x:建立基于时间戳的目录结构。

-S:显示服务器返回的HTTP头信息。

实例:

wget https://www.example.com/file.txt:下载一个名为file.txt文件,其URL为https://www.example.com/file.txt

wget -O newfile.txt https://www.example.com/example.txt:将下载的文件保存为不同的文件名,下载文件为example.txt,改为newfile.txt

wget -b https://www.example.com/example.txt:后台下载文件

wget -c https://www.example.com/example.txt:断点续传,载过程中断,可以使用参数-c来继续下载

wget --limit-rate=100k https://www.example.com/example.txt:限速下载

23.tar

它用于处理归档文件,这些归档文件通常用于备份和压缩文件和目录。

用法:

-c: 创建新的压缩文件。

-x: 解压缩文件。

-z: 使用gzip压缩或解压缩。

-v: 显示详细过程(verbose)。

-f: 指定压缩文件或解压缩的文件名。

-C: 解压到指定目录。

实例:

tar -czvf archive.tar.gz directory1:将directory1目录下的所有文件博客子目录打包并压缩为archive.tar.gz文件

tar -xvf archive.tar -C /target/directory:将archive.tar文件提取到/target/directory目录下

tar -cvf archive.tar -T filelist.txt:从filelist.txt中的文件添加到archive.tar中

tar -czvf archive.tar.gz --remove-files directory1:将在创建压缩的归档文件后删除原始的directory1

tar -zxvf archive.tar.gz etc/passwd:只提取档文件中的etc/passwd文件

24.zip

zip命令用于压缩文件和目录,而unzip命令则用于解压缩.zip文件。

用法:

-m:压缩文件并加入压缩文件后,删除原始文件。

-q:不显示指令执行过程。

-r:递归处理,将指定目录下的所有文件和子目录一并处理。

-z:在压缩文件时添加注释。

-d:从压缩文件内删除指定的文件。

-S:包含系统和隐藏文件。

-v:显示指令执行过程或显示版本信息。

-t:把压缩文件的日期设成指定的日期。

-n suffixes 和 -xi list:这些选项提供了更多的控制,例如排除特定文件或目录。

实例:

zip archive.zip file.txt:压缩名为file.txt的文件,生成archive.zip

zip archive.zip file1.txt file2.txt file3.txt:压缩file1.txt file2.txt file3.txt,并生成archive.zip

zip -r archive.zip my_directory/:递归地压缩my_directory/目录及其所有内容。

unzip archive.zip:将archive.zip解压到当前目录

unzip archive.zip -d /path/to/target_directory/:将archive.zip解压到/path/to/target_directory/目录中

25.ps

它用于显示当前系统中活动的进程信息。

用法:

-A:显示所有进程。

-a:显示与当前终端关联的所有进程。

-u:基于用户的格式显示。

-x:显示所有进程,不以终端机来区分。

-e:显示所有进程。

-f:显示完整格式输出。

-l:显示终端进程信息。

-j:工作格式。

-p:显示指定进程的信息。

-o:根据进程状态进行过滤。

-L:显示每个进程的线程

实例:

ps:可以显示当前终端会话中属于当前用户的进程列表。

ps -ef:可以显示系统中所有进程的列表,包括其他用户的进程。

ps -aux:可以显示详细的进程信息,包括CPU和内存使用情况等。

ps -eLf | grep tomcat:查看tomcat线程

ps -T -p tomcatID:查看tomcat线程

26.top

它用于监视系统性能和进程活动。

用法:

q:退出top。

d:改变显示的更新速度。

s:设置屏幕信息刷新之间的时间间隔。

c:显示完整的命令行,而不仅仅是命令名。

S:累积模式,将已消失子进程的CPU时间累积起来。

i:忽略闲置或僵死进程。

o:改变列的显示顺序或进行排序。

h 或 ?:显示帮助信息。

实例:

启动Top命令‌:在终端中输入top并按下回车键即可启动Top命令。 ‌查看进程信息‌:默认情况下,Top命令会显示系统中所有正在运行的进程,以及它们的CPU使用率、内存使用率等信息。你可以通过按下键盘上的1键来查看每个CPU核心的使用情况。 ‌排序进程‌:Top命令默认按照CPU使用率进行排序。你可以按下P键按照CPU使用率排序,按下M键按照内存使用率排序,按下T键按照运行时间排序等。 ‌结束进程‌:如果你需要结束某个进程,可以按下k键,然后输入要结束的进程的PID(进程ID)并按下回车键。 ‌改变刷新频率‌:默认情况下,Top每隔3秒刷新一次信息。你可以按下d键来改变刷新频率,然后输入你希望的刷新时间间隔(单位是秒)。 ‌退出Top命令‌:按下q键即可退出Top命令。

27.kill

它用于终止进程。

使用进程ID(PID)来终止进程‌:首先需要查找要终止的进程的PID,可以使用ps命令来查找进程ID,然后使用kill命令加上进程ID来终止进程。例如,kill <进程ID>。 ‌

使用进程名来终止进程‌:可以直接使用pkill命令来根据进程名终止进程,例如,pkill <进程名>。 ‌

发送不同的信号‌:kill命令可以发送不同的信号到进程,常用的信号包括:

SIGTERM(15):默认信号,用于请求进程终止。

SIGKILL(9):强制终止进程。

SIGSTOP(19):暂停进程。

SIGCONT(18):继续运行暂停的进程。

例如,要强制终止一个进程,可以使用以下命令:kill -9 <进程ID>。 ‌

信号列表‌:使用kill -l命令可以列出所有可用的信号名称。 ‌

调试和资源管理‌:在程序开发过程中,可以使用kill命令向正在运行的程序发送信号,如SIGSTOP暂停程序的执行,进行调试操作;使用SIGCONT恢复程序的执行。

此外,当需要释放系统资源时,可以使用kill命令终止不需要的进程。 ‌特殊情况处理‌:例如,init进程是不可杀的,即使使用kill -9命令也无法终止。此外,僵尸进程的父进程可能已经退出,导致僵尸进程无法被处理,这时也可以使用kill命令来解决。

kill -s STOP PID:暂停进程

kill -s CONT PID:恢复进程

28.killall

它是通过进程名杀死进程。

基本用法:killall hello:杀死名为hello的进程

发送特定信号:killall -9 hello1:强制杀死名为hello1的进程

注:

由于killall命令会匹配所有名为指定名称的进程并发送信号,因此在使用时应谨慎,以免误杀其他不相关的进程。特别是在生产环境中操作时,更应该小心谨慎,避免不必要的服务中断。

29.free

它是一个用于查看系统内存使用情况的工具,它可以显示系统的物理内存、虚拟内存(swap空间)、共享内存以及系统缓存的使用情况。

--基本用法‌:在终端中输入free命令,不加任何参数时,free命令会显示系统的总内存、已使用内存、可用内存等信息。默认情况下,free命令以KB为单位显示内存大小,但可以通过添加参数来改变显示的单位,如-b(字节)、-k(KB)、-m(MB)。

--显示详细信息‌:使用-h选项可以以易读的格式(如GB、MB)显示信息,这对于大容量的内存系统非常有用。例如,free -h会以人类可读的格式显示内存信息。

--持续监控‌:使用-s选项可以指定间隔时间持续监控内存使用情况。例如,free -s 3会每隔3秒更新一次内存使用情况。

--输出内容解释‌: Mem行显示物理内存的使用情况,包括total(总内存)、used(已使用内存)、free(可用内存)、shared(共享内存)、buff/cache(buffer和cache占用的内存)。 Swap行显示交换空间的使用情况,包括total(交换空间总大小)、used(已使用的交换空间)、free(未使用的交换空间)。 available列显示的是还可以被应用程序使用的物理内存大小,这个数值是从应用程序的角度看的可用内存量,包括了buffer和cache未被使用的部分。

--Buffer和Cache‌:Buffer和Cache是Linux中的两种内存使用状态,它们分别用于缓存磁盘数据和用于优化系统性能。从应用程序的角度来看,如果系统中的free内存不足,内核会从buffer和cache中回收内存来满足应用程序的需求。因此,available的值通常会比free的值要大,因为它包括了尚未被使用的buffer和cache内存。

30.firewalld

它是管理和控制防火墙的主要工具,它提供了丰富的命令行选项和图形界面工具来配置和管理防火墙规则。

--查看防火墙状态‌:使用systemctl status firewalld命令可以查看防火墙的当前状态。

--开启和关闭防火墙‌:使用systemctl start firewalld命令开启防火墙,使用systemctl stop firewalld命令关闭防火墙。

--设置防火墙开机自启动‌:使用systemctl enable firewalld命令设置防火墙在系统启动时自动运行,使用systemctl disable firewalld命令禁止防火墙开机自启动。

--管理防火墙规则‌:使用firewall-cmd命令行工具来管理防火墙规则。例如,使用firewall-cmd --list-all命令查看当前所有的防火墙规则,使用firewall-cmd --add-port=80/tcp --permanent --zone=public命令添加一个永久开放的TCP 80端口规则,使用firewall-cmd --reload命令重新加载防火墙配置以使更改生效。

--使用图形界面工具‌:除了命令行工具外,还有图形界面工具如firewall-config,它提供了一个可视化的界面来管理和配置防火墙规则,适合不熟悉命令行的用户使用。

--配置文件管理‌:可以在/etc/firewalld/zones/目录下创建或修改区域配置文件,或者直接在/usr/lib/firewalld/zones/目录下使用系统默认的配置文件。这些配置文件是XML格式的,定义了端口、服务和其他防火墙相关的设置。

31.file

它用于检测文件类型。

用法:

-i:输出文件的MIME类型。

-b:仅输出文件类型,不显示文件名。

-z:对压缩文件也进行检测。

-c:详细显示指令执行过程,便于排错或分析程序执行的情形。

-v:显示详细信息。

-f:指定文件过滤器

实例:

file test.txt:检查test.txt文件类型

file *.txt:批量检查txt文件的类型

file -r /path/to/directory:检查directory目录下所有文件类型

file -i test.txt:输出文件test.txt的MIME类型

file -b test.txt:仅输出文件类型,不显示文件名

拓展

time:用于测量程序或命令的执行时间以及系统资源的消耗情况。

--基本用法‌: 使用time命令测量命令或脚本的执行时间非常简单,只需在要测量的命令前加上time即可。例如,time ls会测量ls命令的执行时间。

--显示信息‌: time命令会输出三个主要的时间值:real(实际时间)、user(用户CPU时间)和sys(系统CPU时间)。这些时间值提供了关于命令执行效率的详细信息。 ‌ Real时间‌:从命令开始到结束所经过的实际墙钟时间。 ‌ User时间‌:CPU在用户模式下执行命令所花费的时间。 ‌ Sys时间‌:CPU在内核模式下执行命令所花费的时间。

--详细信息和输出格式‌: 使用-v选项可以获得更详细的输出信息,这对于分析命令的执行过程非常有帮助。 time命令还支持多种选项,如-o或--output=FILE用于将输出写入指定的文件,-a或--append用于将结果追加到文件的末端,而不会覆盖原有内容。 通过-f FORMAT或--format=FORMAT选项,用户可以自定义输出的格式,这有助于更好地理解和分析数据。

--使用独立可执行程序‌: 除了shell内建的time命令外,还有一个独立的/usr/bin/time程序,它提供了更多的功能和更详细的输出。例如,使用/usr/bin/time find . -name "mysql.sh"可以测量在当前目录下查找名为"mysql.sh"的文件所花费的时间和资源使用情况。

--输出文件和时间资源‌: time命令还可以显示关于命令执行过程中的文件操作和资源使用情况,如输入输出的次数、页面错误等,这对于分析命令对系统资源的使用情况非常有用。

crontab:用来定期执行程序的工具。

crontab -l:查看当前用户的定时任务

crontab -e:编辑定时任务,这将会打开一个编辑器

0 5 * * * /usr/bin/rm -rf /tmp/*:前面五位表示分时日月周,每天早上5点清空/tmp目录

crontab -r:删除当前用户的定时任务

*/5 * * * * <command to be executed>:每5分钟执行一次

*/5 1-3 * * * <command to be executed>:1到3点每5分钟执行一次

|:称为‌管道符,它主要用于将两个或多个命令连接起来,把一个命令的输出作为下一个命令的输入。

例如,grep "error" logfile.txt | sort | uniq -c 命令序列中,grep 用于查找包含关键字 "error" 的行,sort 对结果进行排序,而 uniq -c 则用于去重并统计出现次数。

clear:用于清除当前屏幕终端上的任何信息。

它的主要作用是清空当前终端屏幕上的内容。然而,这里的“清空”并不是真正意义上的从内存中删除或清除数据,而是通过将之前的内容向上滚动,使得新内容能够显示在终端屏幕的顶部,从而给用户一种屏幕被清空的感觉。这种操作实际上并没有真正删除任何数据,而是通过视觉上的调整,让用户感觉到屏幕被清空了,从而提高工作效率。

  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值