linux常用命令、bash语法学习笔记,持续记录

12,057次阅读
没有评论

共计 11832 个字符,预计需要花费 30 分钟才能阅读完成。

命令相关

linux 命令存储以下位置:

  • /bin(指向 /usr/bin)目录, 包含基本的用户命令, 默认全体用户都可使用, 例如 curl,ls 命令
  • /sbin(指向 /usr/sbin),/usr/local/sbin, 存放需要 root 权限的命令以及工具, 默认 root 用户使用, 例如 ip,halt 命令
  • /usr/local/bin 给用户放置自己的可执行程序的地方, 不会被系统升级覆盖
  • /usr/local/sbin 给管理员放置自己的可执行程序的地方, 不会被系统升级覆盖

如果在每个命令目录都存在某个命令时, 通过系统的 $PATH 变量决定优先级

echo $PATH 
# 每台电脑输出不同,/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/protobuf/bin/:/root/bin

所以, 当输入 ls 命令, 点击回车时, 系统会以此从各个目录找到这个命令文件, 然后执行该文件.

如果你的程序命令没有放在以上文件夹, 我们也可通过相对路径以及绝对路径启动该命令:

./php -m #当你在 php 命令文件目录中时,
/www/server/php/72/bin/php -m, 宝塔 php 命令目录

根据这个原理, 我们可以安装多个 php 版本, 并启动

/www/server/php/72/bin/php -m
/www/server/php/56/bin/php -m

1. 修改环境变量

# 临时改变,只能在当前的终端窗口中有效,当前窗口关闭后就会恢复原有的 path 配置
$ export PATH=/usr/local/mongodb/bin:$PATH

# 永久有效,仅对当前用户
# 编辑
$ vim ~/.bashrc 
# 最后一行加上
export PATH=/usr/local/mongodb/bin:$PATH
# 读取并执行文件中的命令
$ source ~/.bashrc

# 修改 profile,对所有用户生效(所有用户登录都会使用该文件构建用户环境)$ vim /etc/profile
$ export PATH=/usr/local/mongodb/bin:$PATH

基本语法

1.“;”分号用法

方式:command1 ; command2

用; 号隔开每个命令, 每个命令按照从左到右的顺序, 顺序执行,彼此之间不关心是否失败,所有命令都会执行。

2.“|”管道符用法

上一条命令的输出,作为下一条命令参数

方式:command1 | command2

Linux 所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推

利用一个管道# rpm -qa|grep licq

这条命令使用一个管道符“|”建立了一个管道。管道将 rpm -qa 命令的输出(包括系统中所有安装的 RPM 包)作为 grep 命令的输入,从而列出带有 licq 字符的 RPM 包来。

3.“||”符号用法

逻辑或的功能

语法格式如下:

command1 || command2 [|| command3 …]

命令之间使用 || 连接,实现逻辑或的功能。

只有在 || 左边的命令返回假(命令返回值 $? == 1),|| 右边的命令才会被执行。这和 c 语言中的逻辑或语法功能相同,即实现短路逻辑或操作。

4.“&”符号用法

& 放在启动参数后面表示设置此进程为后台进程

方式:command1 &

默认情况下,进程是前台进程,这时就把 Shell 给占据了,我们无法进行其他操作,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个 ’&’ 实现这个目的。

5.“&&”符号用法

shell 在执行某个命令的时候,会返回一个返回值,该返回值保存在 shell 变量 $? 中。当 $? == 0 时,表示执行成功;当 $? == 1 时(我认为是非 0 的数,返回值在 0 -255 间),表示执行失败。

有时候,下一条命令依赖前一条命令是否执行成功。如:在成功地执行一条命令之后再执行另一条命令,或者在一条命令执行失败后再执行另一条命令等。shell 提供了 && 和 || 来实现命令执行控制的功能,shell 将根据 && 或 || 前面命令的返回值来控制其后面命令的执行。

语法格式如下:

command1 && command2 [&& command3 …]

命令之间使用 && 连接,实现逻辑与的功能。

只有在 && 左边的命令返回真(命令返回值 $? == 0),&& 右边的命令才会被执行。

只要有一个命令返回假(命令返回值 $? == 1),后面的命令就不会被执行。

6. linux > 和 >>、<区别

linux 中经常会用到将内容输出到某文件当中,只需要在执行命令后面加上>或者>>号即可进入操作。

大于号:将一条命令执行结果(标准输出,或者错误输出,本来都要打印到屏幕上面的)重定向其它输出设备(文件,打开文件操作符,或打印机等等)

小于号:命令默认从键盘获得的输入,改成从文件,或者其它打开文件以及设备输入

>> 是追加内容

>   是覆盖原有内容

参考:https://www.cnblogs.com/fnlingnzb-learner/p/6839669.html

网络工具

它不依赖内核中的模块。当我们的服务器网络异常时,可以通过运行 nethogs 程序来检测是那个程序占用了大量带宽。节省了查找时间。

yum install nethogs
nethogs
sysstat
iostat -x 1 10

测压工具

1. 安装

如果不想安装 apache 但是又想使用 ab 命令,可以直接安装 apache 的工具包 httpd-tools。

# 安装
yum -y install httpd-tools 
#使用
ab [options] [http[s]://]hostname[:port]/path 

2. 命令参数

-A auth-username:password
对服务器提供 BASIC 认证信任。用户名和密码由一个: 隔开,并以 base64 编码形式发送。无论服务器是否需要(即, 是否发送了 401 认证需求代码),此字符串都会被发送。-c concurrency
一次产生的请求个数。默认是一次一个。-C cookie-name=value
对请求附加一个 Cookie: 行。其典型形式是 name=value 的一个参数对。此参数可以重复。-d 显示”percentage served within XX [ms] table”的消息(为以前的版本提供支持)。-e csv-file
产生一个以逗号分隔的 (CSV) 文件,其中包含了处理每个相应百分比的请求所需要 (从 1% 到 100%) 的相应百分比的 (以微妙为单位) 时间。由于这种格式已经“二进制化”,所以比’gnuplot’格式更有用。-g gnuplot-file
把所有测试结果写入一个’gnuplot’或者 TSV (以 Tab 分隔的)文件。此文件可以方便地导入到 Gnuplot, IDL, Mathematica, Igor 甚至 Excel 中。其中的第一行为标题。-h 显示使用方法。-H custom-header
对请求附加额外的头信息。此参数的典型形式是一个有效的头信息行,其中包含了以冒号分隔的字段和值的对 (如,“Accept-Encoding: zip/zop;8bit”).

-i 执行 HEAD 请求,而不是 GET。-k 启用 HTTP KeepAlive 功能,即, 在一个 HTTP 会话中执行多个请求。默认时,不启用 KeepAlive 功能.

-n requests
在测试会话中所执行的请求个数。默认时,仅执行一个请求,但通常其结果不具有代表意义。-p POST-file
包含了需要 POST 的数据的文件.

-P proxy-auth-username:password
对一个中转代理提供 BASIC 认证信任。用户名和密码由一个: 隔开,并以 base64 编码形式发送。无论服务器是否需要(即, 是否发送了 401 认证需求代码),此字符串都会被发送。-q 如果处理的请求数大于 150,ab 每处理大约 10% 或者 100 个请求时,会在 stderr 输出一个进度计数。此 - q 标记可以抑制这些信息。-s 用于编译中 (ab - h 会显示相关信息) 使用了 SSL 的受保护的 https,而不是 http 协议的时候。此功能是实验性的,也是很简陋的。最好不要用。-S 不显示中值和标准背离值,而且在均值和中值为标准背离值的 1 到 2 倍时,也不显示警告或出错信息。默认时,会显示 最小值 / 均值 / 最大值等数值。(为以前的版本提供支持).

-t timelimit
测试所进行的最大秒数。其内部隐含值是 -n 50000。它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。-T content-type
POST 数据所使用的 Content-type 头信息。-v verbosity
设置显示信息的详细程度 - 4 或更大值会显示头信息,3 或更大值可以显示响应代码(404, 200 等), 2 或更大值可以显示警告和其他信息。-V 显示版本号并退出。-w 以 HTML 表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。-x -attributes
设置 
属性的字符串。此属性被填入
. -X proxy[:port] 对请求使用代理服务器。-y -attributes 设置 属性的字符串. -z
-attributes 设置 属性的字符串.

对 json.im 进行,1000 次请求,并发用户 10 的压力测试

ab -n 1000 -c 10 https://json.im
  • -n 1000 表示请求总数为 1000
  • -c 10 表示并发用户数为 10

3. 登录问题

对于实际场景中经常需要用的登录问题,如果接口需要验证 Cookie,那么使用 - C 写到 Cookie 内容

$ ab -n 100 -C key=value https://json.im
# 或者使用 -H 带 Cookie 自定义多个字段

$ ab -n 100 -H "Cookie: Key1=Value1; Key2=Value2" http://localhost
# 测试接口 Header 传入 token

$ ab -n 1000 -c 10 -H 'token:abc' https://json.im 

常用命令

1. ls 命令

ls 命令查看当前目录中的文件信息,格式:ls [选项] [文件]

ls -a 查看所有文件列表(可查看隐藏文件)ls -l 以列表方式显示文件的详细信息
ls -h 配合 - l 以人性化的方式显示文件大小
ls -l -h 显示文件大小更加直观
ls -lh
ls -hl
ls -lha

ls 通配符的使用

  • * 代表任意数个字符
  • ? 代表任意一个字符,至少 1 个
  • [] 表示可以匹配字符组中的任一一个
  • [abc] 匹配 a、b、c 中的任意一个
  • [a-f] 匹配从 a 到 f 范围内的任意一个
ls 1*
ls *1.txt
ls *3*
ls 1?1.txt
ls [123]23.txt
ls [1-3]23.txt

2. cd 命令

cd 命令用于切换工作路径,格式:cd [目录名]

linux 下文件和目录特点:

  • . 代表当前目录
  • .. 代表上一级目录
cd 切换目录
cd ~ 切换到当前用户的主目录(家目录~)cd . 保持在当前目录不变
cd .. 切换到上级目录
cd - 可以在最近两次工作目录之间来回切换

3. touch 命令

touch 命令用于创建空白文件或设置文件的时间,格式: touch [选项] [文件]。

参数:

  • -a 仅修改“读取时间”(atime)
  • -m 仅修改“修改时间”(mtime)
  • -d 同时修改 atime 和 mtime

touch 文件名 如果文件不存在,可以创建一个空白文件;如果文件已存在,可以修改文件的末次修改日期

4. mkdir 命令

mkdir 命令用于创建空白的目录,格式:mkdir [选项] 目录。

参数:

  • -p 可以递归递归创建出具有嵌套叠层关系的文件目录
  • mkdir 文件夹名 创建一个新的目录
  • mkdir -p a/b/c/d 递归创建多个目录

5. pwd 命令

pwd 命令用于查看当前所在文件夹目录

6. clear 命令

clear 命令用于清屏

7. rm 命令

rm 命令用于删除文件或目录,格式:rm [选项] 文件。

rm 删除文件或目录
rm -f 强制删除,忽略不存在的文件,无需提示
rm -r 递归地删除目录下的内容,删除文件夹时必须加此参数
rm *1.txt 删除以 1.txt 结尾的所有文件
rm -r *
rm -rf * 强制删除该文件夹中所有文件(删除完成不可恢复)

8. cp 命令

cp 命令用于复制文件或目录,格式:cp [选项] 源文件 目标文件。

cp -f -r * /home/wwwroot/default
  • 如果目标文件是目录,则会把源文件复制到该目录中;
  • 如果目标文件也是普通文件,则会询问是否要覆盖它;
  • 如果目标文件不存在,则执行正常的复制操作。
cp 源文件 目标文件 复制文件或目录
cp -i 源文件名 目录名 覆盖文件前提示
cp -r 源文件名 目录名 若给出的源文件是目录文件,则 cp 将递归复制该目录下的所有子目录和文件,目标文件必须为一个目录名
cp -d 源文件 目标文件 若对象为“链接文件”,则保留该“链接文件”的属性
cp -p 源文件 目标文件 保留原始文件的属性
cp -a 源文件 目标文件 相当于 -pdr

9. mv 命令

mv 命令用于移动文件或将文件重命名,格式: mv [选项] 源文件 [目标路径 | 目标文件名]。

mv 源文件 目标文件 移动文件或目录 / 重命名文件或目录
mv 文件名 目标文件目录
mv -i 文件名 目标文件目录 覆盖文件前提示
-b	若需覆盖文件,则覆盖前先行备份。-f	若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文 件或目录。-i	覆盖前先行询问用户。-u	在移动或更改文件名时,若目标文件已存在,且其文件日期比源文件新,则不覆盖目标文件。-v	执行时显示详细的信息。

10. tree 命令

tree [目录名] 以树状图列出文件目录结构,tree -d 只显示目录信息

11. cat 命令

cat 命令用于查看内容较少的纯文本文件,格式:cat [选项] [文件]。

cat 文件名 查看文件内容、创建文件、文件合并、追加文件内容等功能,会一次性显示所有的内容,适合查看内容较少的文本文件
cat -b 文件名 对非空文件内容,显示行编号
cat -n 文件名 对输出的所有内容,显示行编号

12. more 命令

more 命令用于查看内容较多的纯文本文件,格式:more [选项] 文件。

more 文件名 分屏显示文件内容,每次只显示一页内容,适合内容较多的文本文件

使用 more 的操作键:

  • 空格键:显示手册页的下一屏
  • Enter 键:一次滚动手册页的一行 b:回滚一屏
  • f:前滚一屏
  • q:退出

13. less 命令

less 命令用于查看文件的内容,less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件,格式:less [选项] 文件。

使用 less 的操作键:more 命令的所有按键 less 都支持

  • 空格键:显示手册页的下一屏
  • Enter 键:一次滚动手册页的一行
  • b:回滚一屏
  • f:前滚一屏
  • q:退出
  • ↑↓箭头可以实现一行一行的上下翻
  • PageDown/PageUp 可以实现一页一页的上下翻

14. grep 命令

grep 命令用于在文本中执行关键词搜索,并显示匹配的结果,格式: grep [选项] [文件]。

参数:

  • -n 显示匹配行及行号
  • -v 显示不包含匹配文本的所有行(相当于求反)
  • -i 忽略大小写
  • -c 仅显示找到的行数
  • -b 将可执行文件(binary)当作文本文件(text)来搜索

两种模式查找:

  • ^a 行首,搜索以 a 开头的行
  • ke$ 行尾,搜索以 ke 结束的行
  • grep 搜索文本 文件名 搜索文本文件内容
grep as 123.txt 搜索 as
grep -n as 123.txt 搜索 as 显示行号
grep -v as 123.txt
grep -vn as 123.txt
grep -i as 123.txt 搜索 as 忽略大小写
grep -in as 123.txt 搜索 as 忽略大小写显示行号
grep ^f 123.txt 搜索以 f 为行首的内容
grep a$ 123.txt 搜索以 a 为行尾的内容
grep -n a$ 123.txt 搜索以 a 为行尾的内容,并显示行号

15. find 命令

find 命令用于按照指定条件来查找文件,格式:find [查找路径] 寻找条件 操作。

在 Linux 系统中,搜索工作一般都是通过 find 命令来完成的,它可以使用不同的文件特性作为寻找条件(如文件名、大小、修改时间、权限等信息),一旦匹配成功则默认将信息显示到屏幕上。

-name 匹配名称
-perm 匹配权限(mode 为完全匹配,-mode 为包含即可)-user 匹配所有者
-group 匹配所有组
-mtime -n +n 匹配修改内容的时间(- n 指 n 天以内,+ n 指 n 天以前)-atime -n +n 匹配访问文件的时间(- n 指 n 天以内,+ n 指 n 天以前)-ctime -n +n 匹配修改文件权限的时间(- n 指 n 天以内,+ n 指 n 天以前)-nouser 匹配无所有者的文件
-nogroup 匹配无所有组的文件
-newer f1 !f2 匹配比文件 f1 新但比 f2 旧的文件
--type b/d/c/p/l/f 匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件)-size 匹配文件的大小(+50KB 为查找超过 50KB 的文件,而 -50KB 为查找小于 50KB 的文件)-prune 忽略某个目录
-exec ...... { }; 后面可跟用于进一步处理搜索结果的命令(下文会有演示)-exec 参数用于把 find 命令搜索到的结果交由紧随其后的命令作进一步处理,它十分类似于管道符技术,并且由于 find 命令对参数的特殊要求,因此虽然 exec 是长格式形式,但依然只需要一个减号(-)。find [路径] -name "*.py" 查找指定路径下扩展名是.py 的文件,包括子目录
如果省略路径,表示在当前文件夹下查找
例如:find Desktop/ -name "*1*" 搜索桌面目录下,文件名包含 1 的文件
find Desktop/ -name "*.txt" 搜索桌面目录下,所有以.txt 为扩展名的文件
find Desktop/ -name "1*" 搜索桌面目录下,以数字 1 开头的文件
find / -perm -4000 -print 查询整个系统中搜索权限包括 SUID 权限的所有文件 s 输出

输出 120 天之前创建的所有文件:find ./ -type f -mtime +120 -print
删除 120 天之前创建的所有文件:find ./ -type f -mtime +120 -delete

16. tail 命令

tail 命令用于查看纯文本文档的后 N 行或持续刷新内容,格式: tail [选项] [文件]。

  • tail -n 20 文件名 查看文本内容的最后 20 行
  • tail -f 文件名 实时查看文件最新信息

17. head 命令

head 命令用于查看纯文本文档的前 N 行,格式:head [选项] [文件]。

  • head -n 20 文件名 查看文件的前 20 行内容

18. tr 命令

tr 命令用于替换文本文件中的字符,格式: tr [原始字符] [目标字符]。

想要快速地替换文本中的一些内容,可以先使用 cat 命令读取待处理的文本,然后通过管道符把这些文本内容传递给 tr 命令进行替换操作即可。

例如,把 file.txt 文件中的英文全部替换为大写,但是不改变 file.txt 文件内容

19. wc 命令

wc 命令用于统计指定文本的行数、字数、字节数,格式:wc [参数] 文本。

参数:

  • -l 只显示行数
  • -w 只显示单词数
  • -c 只显示字节数

20. stat 命令

stat 命令用于查看文件的具体存储信息和时间等信息,格式:stat 文件名称。

stat 命令可以用于查看文件的存储信息和时间等信息,命令 stat anaconda-ks.cfg 会显示出

文件的三种时间状态(已加粗):Access、Modify、Change。

21. diff 命令

diff 命令用于比较两个文本文件的差异,格式:diff [参数] 文件 1 文件 2。

diff –brief 比较两个文件是否相同
diff -c 详细比较两个文件的差异之处

22. dd 命令

dd 命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式:dd [参数]。

参数:

  • if 输入的文件名称
  • of 输出的文件名称
  • bs 设置每个“块”的大小
  • count 设置要复制的“块”的个数

23. file 命令

file 命令用于查看文件的类型,格式: file 文件名。

24. vi(Visual interface)命令

vi 文件名 如果文件已存在,会直接打开该文件;如果文件不存在,会新建一个文件

末行模式命令:

  • w 保存
  • q 退出
  • q! 强行退出,不保存退出
  • wq 保存并退出
  • x 保存并退出

25. echo 命令

echo 命令用于在终端输出字符串或变量提取后的值,格式:echo [字符串 | $ 变量]。

例如:echo hello java 输出 hello java

echo $JAVA_HOME 输出 java 的环境变量 JAVA_HOME 的路径

26. date 命令

参数:

  • %t 跳格[Tab 键]
  • %H 小时(00~23)
  • %I 小时(00~12)
  • %M 分钟(00~59)
  • %S 秒(00~59)
  • %j 今年中的第几天
  • %d 日
  • %m 月
  • %Y 年

格式化日期:date “+%Y-%m-%d %H:%M:%S”,date “+%j” 查询今天是今年的第几天

27. cal 命令

cal 查看日历,格式:cal [选项]。

  • cal 查看当前月的日历
  • cal -y 查看一年的日历

28. tar 命令

tar 命令用于对文件进行打包压缩或解压,格式:tar [选项] [文件]。

tar -zxvf wp.gz -C /home/wwwroot/default

在 Linux 系统中,常见的文件格式比较多,其中主要使用的是 .tar 或 .tar.gz 或 .tar.bz2 格式。

参数:

  • -c 用于创建压缩文件
  • -x 用于解压文件
  • -t 查看压缩包内有哪些文件
  • -z 用 Gzip 压缩或解压
  • -j 用 bzip 压缩或解压
  • -v 显示压缩或解压的过程
  • -f 目标文件名,f 后面一定是.tar 文件,所以必须放选项最后
  • -p 保留原始的权限与属性
  • -P 使用绝对路径来压缩
  • -C 指定解压到的目录
  • - c 和 -x 参数不能同时使用
  • 用户使用时则是根据文件的后缀来决定应使用何种格式参数进行解压。
  • tar -cvf 打包文件.tar 被打包的文件 / 路径(多个文件空格分开)打包文件
  • tar -xvf 打包文件.tar 解包文件
  • gzip 压缩
  • tar -zcvf 打包文件.tar.gz 被压缩的文件 / 路径 … 压缩文件
  • tar -zxvf 打包文件.tar.gz 解压缩文件
  • tar -zxvf 打包文件.tar.gz -C 目标路径 解压缩到指定路径
  • bzip2 压缩
  • tar -jcvf 打包文件.tar.gz 被压缩的文件 / 路径 … 压缩文件
  • tar -jxvf 打包文件.tar.gz 解压缩文件
  • tar -jxvf 打包文件.tar.gz -C 目标路径 解压缩到指定路

29. ln 文件链接

ln 命令 用来为文件创建链接,链接类型分为硬链接和符号链接两种,默认的链接类型是硬链接。如果要创建符号链接必须使用 ”-s” 选项。

注意:符号链接文件不是一个独立的文件,它的许多属性依赖于源文件,所以给符号链接文件设置存取权限是没有意义的。

ln [参数][源文件或目录][目标文件或目录]

# 硬链接
ln /usr/local/python3/bin/python3.exe /usr/bin/python3.exe

#软连接
ln -s /usr/local/redis/bin/* /usr/local/bin '// 将 redis 命令创建软连接,便于系统识别'

29.1 软链接

  • 软链接,以路径的形式存在。类似于 Windows 操作系统中的快捷方式
  • 软链接可以 跨文件系统,硬链接不可以
  • 软链接可以对一个不存在的文件名进行链接
  • 软链接可以对目录进行链接

29.2 硬链接

建立硬链接时,在另外的目录或本目录中增加目标文件的一个目录项,这样,一个文件就登记在多个目录中。如下所示的 m2.c 文件就在目录 mub1 和 liu 中都建立了目录项。

  • 硬链接,以文件副本的形式存在。但不占用实际空间。
  • 不允许给目录创建硬链接
  • 硬链接只有在同一个文件系统中才能创建

30. du

du 命令用于查看目录占用的磁盘空间大小

du -h --max-depth=1 

31. source 命令

source 用于在当前 Shell 环境中从指定文件读取和执行命令,在一些工具的执行过程中,会把环境变量设置以 ”export XXX=XXXXXX” 或 ”declare XXX=XXXXXX” 的形式导出到 一个文件中,然后用 source 加载该文件内容到执行环境中,读取和执行 /root/.bash_profile 文件。

source ~/.bash_profile

32. pkill

pkill 是一款 Linux/Unix 操作系统中用于杀死进程的命令行工具,可以使用进程名、用户 ID、进程组 ID 等过滤条件来查找并杀死匹配的进程。它是 killall 命令的一个改进版本,可以更加精细地控制需要杀死的进程,同时也更加安全。

  • -u:指定需要匹配的用户 ID。
  • -g:指定需要匹配的进程组 ID。
  • -f:使用进程的完整命令行参数来匹配进程名。例如,使用 -f “java -jar” 将匹配所有命名为 java -jar 的进程。
  • -n:指定需要杀死的进程数量,通常与 -f 选项一起使用。
  • -s:指定用于发送信号的信号编号,默认为 SIGTERM。
  • -V:显示 pkill 命令的版本信息。
# 如果要杀死所有属于 web 用户的 nginx 进程,可以使用以下命令:$ pkill -u web nginx

# 如果要杀死以 nginx 为关键词的所有进程,可以使用 -f 选项,例如:$ pkill -f nginx 

33. pmap

pmap 命令用于显示一个进程或者指定程序的内存映射情况,即查看进程或程序中哪些数据和代码被映射到了物理内存或虚拟内存的哪个地址上,以及每个地址的权限等信息。

$ pmap -x 1234

34. passwd

如果需要设置一个空密码,可以执行 passwd -d 命令。

# passwd
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

35. rsync

rsync 是 Linux 下基于网络传输实现同步的工具,可以实现快速、安全的文件同步。

$ rsync -avzh /source/dir/ /target/dir/
  • -a: 表示使用归档模式同步,其中包括递归复制、保留权限和其他元数据以及压缩等功能。
  • -v: 表示启用详细输出模式,即在同步过程中显示更多信息。
  • -z: 表示在传输过程中对数据进行压缩以减少网络流量。
  • -h: 表示以人类可读形式显示输出信息。

最后是源目录和目标目录。这里使用了一个斜杠来确保 rsync 操作带有完整路径。如果您不采用这种方式,则会在目标文件夹中创建 /target/dir/source/dir/ 结构。

36. dmesg

dmesg 是一个 Linux 系统命令,用于打印内核环缓冲区(Kernel Ring Buffer)中的消息。这个环形缓冲区是一种特殊的文件,它记录了内核启动以来发生的事件,例如硬件故障、系统错误、设备驱动程序加载和卸载等。通过查看 dmesg 输出内容,您可以快速定位和解决系统问题,并进行系统性能优化。

  • dmesg,显示全部信息
  • dmesg -n 20,仅显示最近 20 条信息:

常见问题

1.bash 不显示路径

vim ~/.bash_profile
#添加如下文本
export PS1='[u@h W]$'
source ~/.bash_profile

2. 清理乱码文件

# 使用 ls -i 查看这个文件的 ID 号;# find -inum 删除文件 ID 号 -delete

3.yum: command not found

Yum(全称为 Yellow dogUpdater, Modified)是一个在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。

RPM Package Manager (RPM) 是一个强大的命令行驱动的软件包管理工具,用来安装、卸载、校验、查询和更新 Linux 系统上的软件包。

apt-get update 作用是从服务器拉取可用的包到本地

4.yum 源

安装阿里的 yum 源,可以按照以下步骤操作:

备份当前的 yum 源配置文件:

sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载阿里的 yum 源配置文件:

sudo curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo

注意,如果你使用的是 CentOS 7,你需要下载对应版本的 yum 源配置文件。你可以在阿里云镜像站的 CentOS 镜像页面中找到对应的 yum 源配置文件链接。

清除 yum 缓存:

sudo yum clean all

更新 yum 缓存:

sudo yum makecache

yum install -y https://mirrors.cloud.tencent.com/epel/epel-release-latest-8.noarch.rpm

4. 实用命令

  1. 查看指定程序启动的命令:ps -eo pid,lstart,cmd | grep nginx
  2. 查看 php-fpm 正在执行的 PHP 文件:ps aux | grep php-fpm、sudo lsof -p | grep php

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-09-10发表,共计11832字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)