Linux命令(bash Shell命令):

freecodecamp.org/chinese/news/the-linux-commands-handbook/

man:查看命令手册的具体内容,帮助了解(很长很长)。建议使用tldr以更快的大致了解一个命令。

man [命令]/tldr [命令]

文件夹操作:

  1. ls:查看文件夹的内容。 默认是当前目录。常用的属性是-l,可以查看文件的详细信息(l详细数据,a显示隐藏数据)。 ls [选项] <文件路径>

ls -l将显示文件夹的权限、所有者和用户组

例如:-rw-r--r-- 1 user group 1024 Jan 1 00:00 example.txt

文件权限(-rw-r–r–)

第 1 个字符:表示文件类型。第 2 - 4 个字符:表示文件所有者的权限。分别对应读(r)、写(w)、执行(x)权限。如果没有相应权限,则用 - 表示。第 5 - 7 个字符:表示文件所属用户组的权限。第 8 - 10 个字符:表示其他用户的权限。

硬链接数(1) 该数字表示文件或目录的硬链接数量。对于文件来说,硬链接数表示有多少个文件名指向同一个文件的物理数据;对于目录来说,硬链接数表示该目录下的子目录和 .(当前目录)、..(父目录)的总数。

文件所有者(user) 显示文件或目录的所有者用户名。所有者对文件有特殊的权限控制,可以修改文件权限、删除文件等。

文件所属用户组(group) 显示文件或目录所属的用户组名。用户组是具有相同权限的用户集合,文件所属用户组的成员可以根据用户组的权限对文件进行操作。

文件大小(1024) 以字节为单位显示文件或目录的大小。对于目录,显示的是目录本身的元数据大小,而不是目录下所有文件的总大小。如果要查看目录下所有文件的总大小,可以使用 du -sh 命令。

文件最后修改时间(Jan 1 00:00) 显示文件或目录最后一次被修改的时间,包括月份、日期和具体时间。如果文件是很久以前修改的,可能会显示年份而不是具体时间。

文件名(example.txt)

  1. cd:打开文件夹。 cd [选项] <文件路径> .. :上级文件夹、. :当前文件夹、/:根目录、~:root目录。

  2. pwd:显示当前的工作文件夹。

  3. du:显示目录大小。 -h单独计算每个文件大小。

  4. mkdir:创建新的文件夹。 -p :创建嵌套的文件夹。 mkdir [选项] <文件路径>

  5. rm -f:删除文件和其中内容(必须慎重操作)。-rf:递归的删除文件(也删除文件夹里的)

  6. rmdir:删除文件夹(必须为空)。 rmdir [选项] <文件路径>

  7. mv:移动文件、文件夹;也可用于重命名文件。 -t 目标目录 mv <当前文件路径> <新的文件路径>

  8. cp:复制文件,-r复制文件夹。

  9. find:查找文件,可以限定查找的类型、名称、大小、时间和附加操作。 find  [路径]  -type [类型:f/d]  -name [文件名]  -size [+大于的值/-小于的值]  -mtime [更新时间]  -delete/-exec [命令]

  10. ln:链接文件,包括硬链接和软链接。保证同步更新? 硬链接:ln <源文件路径><链接路径>,复制+同步   软链接:ln <源文件路径><链接路径>,指针
  11. gzip:压缩

  12. ta:归档

文件操作:

  1. touch :创建文件,以写入方式打开。

  2. cat:打印文件的内容到标准输出。

    cat常常与管道运算符,重定向输出符等连用

    cat 文件名

    | 是管道符号,标识把左边的内容的输出作为右边内容的输入。 >是重定向输出符号,把内容输出到文件当中,会覆盖 >>是追加重定向输出符号,把内容追加在文件的末尾

  3. tail: 打开并监控文件的末尾。(用于日志监控) tail -f [文件]

  4. grep:全局正则表达式打印。 在指定的文件里寻找字符串(正则表达式)。 -n 显示匹配的行行号、- l 打印匹配的文件名、-i 忽略大小写匹配、-v 反向查找(打印不匹配的) 、-r 递归查找文件、-c 只打印匹配的行数、-C x 打印匹配的行前后x行的内容。 grep [选项] 表达式 [文件]

  5. echo:打印输出。

  6. sort:对文本进行排序 -r倒序 -u移除重复的(对中文不可用)

  7. uniq:去除重复的行,-d显示重复行、-u显示不重复行、-c计数

  8. diff:比对两个文档。-y逐行对比、-u git式的对比、-r 递归比较、-q显示不同的文件名

进程操作:

  1. ps:检查进程,(静态)

  2. top:动态监控进程 top 命令是 Linux 系统中用来查看系统当前资源使用情况(如 CPU、内存、进程等)和实时监控的工具。它显示的信息非常丰富,能够帮助管理员和用户了解系统的性能和负载。

1.top 命令的输出内容说明 默认情况下,top 显示的是一个动态更新的界面,内容分为几个主要部分:

(1) 头部信息 系统时间:当前时间、系统运行时间、系统负载等。 运行中的任务数:系统上正在运行的进程数量。 CPU 使用情况:显示不同 CPU 核心的使用情况。 内存使用情况:显示物理内存和交换空间(swap)的使用情况。 示例:

top - 15:25:34 up 3 days,  2:45,  2 users,  load average: 0.05, 0.03, 0.01
Tasks: 196 total,   1 running, 195 sleeping,   0 stopped,   0 zombie
%Cpu(s):  3.2 us,  1.8 sy,  0.0 ni, 94.8 id,  0.0 wa,  0.0 hi,  0.2 si,  0.0 st
MiB Mem :   8028.2 total,   1056.4 free,   5562.8 used,   1409.0 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   1569.5 avail Mem

(2) 进程信息 接下来是关于正在运行的进程的详细信息:

PID:进程 ID。 USER:进程所属的用户。 PR:进程的优先级。 NI:进程的 nice 值(调整进程优先级)。 VIRT:进程使用的虚拟内存总量。 RES:进程使用的物理内存量。 SHR:进程共享的内存量。 S:进程的状态(如 R 为运行中,S 为休眠中,Z 为僵尸进程等)。 %CPU:该进程占用的 CPU 百分比。 %MEM:该进程占用的内存百分比。 TIME+:进程占用的 CPU 时间(累计)。 COMMAND:进程执行的命令名称。 示例:

PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
1234 root      20   0  164012   9324   5860 S  2.0  0.1   0:09.32 bash
5678 user      20   0  120400   7204   3200 S  1.0  0.1   0:07.28 python

2.常用命令选项 (1) 动态更新间隔 top 默认每 3 秒更新一次数据,你可以通过按 d 键来修改更新的间隔时间。例如,输入 d 后可以设定每 1 秒更新一次。

(2) 显示不同的排序方式 P:按 CPU 使用率排序。 M:按内存使用量排序。 T:按运行时间排序。 N:按进程 PID 排序。

(3) 切换显示模式 按 1 键切换显示每个 CPU 核心的使用情况。 按 c 键可以切换是否显示进程的完整命令行(默认只显示程序名称)。

(4) 过滤进程 按下 o 键可以过滤进程(类似 grep 的功能)。例如,输入 COMMAND=python 会只显示所有 python 相关的进程。

(5) 进程管理 按 k 键后,输入进程 PID 和信号(如 9 代表终止进程)可以终止某个进程。 按 r 键后,可以改变进程的优先级(调整 nice 值)。

(6) 显示内存、CPU 等统计信息 m:显示内存统计。 t:显示线程信息。 d:调整刷新频率(秒)。 q:退出 top 命令。

  1. 命令行选项 top -d :指定更新的间隔时间(单位:秒),例如 top -d 1 每秒刷新一次。 top -n :指定 top 刷新多少次后退出,例如 top -n 5 刷新 5 次后退出。 top -u :显示某个用户的进程信息。 top -p :只显示指定进程的状态。
  1. kill:向进程发送信号(KILL和STOP先向内核发送,由内核操纵进程)。信号包括:HUP(1)挂起、INT(2)干扰、KILL(9)强制终结、TERM(15)正常终结、CONT(18)继续、STOP(19)停止

用户操作:

  1. users:命令会显示当前登录到系统的所有用户

    查看当前系统内的所有用户,使用文本编辑器打开文件

    vi /etc/passwd
    

    /etc/passwd 文件是一个重要的系统文件,它存储了系统中所有用户的基本信息。使用 vi /etc/passwd 命令打开该文件后,每一行代表一个用户的信息,各字段之间用冒号 : 分隔。

    username:x:1001:1001:User Description:/home/username:/bin/bash
    

    用户名(username):这是用户登录系统时使用的名称,是用户在系统中的唯一标识,通常由字母、数字、下划线等字符组成,且不能包含冒号 :。

    加密密码占位符(x):在早期的 Linux 系统中,该字段存储用户的加密密码。但由于 /etc/passwd 文件的权限通常设置为所有用户可读,为了提高安全性,现在密码通常存储在 /etc/shadow 文件中,而 /etc/passwd 文件中的该字段统一显示为 x,表示密码被存储在其他地方。

    用户 ID(UID,1001):用户 ID 是一个唯一的整数,用于系统内部标识用户。系统通过 UID 来管理用户的权限和资源。在大多数 Linux 系统中,root 用户的 UID 为 0,系统保留用户(如 daemon、bin 等)的 UID 通常小于 1000,而普通用户的 UID 通常从 1000 或 1001 开始分配。

    组 ID(GID,1001):组 ID 是用户所属主要用户组的唯一标识。用户可以属于多个用户组,但每个用户都有一个主要用户组,记录在 /etc/passwd 文件中。与 UID 类似,系统通过 GID 来管理用户组的权限和资源。用户组的详细信息存储在 /etc/group 文件中。

    用户描述信息(User Description) 该字段用于存储用户的描述信息,通常是用户的全名或其他相关说明。

    用户主目录(/home/username):用户主目录是用户登录系统后默认进入的目录,通常以 /home 为根目录,后面跟上用户名。

    用户默认 shell(/bin/bash):该字段指定用户登录系统后默认使用的 shell 程序。如果该字段设置为 /sbin/nologin,则表示该用户不能登录系统,通常用于系统服务账户。

  2. groups:查看当前用户所属的用户组

  3. chown:改变所有者

    chown newuser:newgroup example.txt

  4. chmod:改变权限。

    rwx分别对应了读4写2执行1,不操作的使用-替代。一个文件有三组rwx的值,对应所有者、关联的用户组和其他人的权限。

    -R递归的改变文件夹下的所有文件的权限

    chmod  owner/group/world  +/-  rwx

  5. df:获取磁盘使用情况。-h

  6. su -l :切换设备权限到root

  7. alias:为命令创造别名。

    ’’ 变量在调用时解析, ””变量在定义时解析。 alias [new_cmd]=’cmd’/”cmd”

  8. ldconfig:更新系统共享库缓存

查看操作

sudo netstat -tulpn | grep <port_number>

Linux相关的快捷键

  • 常用:

    • Ctrl L :清屏
    • Ctrl C : 中断正在当前正在执行的程序
    • ctrl+alt+t:打开终端
  • 历史命令:

    • Ctrl P : 上一条命令,可以一直按表示一直往前翻
    • Ctrl N : 下一条命令
    • Ctrl R,再按历史命令中出现过的字符串:按字符串寻找历史命令(重度推荐)
  • 命令行编辑:

    • Tab : 自动补齐(重度推荐)
    • Ctrl ] : 从当前光标往后搜索字符串,用于快速移动到该字符串
    • Ctrl Alt ] : 从当前光标往前搜索字符串,用于快速移动到该字符串
    • Ctrl U : 清空当前键入的命令
  • 其他:

    • Ctrl Z : 把当前进程放到后台(之后可用’‘fg’‘命令回到前台)
    • Shift Insert : 粘贴(相当于Windows的Ctrl V
    • 在命令行窗口选中即复制
    • 在命令行窗口中键即粘贴,可用Shift Insert代替