linux的一般命令

本文最后更新于:2022年10月26日 凌晨

记录一些常见linux命令

1 查询类

whatis

简要说明命令的作用

  • 示例,ls命令的作用

    1
    2
    root@VM-12-2-ubuntu:~/autoBash# whatis ls
    ls (1) - list directory contents
  • 示例,正则匹配

    1
    2
    root@VM-12-2-ubuntu:~# whatis -w "what*"
    whatis (1) - display one-line manual page descriptions
  • 示例,关于分类

    1
    2
    3
    root@VM-12-2-ubuntu:~# whatis printf
    printf (1) - format and print data
    printf (3) - formatted output conversion

    上面括号中数字代表其列表,有如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    (1)、用户可以操作的命令或者是可执行文件
    (2)、系统核心可调用的函数与工具等
    (3)、一些常用的函数与数据库
    (4)、设备文件的说明
    (5)、设置文件或者某些文件的格式
    (6)、游戏
    (7)、惯例与协议等。例如Linux标准文件系统、网络协议、ASCⅡ,码等说明内容
    (8)、系统管理员可用的管理条令
    (9)、与内核有关的文件

man

查询命令的说明文档

  • 示例,将会直接打开文档,按q退出文档
    1
    man whatis

which

查询程序路径

  • 示例
    1
    2
    root@VM-12-2-ubuntu:~# which ls
    /usr/bin/ls

find

查找文件或者目录

  • 示例

    1
    2
    root@VM-12-2-ubuntu:~# find ./ -name "auto*" | xargs file
    ./autoBash: directory
  • 示例,查找指定后缀文件

    1
    2
    3
    root@VM-12-2-ubuntu:~# find ./ -name "*.sh"
    ./autoBash/task_doc.sh
    ./autoBash/task1.sh
  • 查询文件中包含字符串的文件,打印文件名

    1
    find ./code |xargs grep -ri "python3" -l

2 修改类

chmod

修改文件权限

  • 示例(-R参数可以对当前目前下所有文件进行修改)
    1
    2
    3
    4
    5
    root@VM-12-2-ubuntu:~/autoBash# ls -all
    -rw-r--r-- 1 root root 581 Feb 23 19:22 task1.sh
    root@VM-12-2-ubuntu:~/autoBash# chmod 777 task1.sh
    root@VM-12-2-ubuntu:~/autoBash# ls -all
    -rwxrwxrwx 1 root root 581 Feb 23 19:22 task1.sh
# 权限 rwx 二进制
7 读 + 写 + 执行 rwx 111
6 读 + 写 rw- 110
5 读 + 执行 r-x 101
4 只读 r–
3 写 + 执行 -wx 011
2 只写 -w- 010
1 只执行 –x 001
0 000
  • 示例,给脚本添加可执行权限
    1
    chmod a+x task_doc.sh

文件修改

  • 清空文件
    1
    :> log.txt

3 进程管理工具

PS

进程查询

  • 示例,查询正在运行的进程信息

    1
    ps -ef
  • 示例,查询归属某个用户的进程

    1
    ps -ef | grep root
  • 示例 完整格式显示所有进程

    1
    ps -ajx

lsof

  • 示例,查看端口占用的进程状态

    1
    2
    3
    4
    root@iZbp13hj0qh9d0nh16f1k7Z:~# lsof -i:22
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    sshd 997524 root 4u IPv4 223584532 0t0 TCP iZbp13hj0qh9d0nh16f1k7Z:ssh->117.173.140.243:34426 (ESTABLISHED)
    sshd 1104458 root 3u IPv4 192648542 0t0 TCP *:ssh (LISTEN)
  • 示例,查看用户的进程所打开的文件

    1
    lsof - u username
  • 示例,查询进程打开文的文件

    1
    lsfo -c sshd
  • 示例,查询指定进程打开的文件

    1
    lsof -p 12311
  • 示例,查询指定目录下被开启的文件

    1
    lsof +d root/

top

查看进程的CUP、内存使用状态,输入top进入页面

1
2
3
P:根据CPU使用百分比大小进行排序。
M:根据驻留内存大小进行排序。
i:使top不显示任何闲置或者僵死进程。

pmap

输出进程内存状况,分析线程堆栈

  • 示例
    1
    pmap PID

4 性能监控

sar

  • 示例,查看CUP使用率

    1
    sar -u
  • 示例,查看CPU平均负载

    1
    sar -q 1 2
  • 示例,查看内存使用状态

    1
    sar -r 1 2
  • 示例,查看页面交互发生状态

1
sar -W 1 3

5 网络

netstat

  • 示例,列出所有端口

    1
    netstat -a
  • 示例,列出所有TCP端口

    1
    netstat -at
  • 列出所有监听的服务状态

    1
    netstat -l
  • 查询端口状态

    1
    netstat -antp | grep 22

route/host

  • 示例,查看路由状态

    1
    route -n
  • 示例,探测前往地址IP的路由路径

    1
    traceroute IP
  • 示例,DNS查询,寻找域名domain对应的IP

    1
    host domain
  • 示例,反向DNS查询

    1
    host IP

scp

网络复制

  • 示例,将本地localpath指向的文件上传到远程主机的path路径

    1
    $scp localpath ID@host:path
  • 示例,遍历下载path路径下的整个文件系统,到本地的localpath

    1
    $scp -r ID@site:path localpath

netcat

查询远程主机端口状态

  • 示例,查询目标端口是否被打开
    1
    2
    nc -zv 192.168.1.1 22
    nc -zv 192.168.1.1 20-80

6 系统管理

  • 查询系统版本

    1
    2
    3
    4
    5
    6
    7
    8
    root@iZbp13hj0qh9d0nh16f1k7Z:~# uname -a
    Linux iZbp13hj0qh9d0nh16f1k7Z 5.4.0-77-generic #86-Ubuntu SMP Thu Jun 17 02:35:03 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
    root@iZbp13hj0qh9d0nh16f1k7Z:~# lsb_release -a
    LSB Version: core-11.1.0ubuntu2-noarch:security-11.1.0ubuntu2-noarch
    Distributor ID: Ubuntu
    Description: Ubuntu 20.04.3 LTS
    Release: 20.04
    Codename: focal
  • 查询CPU信息

    1
    cat /proc/cpuinfo
  • 查看CPU的核的个数

    1
    cat /proc/cpuinfo | grep processor | wc -l
  • 查看内存信息

    1
    cat /proc/meminfo
  • 显示内存page大小(kByte)

    1
    pagesize
  • 显示架构

    1
    2
    root@iZbp13hj0qh9d0nh16f1k7Z:~# arch
    x86_64

7 其他命令

查看磁盘空间

1
2
3
4
5
6
7
8
9
10
root@iZbp13hj0qh9d0nh16f1k7Z:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 965M 0 965M 0% /dev
tmpfs 199M 780K 198M 1% /run
/dev/vda1 40G 13G 26G 33% /
tmpfs 994M 0 994M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 994M 0 994M 0% /sys/fs/cgroup
tmpfs 199M 0 199M 0% /run/user/0
overlay 40G 13G 26G 33% /var/lib/docker/overlay2/0e0a4ed401dc85061b24e65eae1ea99930213380c3b4a3284404b3208edb87cb/merged

查看目录大小

1
2
root@iZbp13hj0qh9d0nh16f1k7Z:~# du -sh
1.7G .

打包解包

1
2
tar -cvf demo.tar ./demo
tar -xvf demo.tar

性能分析

参考

快捷键

bash中

1
2
3
4
Ctl-U   删除光标到行首的所有字符,在某些设置下,删除全行
Ctl-W 删除当前光标到前边的最近一个空格之间的字符
Ctl-H backspace,删除光标前边的字符
Ctl-R 匹配最相近的一个文件,然后输出