本系列来源于蓝桥:https://www.lanqiao.cn/courses/2610
命令行中的shell通配符
字符 | 含义 |
---|
* | 匹配0或多个字符 | ? | 匹配任意一个字符 | [list] | 匹配 list 中的任意单一字符 | [^list] | 匹配 除list 中的任意单一字符以外的字符 | [c1-c2] | 匹配 c1-c2之间的任意单一字符 | {string1, string2…} | 匹配 string1 或 string2 (或更多)其一字符串 | {c1…c2} | 匹配 c1-c2 中全部字符 如{1…10} |
示例
创建用户lilei
sudo adduser lilei
将lilei加入sudo组
sudo usermod -G sudo lilei
删除用户lilei
sudo deluser lilei --remove-home
问题
ls -l列出的每一行是什么意思?
例如:lrwxrwxrwx 1 root root 14 7月 6 17:12 anaconda3 -> /opt/anaconda3
示例 | 含义 |
---|
lrwxrwxrwx | 文件类型和权限 | 2 | 文件和权限 | root | 所有者 | root | 所属用户组 | 14 | 文件大小 | 7月 6 17:12 | 最后修改时间 | anaconda3 -> /opt/anaconda3 | 文件名 |
vim查漏补缺
添加或修改
A在行末添加文本
a在光标之后插入文本
删除
x在正常(normal)模式下可删除光标所在的一个字符
dw可删除一个单词,从光标当前位置到下一个单词起始处,d2w删除两个
de从光标当前位置到单词结尾,d2e删除两个
d$从当前光标删除至行末
移动
2w向前移动2个单词
3e光标移动到第三个单词的末尾
0移动光标到行首
撤销
U撤销对整行的修改
CTRL+r重做,即撤销被撤销的命令
置入
p将最后一次删除的内容置入光标下一行
替换
r替换掉当前光标所在字符,例如rc代表把当前光标所谓位置字符替换为c
R连续替换多个字符
ce改变文本直到一个单词的末尾
c$替换当前光标到行末的内容
s/old/new/可替换当前光标所在行的第一个字符串
s/old/new/g替换光标坐在行匹配到的所有字符串
m,ns/old/new/g代表替换m到n行之间出现的每个匹配串
%s/old/new/g替换整个文件中出现的每个匹配串
%s/old/new/g找到整个文件中的每个匹配串并提示是否替换
定位及文件状态
ctrl+g显示当前编辑文件中当前光标所在行位置以及文件状态信息
行号+G可以直接跳转到该行(等同于:+行号)
搜索类命令
/后n查找下一个,N查找上一个
ctrl+o回到上一次查找的位置,可以重复按
%可以查找配对的括号:)]}
执行外部命令
:!+命令可以执行外部命令,例如:!ls
保存
w+文件名另存为某文件
v motion :w filename,选择性的保存文件,按v之后高亮选择文件,按:w filename保存到文件中
提取和合并文件
:r FILENAME在光标中插入FILENAME文件里的内容
:r !ls 将ls命令的结果插入当前光标之后
复制粘贴
v光标移动选择文本,y复制文本,p粘贴文本
设置
:set ic, 设置查找时忽略大小写(ignore case),取消设置set noic
:set hls is, 匹配项高亮显示,取消设置 nohlsearch
Linux进程
fork
fork是一个系统调用,主要作用就会为当前进程创建一个新的进程,这个新的进程就是它的子进程,这个子进程除了父进程的返回值和pid以外其他的都一模一样,如进程的执行代码段,内存信息,文件描述,寄存器状态等等
exec
exec也是系统调用,作用是切换子进程中的执行程序,也就是替换其从父进程复制过来的代码段与数据段
ps -fxo user,ppid,pid,pgid,command
进程组与sessions
一般情况,进程组的 PGID 等同于进程组的第一个成员的 PID,并且这样的进程称为该进程组的领导者,也就是领导进程,进程一般通过使用 getpgrp() 系统调用来寻找其所在组的 PGID,领导进程可以先终结,此时进程组依然存在,并持有相同的PGID,直到进程组中最后一个进程终结
进程工作管理
& 命令后台运行 ctrl+z 使正在执行中的命令到后台运行
jobs命令详解
jobs命令查看被停止并被放置在后台的工作,一共四列
示例 | 含义 |
---|
[1] | 放置在后台的job的编号 | + | +表示最近刚被放置到后台的job,-表示倒数第二个被放置到后台的job,其他不会有修饰 | suspended | 表示状态 | tail -f TEST | 命令 |
fg
将后台的工作拿到前台来 直接使用fg表示提取预设工作,fg %2表示提取job编号为2的任务
kill
kill -signal %jobnumber kill -signal pid kill常用信号值
信号值 | 作用 |
---|
-1 | 重新读取参数运行,类似于restart | -2 | 如同ctrl+c的操作退出 | -9 | 强制终止该任务 | -15 | 正常的方式终止该任务 |
|