1. UNIX 常用指令
1. UNIX 常用指令
wildcard character
命令格式
三部分:
cmd
opts
分类:
-
:简写--
:全称,增加可读性(脚本里面一般用全写)
常见:
-a
: 全部的-l
: 长的、全部信息-R
: 递归的(删除文件夹等用)-v
: verbose 显示冗余信息,(普通的时候会省略一些东西),这个可以显示全
args
参数可以有多个
概念一致性:每处功能的
常用命令如下:
ls
:列出当前目录下的文件和文件夹。cd
:切换当前目录。mkdir
:创建一个新的目录。rm
:删除文件或目录。cp
:复制文件或目录。mv
:移动文件或目录。cat
:查看文件内容。grep
:在文件中查找指定的字符串。chmod
:修改文件或目录的权限。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 章
- cmd 命令
- 系统调用,Linux 原理,操作系统的接口,系统级编程时用,对外提供的接口
- 库函数(C 语言的)
- 驱动设备
- 标准系统文件格式
- 游戏、没用
- 教材文件文档,如 man 7 ip
- 如:man 8 mandb
用户相关
whoami
查看当前用户
su
切换用户
su
命令只切换目录,但是不切换环境;
su -
就可以同时切换到目标用户的环境
switch user
logout
, exit
退出服务器
目录操作
mkdir
新增目录
make dir
rm
删除
remove
-rf
pwd
当前目录
print work dir
ls
查看目录下文件
list
ls -l
cd
切换目录
Change dir
文件操作
查找文件
find
-exec {} /
各自的执行-exec {} +
一次性执行
查看文件
cat
拼接,但是可以用来看内容
head
看头几行,默认 10 行
-n 5 看 5 行
tail
看尾几行,默认 10 行
-n 5
看末尾 5 行-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)
.bak
就是备份文件
cp a a.bak
改
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.html
开关机
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 脚本编程中,用来输出内容,默认,末尾换行