Linux的一些常用指令

记录了一些Linux常用的指令,包括基础指令,网络故障排查时的指令和系统故障排查时的指令。

1.基础指令

1. ls

用于显示当前目录下的文件和目录。

  • -l:以长格式显示,包括文件的详细信息,如权限、所有者、大小、修改时间等;
  • -a:显示所有文件,包括隐藏文件(以.开头的文件);
  • -h:以更易读的方式显示文件大小,如KMG等;
  • -r:反向排序显示结果;
  • -t:按文件修改时间排序显示。

2. cd

用于切换当前工作目录。参数为要切换到的目录路径,可以使相对路径或绝对路径。

cd ~
//切换到用户的主目录

cd ..
//切换到上一级目录

3. mkdir

创建新目录,参数可以是多个目录名,以空格分隔,一次性创建多个目录。

4. rm

删除文件或目录。

  • -f:强制删除,不提示确认;
  • -r:递归删除目录及其内容。例如:rm myfile.txt删除当前目录下的 myfile.txt 文件,rm -rf mydirectory删除 mydirectory 目录及其内部的所有文件和子目录。

5. cp

复制文件或目录。

cp oldfile.txt newfile.txt
  • -r-R:递归复制目录及其内容。
  • -p:保留文件的属性,如权限、所有者、修改时间等。
  • -f:强制覆盖已存在的目标文件,不提示。
  • -i:覆盖目标文件前提示确认。
  • -v:显示详细的复制过程。
  • -a:等价于 -dpR,即保留所有属性并递归复制。 

6. mv

移动或重命名文件和目录。

mv myfile.txt /destination/directory
//将当前目录下的myfile.txt 移动到指定目录

mv oldname.txt newname.txt
//重命名文件

7. touch

创建新文件或修改文件的时间戳

touch myfile.txt
//创建一个名为 myfile.txt 的空文件(如果文件已存在,则更新其时间戳)。

8. chmod

修改文件或目录的权限

常用参数》

  • -r:递归地修改目录及其子目录下的所有文件和目录权限。
  • -v:显示命令执行过程中修改的文件或目录的权限信息。
  • -c:只在修改了文件或目录的权限时才显示其详细信息。
  • -f:如果文件权限无法更改,不显示错误信息。

常用权限》

  •  u 表示文件的所有者;
  • g 表示与文件所有者属于同一个群体(group)者;
  • o 表示其他以外的人;
  • a 表示这三者皆是;
  • + 表示增加权限;
  • - 表示取消权限;
  • = 表示唯一设定权限;
  • r 表示可读取;
  • w 表示可写入;
  • x 表示可执行,对于目录,表示可以进入目录;x 也用于设置只有当文件是个子目录或者该文件已经被设定过为可执行时的权限。

权限处理 》

数字表示法则是将每个权限位转换为数字,然后将这些数字组合起来。例如,rwx 可以表示为数字 74 + 2 + 1),rw- 表示为 64 + 2 + 0),r-x 表示为 54 + 0 + 1)等。

例如,设置文件所有者具有读、写和执行权限,其他用户只有读权限,可以使用数字表示法:

chmod 744 file.txt

 或者使用字母表示法:

chmod u=rwx,o=r file.txt

参数实例》

1. 给文件 file.txt 的所有用户增加读权限:

   chmod a+r file.txt

2. 删除所有用户对文件 file.txt 的执行权限:

   chmod a-x file.txt

3. 递归地给目录 directory 及其所有子目录和文件增加读权限:

   chmod -r a+r directory

4. 仅当文件权限确实更改时,显示其更改动作的详细信息:

   chmod -c v file.txt

9. chown

修改文件或目录的所有者

假设我们有一个文件 example.txt,当前所有者是 user1,所属组是 group1。现在要将所有者更改为 user2,所属组更改为 group2,可以使用以下命令:

chown user2:group2 example.txt
  •  -R:递归更改目录及其子目录和文件的所有者和所属组。
  • -v:显示详细的更改信息。

10. ps

显示当前运行的进程

  • -ef:以详细格式显示所有进程;
  • -aux:显示所有用户的所有进程详细信息。

11. find

在指定目录下搜索符合条件的文件或目录

find /directory -name "*.txt"

12. grep

文件中搜索匹配指定模式的行

grep "keyword" file.txt在 file.txt
//文件中查找包含"keyword"的行
  • -i:忽略大小写;
  • -v:显示不匹配的行;
  • -n:显示匹配行的行号。

13. tar

用于打包和解包文件

  • -cvf:打包文件,tar cvf archive.tar files_or_directories
  • -xvf:解包文件,tar xvf archive.tar
  • -zcvf:打包并使用 gzip 压缩,生成 .tar.gz 文件,tar zcvf archive.tar.gz files_or_directories
  • -zxvf:解压缩 .tar.gz 文件,tar zxvf archive.tar.gz
  • -jcvf:打包并使用 bzip2 压缩,生成 .tar.bz2 文件;
  • -jxvf:解压缩 .tar.bz2 文件。

14. cat

查看文件内容并在终端显示

cat file.txt
//显示 file.txt 的内容

15. echo

输出指定的文本或变量的值

echo $PATH输出环境变量 PATH 的值

echo "Hello, World!"
//输出字符串

16. more 和 less

分页显示文件内容。more 按空格键翻页,按 q 键退出

less 支持更多的操作,如上下箭头滚动、搜索等

more file.txt,less file.txt

17. head 和 tail 

分别显示文件的开头部分和结尾部分

head -n 10 file.txt

//显示文件的前 10 行

tail -n 20 file.txt

//显示文件的后 20 行

2.网络故障排查

1. ping

1.1 概念

ping命令主要用于检测网络连通性。通过发送ICMP(Internet Control Message Protocol)回显请求(echo request)报文并等待目标主机回应,可以确定目标主机是否在线,以及网络传输的延迟和丢包率。总之主要作用就是用于测试网络连通性、测量往返时间、判断网络质量的好坏。

1.2 基本用法和举例

ping <目标地址>
ping www.baidu.com

 通过返回的结果可以判断网络的质量,如果已经达到了几百毫秒就说明网络质量较差。

 1.3 ping的一些参数

ping -c 5 -i 1 -s 64 www.baidu.com
  • -c  <次数> :指定发送的请求次数。
  • -i   <间隔> :指定每次发送请求的时间间隔
  • -s  <数据大小> :指定数据包的大小

2.traceroute

2.1 概念

traceroute命令主要用于追踪数据包从源主机到目标主机所经过的路由节点(即路由跳数)。通过逐步增加数据报的TTL(Time to Live)值,可以显示每一跳的IP地址和响应时间,有助于确定网络路径中的瓶颈或故障点。需要了解网络数据包的传输路径时会用到traceroute,可以看到途径的每个路由节点IP地址和每个节点的响应时间。

2.2 基本用法和举例

traceroute <目标地址>
traceroute www.baidu.com

2.3 traceroute命令的参数

traceroute -n -m 20 -w 2 www.baidu.com
  •  -n :仅显示数字IP地址,而不进行域名解析,速度较快
  •  -m  <最大跳数> :指定探测的最大跳数
  •  -w  <等待时间> :指定等待每个响应的超时时间

3.nslookup

3.1 概念

用来查询域名的DNS记录,检查域名解析是否有问题。可以显示出域名对应的IP地址,或者反向查询IP地址对应的域名。当需要了解域名解析是否正常/该域名解析的具体IP,就可以使用nslookup来测试。

3.2 基本用法和举例

nslookup <域名>
nslookup www.baidu.com

3.3 nslookup命令的参数 

nslookup -query=A baidu.com
# 这将查询 baidu.com 的 IPv4 地址

nslookup -timeout=3 baidu.com
# 如果查询在 3 秒内未完成,将被视为超时

nslookup -retry=2 taobao.com
# 如果第一次查询失败,将重试 2 次

nslookup -ns 114.114.114.114 qq.com
# 使用 114.114.114.114 这个 DNS 服务器来查询 qq.com 的相关信息

nslookup -type=MX 163.com
# 查找 163.com 的邮件交换记录

nslookup -port=1053 baidu.com
# 假设 DNS 服务器在 1053 端口响应查询

  •  -silent :抑制一些额外的输出,使结果更简洁
  •  -exit : 查询完成后退出

4.ip route

查看本机路由表,查看本机的路由规则是否正确

ip route
  • ip route show:显示当前系统的路由表。
  • ip route add <destination_network> via <gateway_ip> dev <interface>:添加一条新的路由,指定目标网络、网关和出接口。
  • ip route del <destination_network>:删除指定的路由。
  • ip route get <destination_ip>:获取到特定目标 IP 的路由信息。

5.telnet

5.1 概念

用于测试特定端口的连通性。如果你需要测试某个应用服务器端口是否能够访问,telnet是很好的工具。用于建立与目标主机的连接,常用于测试判断目标主机上的服务端口是否打开。当与目标服务器的连接建立成功,即证明与目标服务器的网络是畅通的,端口也都是访问正常的。

telnet协议在传输数据时是明文的,不太安全。实际中,更多的会使用ssh等更安全的方式进行远程连接和管理。

5.2 基本用法和举例

talent <目标IP地址或域名> <端口>
telnet www.baidu.com 80

5.3 telnet命令的参数

  • -8:允许使用 8 位数据路径。
  • -a:尝试自动登录。
  • -e <escape_char>:设置转义字符。
  • -l <user>:指定登录的用户名。

3.系统故障排查

1. top

top命令是一个非常常用的工具,用于实时监控系统性能和进程活动。使用top命令可以获取CPU使用率、内存使用情况、运行中的进程等重要信息。简单来说,输入top命令后,我们就可以看到一个不断更新的界面,显示系统总体负载以及各个进程的详细状况。

top

 动态数据表中包含的信息

  • 系统信息: 看到当前时间、系统运行时间、用户数和平均负载
  • 进程摘要: 显示总进程数、运行的进程数、睡眠进程数
  • CPU状态: 展示CPU的不同使用状态,如用户空间(us)、系统空间(sy)、空闲(id)等。
  • 内存和交换空间: 显示物理内存和交换内存的使用情况。
  • 进程列表: 展示当前所有运行进程的信息,包括PID、用户、优先级、CPU使用率、内存使用率、命令等。

常用的快捷键

  • p  : 按 CPU 使用率排序
  • M : 按内存使用率排序
  • T  : 按运行时间排序
  • k  : 杀掉某个进程,需要输入进程 PID
  • q  : 退出 top 命令

top 命令的参数

-d : 设定更新间隔时间,例如 top -d 5 标识每5秒更新一次

-p : 监控指定的进程,例如 top -p 1234 只监控 PID 为 1234 的进程

-n : 指定更新次数后退出,例如 top -n 1 表示更新一次后退出

2. lsof

在linux系统中,当你需要排查哪个进程正在占用某个文件时,可以使用lsof命令。lsof 命令可以帮助你列出当前打开的文件以及关联的进程。这个命令在处理文件占用问题、解决文件锁定冲突、监控系统资源等情况下非常有用。

1》查找特定文件被哪个进程占用

lsof /path/to/your/file

2》查找特定端口被哪个进程占用

lsof -i :portnumber

3》显示某个用户被哪些文件占用

lsof -u username

4》终止某个进程以释放文件

kill -9 PID

 其他常用选项》

-p :根据进程ID查看当前进程打开的文件

-d :根据文件描述符累出打开的文件。文件描述符是进程在处理文件时分配的句柄。

-c : 根据命令名称列出打开的文件

3. dmesg

在Linux系统中,使用dmesg命令查看内核日志非常简单。你只需要打开终端,然后输入dmesg就可以看到最新的内核输出日志。这些日志内容包括系统启动时的信息,以及之后由内核和驱动程序产生的各种消息。

1、持续地查看实时产生的日志内核》

dmesg -w

使用grep配合检索特定内容(举例为检索包含“usb”的所有内核日志条目)

dmesg | grep usb

2、时间戳转可读时间》

dmesg -T

3、限制输出》

内核日志输出信息量较大,通过 -l 过滤特定级别(如:info 、 warn 、 err)的日志信息。

dmesg -l err

 某些需求的应对

1.权限不足 “Operation not permitted”

使用 sudo dmesg 命令提高权限

2.持久化日志

journalctl -k

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值