OSpre
LINUX基础操作
vim
i:进入编辑模式
find
场景,命令示例,解释
按文件名查找,”find /home -name “”test.txt”””,在 /home 目录下查找名为 test.txt 的文件。
模糊匹配,”find . -name “”*.log”””,在当前目录(.)下查找所有以 .log 结尾的文件。
忽略大小写,”find . -iname “”Readme.md”””,查找名字为 readme.md 的文件,不区分大小写。
查找文件夹,find /etc -type d,只查找 /etc 下的目录(d 代表 directory)。
1 | grep |
1 | tree |
连接终端后,我们所处的目录是 ~ 目录,也就是用户主目录。我们可以使用 ls 命令列出一个目录下都有什么内容,可以用 cd 进入到一个目录(输入绝对路径和相对路径都可以),可以用 pwd 显示当前目录的绝对路径。我们可以用 mkdir 创建一个目录,用 rmdir 删除一个空目录。我们可以使用 touch 新建文件,rm 删除文件,cp 复制文件,mv 移动或者重命名文件。
常用快捷键
Ctrl+C 终止程序
Ctrl+Z 挂起当前程序(暂停程序放到后台,恢复可以用fg [jb_spec])
Ctrl+D 终止输入
Ctrl+L 清屏
Ctrl+S 暂停该终端
Ctrl+Q 让终端继续运行
其它操作
ctags
Ctrl+l 跳转到定义处
Ctrl+O 返回跳转位置
tmux
Ctrl+B % 左右分屏
Ctrl+B “ 上下分屏
Ctrl+B 方向 根据按键方向切换到某个窗格
Ctrl+B space 切换布局
Ctrl+B X 关闭当前正在使用的窗格 Y确认
Ctrl+B D 分离当前会话,回到Shell终端环境
tmux ls 查看会话 tumx a -t 会话名 恢复到原来的会话
Tmux使用教程
Git的使用
Shell脚本教程
添加执行权:chmod+ x 文件名
执行脚本:./文件名
变量
注意没有空格1
var_name=value
参数
参数在 Shell 脚本中体现为特殊的变量。在执行语句中,参数以空格分隔,每一个参数在脚本中都是一个字符串变量。1
2
3
str="Hello, $1 and $2!"
echo $str1
./hello.sh world OS
需要补充的是,对于传递的参数,不仅有 $1、$2 这样的特殊变量,还提供了其他的特殊变量:$# 传递的参数个数;$*一个字符串,内容是传递的全部参数。
条件循环
函数
sed的使用
sed教程1
2
3
4
5
6
7
8
9
10
11
12sed
sed [选项] '命令' 输入文本
选项(常用):
-n:安静模式,只显示经过sed处理的内容。否则显示输入文本的所有内容。
-i:直接修改读取的档案内容,而不是输出到屏幕。否则,只输出不编辑。
命令(常用):
<行号>a<内容>: 新增,在行号后新增一行相应内容。行号可以是“数字”,在这一行之后新增,也可以是“起始行,终止行”,在其中的每一行后新增。当不写行号时,在每一行之后新增。使用$表示最后一行。后面的命令同理。
<行号>c<内容>:取代。用内容取代相应行的文本。
<行号>i<内容>:插入。在当前行的上面插入一行文本。
<行号>d:删除当前行的内容。
<行号>p:输出选择的内容。通常与选项-n一起使用。
s/<re>/<string>/:将<re>(正则表达式)匹配的内容替换为<string>。1
2
3
4
5
6
7
8
9
10
11
12sed -n '3p' my.txt
# 输出 my.txt 的第三行
sed '2d' my.txt
# 删除 my.txt 文件的第二行
sed '2,$d' my.txt
# 删除 my.txt 文件的第二行到最后一行
sed 's/str1/str2/g' my.txt
# 在整行范围内把 str1 替换为 str2。
# 如果没有 g 标记,则只有每行第一个匹配的 str1 被替换成 str2
sed -e '4astr ' -e 's/str/aaa/' my.txt
#-e 选项允许在同一行里执行多条命令。例子的第一条是第四行后添加一个 str,
# 第二个命令是将 str 替换为 aaa。命令的执行顺序对结果有影响。
重定向和管道
追加输出
覆盖文件原内容

