Skip to main content

1. UNIX 常用指令

David LiuAbout 7 min

1. UNIX 常用指令

wildcard character

命令格式

三部分:

  • cmd

  • opts

    分类:

    • -:简写
    • --:全称,增加可读性(脚本里面一般用全写)

    常见:

    • -a: 全部的
    • -l: 长的、全部信息
    • -R: 递归的(删除文件夹等用)
    • -v: verbose 显示冗余信息,(普通的时候会省略一些东西),这个可以显示全
  • args

    参数可以有多个

概念一致性:每处功能的

常用命令如下:

  1. ls:列出当前目录下的文件和文件夹。
  2. cd:切换当前目录。
  3. mkdir:创建一个新的目录。
  4. rm:删除文件或目录。
  5. cp:复制文件或目录。
  6. mv:移动文件或目录。
  7. cat:查看文件内容。
  8. grep:在文件中查找指定的字符串。
  9. chmod:修改文件或目录的权限。
  10. sudo:以超级用户身份执行命令。

Linux 的运行原理是基于内核的,内核是操作系统的核心部分,它负责管理计算机的硬件资源和提供基本的服务。Linux 内核是一个模块化的系统,可以根据需要加载不同的模块来提供不同的功能。Linux 还有一个重要的特点是它是一个多用户系统,多个用户可以同时使用同一台计算机,每个用户都有自己的账户和权限。

top命令是一个常用的 Linux 系统监控工具,可以实时显示系统的运行状态,包括 CPU、内存、进程等信息。以下是一些常用的top命令选项:

  • -d {{秒数}}:指定刷新时间间隔,默认是 3 秒。
  • -u {{用户名}}:只显示指定用户的进程。
  • -p {{进程ID}}:只显示指定进程的信息。
  • M:按内存使用量排序。
  • P:按 CPU 使用量排序。
  • q:退出top命令。

top命令的输出结果包括以下信息:

  • top:当前时间和系统运行时间。
  • Tasks:进程总数、运行中的进程数、睡眠中的进程数等信息。
  • CPU:CPU 使用率、用户态 CPU 使用率、系统态 CPU 使用率等信息。
  • Mem:内存使用情况,包括总内存、已用内存、空闲内存等信息。
  • Swap:交换空间使用情况,包括总交换空间、已用交换空间、空闲交换空间等信息。
  • PID:进程 ID。
  • USER:进程所属用户。
  • %CPU:进程占用 CPU 的百分比。
  • %MEM:进程占用内存的百分比。
  • TIME+:进程运行时间。
  • COMMAND:进程命令行。

指令分类

输入的时候,按 tab 键可以自动补齐

可以写脚本里,只写一次就方便了,全自动

man:教程文档

Manual 可以找到所有的东西,包括全部的参考文档和 C 的函数文档 Unix 的原生的

Info :GNU

see also 比较重要

eg. man epoll, man 7 ip

man -k

第一个可省略参数:手册第几章如 3 是 C 语言变成手册,一共 8 章

  1. cmd 命令
  2. 系统调用,Linux 原理,操作系统的接口,系统级编程时用,对外提供的接口
  3. 库函数(C 语言的)
  4. 驱动设备
  5. 标准系统文件格式
  6. 游戏、没用
  7. 教材文件文档,如 man 7 ip
  8. 如:man 8 mandb

用户相关

whoami

su 切换用户

su 命令只切换目录,但是不切换环境;su -就可以同时切换到目标用户的环境

switch user

logout, exit

退出服务器

目录操作

mkdir 新增目录

Make dir

rm 删除

-rf

pwd 当前目录

print working dir,

ls 查看目录下文件

list

cd 切换目录

Change dir

文件操作

查找文件

find

  • -exec {} / 各自的执行
  • -exec {} + 一次性执行

查看文件

cat

拼接,但是可以用来看内容

https://blog.csdn.net/qq_46416934/article/details/126747074open in new window

head

看头几行,默认 10 行

-n 5 看 5 行

tail

看尾几行,默认 10 行

-n 5 看 5 行

more

看很多的文本,回车往下一行、空格向下一屏

less

j 和 k,看上和看下、空格向下一屏,按 q 出去

Unix 服务器(生产环境)一般没有 less

touch

如果文件不存在,则新建一个文件

touch a.txt b.txt c.txt 一次性创建多个文件
touch a{1..10}.txt 一次性创建多个文件
touch a{1..10}.txt b{1..10}.txt 一次性创建多个文件

vim

编辑文件
vim a.txt 编辑文件
vimtutor vim 教程
vimtutor zh vim 中文教程
vimtutor en vim 英文教程
vimtutor zh_cn vim 中文教程
vimtutor en_us vim 英文教程
vimtutor zh_cn.utf-8 vim 中文教程

cp

copy,复制一个文件

.和..分别是当前目录和上级目录

加-R 可以复制目录(recursal)

touch

修改文件的时间戳
touch a.txt 修改文件的访问和修改时间戳到目前时间
touch -a a.txt 仅修改文件的访问时间戳
touch -m a.txt 仅修改文件的修改时间戳

mv

重命名,后面一个跟新名称

移动目录,路径+/

文本操作

grep

检索命令,还支持正则表达式, grep -r <pattern> /path/to

sed

替换

sed 's/stringa1/stringa2/g' example.txt 将 example.txt 文件中的 "string1" 替换成 "string2"

cut 命令是一个用于裁剪文本的命令行工具。 -d 选项指定分隔符为 :-f1 选项指定只显示每行的第一个字段

统计

wc -l 统计行数

Eg. grep -r "mysqli" /path/to/src/ | cut -d: -f1 | wc -l

进程管理

新建

fork 创建子进程

top 进程资源占用情况

ps 命令,用于将某个时间点的进程运行情况选取下来并输出,process 之意

-A :所有的进程均显示出来
-a :不与terminal有关的所有进程
-u :有效用户的相关进程
-x :一般与a参数一起使用,可列出较完整的信息
-l :较长,较详细地将PID的信息列出

ps aux # 查看系统所有的进程数据
ps ax # 查看不与terminal有关的所有进程
ps -lA # 查看系统所有的进程数据
ps axjf # 查看连同一部分进程树状态

kill 命令,用于向某个工作(%jobnumber)或者是某个 PID(数字)传送一个信号,它通常与 ps 和 jobs 命令一起使用

命令格式 : kill[命令参数][进程id]

命令参数:

-l  信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a  当处理当前进程时,不限制命令名和进程号的对应关系
-p  指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s  指定发送信号
-u  指定用户

procs 显示进程数

r 等待运行的进程。系统上的负载越多,等待运行 CPU 周期的进程数量越多。

b 不可中断睡眠的进程,也称为“被阻塞”的进程。这些进程最有可能等待 I/O,但也可能等待其他事情。

性能分析

free:命令可以显示 Linux 系统中空闲的、已用的物理内存及 swap 内存,及被内核使用的 buffer。

mpstat:用于获取 CPU 相关统计信息

iostat:性能评估的一个主要部分就是磁盘性能,iostat 命令提供了存储接口的性能指标。

vmstat:显示所有与内存和进程相关信息的命令

netstat:用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast
Memberships) 等等。

wpd,free,buff,cache 显示了内存值班

wpd 虚拟内存或交换内存的数量(以 KB 为单位)

free 可用物理内存的数量(以 KB 为单位)

buff 用作缓冲区的内存数量(以 KB 为单位)

cache 用作缓存的物理内存数量(以 KB 为单位)

https://www.cnblogs.com/xiaoxi-jinchen/p/16250684.htmlopen in new window

开关机

shutdown -h now 关闭系统(1)
init 0 关闭系统(2)
telinit 0 关闭系统(3)
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销
time 测算一个命令(即程序)的执行时间

其他

epoll

epoll 的 web server,IO 多路复用

echo

print,经常用在 shell 脚本编程中,用来输出内容,默认,末尾换行