sa@Android/linux常用命令
仅记录常用命令的常用用法,不是大全!
搜索文件内容 grep
选项 | 作用 | 实例 |
---|
-n | 显示行号 | |
-i | 忽略大小写 | |
-E | 支持扩展的正则语法 | |
-r | 递归查找所有目录 | |
-exclude-dir= | 忽略目录 | grep -R --exclude-dir=user keyword /etc |
-exclude-dir={ } | 忽略多个目录 | grep -R --exclude-dir={proc,boot,sys} keyword /etc |
–exclude=*.{ } | 忽略部分文件 | grep -rl --exclude=*.{png,jpg} linuxize * |
查找文件 find
选项 | 作用 | 实例 |
---|
-iname | 忽略大小写、按文件名查找 | |
-size [±]k/M/G | 按尺寸查找 | find . -size -10k |
-mtime [±] | 按文件修改天数查找 | find . -mtime -10 |
-mmin [±] | 按文件修改分钟查找 | find . -mmin -10 |
-type d/f/l | 按文件修类型查找 | find . -type d |
-o | 多种查找方式逻辑或查找 | find . -type d -o -mmin -10 |
-exec CMD {}\ | 查找到的文件执行命令CMD | find . -type d -exec ls -l {}\ |
locate | 取代find命令 | 基于数据库查找,速度更快 |
批量修改文件内容 sed
sed不仅仅是命令,而是命令集,其中包含多个子命令
选项 | 作用 | 实例 |
---|
-e | 多重编辑,且命令顺序会影响结果 | |
-i | 直接修改文档读取的内容,不在屏幕上输出 | |
-r | 使用扩展正则 | |
命令 | 实例 | 解释 |
---|
s | sed -i ‘s/你好/hello/g’ test.txt | 将文本中所有的“你好”替换为"hello" |
d | sed -i ‘/hello/d’ test.txt | 将文本中含有的"hello"的行删除 |
a | sed -i ‘/hello/a/goodbye’ test.txt | 在文本中含有的"hello"的行后追加一行goodbye |
| sed -i '1, '“$var”'H; 10G test.txt | 将第一行到第VAR行(VAR是shell变量)复制到第10行 |
sed没有内置行号变量,要想把递增的数字当做替换内容插入每一行,需要借助shel脚本:
sum=0
total=10
for ((i=1; i<=total; i++))
do
((sum +=1))
sed -i '"sum"'s/^/test_'"sum"'&/g' teset.txt #每行行首添加行编号的内容
sed -i '"sum"'s/$/test_'"sum"'&/g' teset.txt
命令过滤器 xargs
选项 | 实例 | 解释 |
---|
-d | echo ‘11@22@33’ | xargs -d @ | 自定义一个定界符分割前一命令的输入 |
-n | echo ‘11@22@33@44@55@66@77@88@99’ | xargs -d ‘@’ -n 3 echo | 表示将xargs生成的命令行参数,每次传递几个参数给其后面的命令执行 |
文本编辑器 vim
「命令模式」:可以进行删除、复制、粘贴等快捷操作。
「编辑模式」:可以编辑文件内容。
「末行模式」:可以通过命令操作文件,比如搜索、保存、退出等。
命令模式常用操作:
命令 | 实例 | 解释 |
---|
home键 | 光标移动到行首 | |
end键 | 光标移动到行尾 | |
[数字]dd | 剪切n行或一行 | |
[数字]yy | 复制n行或一行 | |
p | 粘贴上一步复制或者剪切的内容 | |
u | 撤回上一步操作 | |
ctrl + r | 恢复撤回的操作 | |
/+字符串 | 查找内容 | |
n/N | 查找的内容下翻与上翻 | |
ctrl+w | 多窗口时用于切换焦点到不同窗口 | |
编辑模式常用操作:
命令 | 实例 | 解释 |
---|
home键 | 光标移动到行首 | 编辑模式也可以使用 |
end键 | 光标移动到行尾 | 编辑模式也可以使用 |
ctrl+p | 补全 | 仅编辑模式:可以使用 |
末行模式常用操作(shift + : 进入):
命令 | 实例 | 解释 |
---|
%s/old/new/g | 搜索替换字符串,c代表需用户确认 | |
set+属性 | 设置属性,包括:number、ignorecase、highlight | |
w+文件名 | 另存为 | |
vs+文件名 | 水平分屏打开另一个文件 | |
归档+压缩 tar
- 归档:零散文件归为一个归档包但不压缩
- 压缩:将上一步归档文件进行压缩
命令 | 实例 | 解释 |
---|
-c | tar -cvf pic.tar *.jpg | 归档文件 |
-x | tar -xvf pic.tar | 解包文件 |
-cz | tar -czvf pic.tar.gz *.jpg | 基于gzip压缩+归档文件 |
-xz | tar -xzvf pic.tar.gz | 基于gzip解压缩+解包文件 |
-cj | tar -cjvf pic.tar.bz2 *.jpg | 基于bzip2压缩+归档文件 |
-xj | tar -xjvf pic.tar.bz2 | 基于bzip2 解压缩+解包文件 |
版本管理 git
实际并不是linux命令,但是都是命令行形式,就放在一起记录吧
命令 | 实例 | 解释 |
---|
git fetch | git fetch origin master | 从远程的origin仓库的master分支下载代码到本地的origin maste但未合并 |
git pull | git pull origin master | 将远程origin仓库的master分支拉取下来与本地当前分支合并,相当于 git fetch + git merge |
git clone | | 相比git pull, git clone只要你想往本地下远程仓库完整的代码就可以用,不用连接远程仓库(即使无权限), 但不适用于更新本地代码 |
git cherry-pick | git cherry-pick commitID | 单独将其它的一笔commit内容合入另一分支后继续使用git commit提交 |
git diff --staged | | 本地目录的修改,加–staged则是查看暂存区内文件的修改 |
git reset --soft HEAD^ | | 回退本地仓库修改,暂存区与本地工作区保留修改 |
git reset --mixed HEAD^ | | 回退本地仓库、暂存区修改,本地工作区保留修改 |
git reset --hard HEAD^ | | 回退本地仓库、暂存区、本地工作区修改 |
git checkout file | | 将本地文件恢复成暂存区内容或者本地工作区修改前内容,注意与reset的不同:reset是还原提交状态,checkout是还原文件内容 |
git stash | | 暂存修改,暂存后切换分支仍可保留 |
git stash list | | 查看所有暂存的改动 |
git stash apply stash{数字} | | 将某一次暂存提取到工作区,但是不清除暂存区的记录,而pop则是清除,个人一般不使用pop |
git stash drop stash{数字} | | 将某一次暂存丢弃 |