推荐和说明
个人认为最详细的linux Linux面试题(2020最新版),本文只在对自己常用命令的一些回顾
基础
文件类型和权限
普通文件(-)
目录文件(d)
设备文件(c、b)c字符设备文件,b块设备文件
符号链接文件(l)
管道文件(p)
读权限 (r )写权限 (w) 执行权限 (x) 无权限(-)
通配符
? 匹配任意的单字符
* 匹配0或多个任意字符(隐含文件前缀'.'除外)
[] 匹配方括号里的任何单字符
目录操作命令
功能分类 | 命令 |
---|---|
创建、删除目录 | mkdir、rmdir |
显示绝对路径、改变目录 | pwd、cd |
显示目录内容 | ls |
比如: |
- cd
cd 进入主目录
cd ~ 进入主目录
cd / 进入根目录
cd .. 返回父目录/返回上一级目录
cd ../..返回父目录的父目录
- ls
显示当前目录内容或指定目录中的内容
ls [选项] [文件或目录]
ls -a 列出目录所有文件,包含以.开始的隐藏文件
ls -A 列出除.及…的其它文件
ls -c按文件变更时间排序
ls -d 显示目录名称而非内容
ls -F显示文件名,同时显示类型
ls -h 以易读大小显示
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
ls -r 反序排列
ls -R递归显示下层子目录
ls -S 以文件大小排序
ls -t 以文件修改时间排序
ls *不仅仅显示文件,同时呢,也会将目录中的文件列出来,深度就是文件夹中的第一层,再深层的就没有显示
建议习惯使用 ls -trl * 某某关键字 *
文件操作命令
功能分类 | 命令 |
---|---|
文件显示内容、分屏显示文件内容 | cat、more、less |
文件显示开头内容 | head |
文件复制、删除、移动和重命名 | cp、rm、mv |
统计、排序 | wc、sort |
改变文件的权限 | chmod |
改变文件时间属性,如果没有就建立一个文件 | touch |
设置文件默认权限掩码 | umask |
指定目录下搜索某条件的文件、文件内容搜索 | find、grep |
比如:
- umask
掩码
创建文件默认最大权限为666 (-rw-rw-rw-),默认创建的文件没有可执行权限x位。
创建目录默认最大权限777(-rwx-rwx-rwx),默认创建的目录属主是有x权限,允许用户进入。
查看当前的umask值,可以使用umask命令
umask
如图:
“drwxr-xr-x”=“777-022=755”=“111 101 101”
“-rw-r–r–”=666-022=644=“110 100 100”
命令格式
umask [-p] [-S] [mode]
参数
-p
如果 mode 省略了,则以可复用的形式输出当前的掩码值。
-S
以字符的形式显示当前的掩码值。
$ umask -S
u=rwx,g=rwx,o=rx
如果想修改umask值,只要使用umask命令设置一个新的值即可:
$ umask 002
umask=”002“=“000 000 010”就是指哪个位没有权限
查看文件
- cat
是由第一行到最后一行连续显示在屏幕上,不推荐使用 - less
- less与more类似,使用less可以随意浏览文件,而more仅能向前移动,不能向后移动,而且 less 在查看之前不会加载整个文件。
- /字符串:向下搜索"字符串"的功能 ?字符串:向上搜索"字符串"的功能
- grep
- grep命令就可以帮助我们实现快速查找。
grep -i pattern files :不区分大小写地搜索。默认情况区分大小写,
grep -C number pattern files :匹配的上下文分别显示[number]行,
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行。
grep -E ‘123|abc’ filename // 找出文件(filename)中包含123或者包含abc的行 egrep ‘123|abc’ filename // 用egrep同样可以实现 awk ‘/123|abc/’ filename // awk 的实现方式 - sed
- 按时间查
sed -n ‘/2023-01-04 04:09:43/,/2023-01-04 04:10:43/p’ application.log
- 按时间查
实时显示系统中各个进程的资源占用状况
- top
- Ctrl+L 擦除并且重写屏幕。
m 切换显示内存信息。
t 切换显示进程和CPU状态信息。
M 根据驻留内存大小进行排序。
P 根据CPU使用百分比大小进行排序。
T 根据时间/累计时间进行排序。
- Ctrl+L 擦除并且重写屏幕。
a PID 进程id
b PPID 父进程id
c RUSER Real user name
d UID 进程所有者的用户id
e USER 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k %CPU 上次更新到现在的CPU时间占用百分比
l TIME 进程使用的CPU时间总计,单位秒
m TIME+ 进程使用的CPU时间总计,单位1/100秒
n %MEM 进程使用的物理内存百分比
o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位kb
s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
x COMMAND 命令名/命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志,参考 sched.h
查看磁盘空间
df -h 查看磁盘信息,根据大小适当显示
df -hl:查看磁盘剩余空间
df -h:查看每个根路径的分区大小
du -sh [目录名]:返回该目录的大小
du -sm [文件夹]:返回该文件夹总M数
du -h [目录名]:查看指定文件夹下的所有文件大小(包含子文件夹)