Linux 常用命令
[TOC]
快捷键
CTRL
+K
光标处剪切文本至本行结束CTRL
+Y
粘贴文本CTRL
+E
将光标移动到本行的末尾CTRL
+A
将光标移动到本行的开头ALT
+F
跳转到下一个空格处ALT
+B
回到前一个空格处ALT
+Backspace
删除前一个词CTRL
+w
剪切光标前一个词
find
查找命令
- Usage
1 | find [path...] [expression] |
path 制定查找的目录,默认是当前目录
expression 包含 operators, options, tests, and actions.
tests:
- -name Pattern 指定文件名的模式
- -mmin N 过去N分钟更新过的普通文件
actions:
- -delete
- -print 默认
- -ls
- example
1 | find . -name "*.txt" -ls |
locate
同样用来查找文件,是 find -name
的另一种说法,但是它搜索的是包含所有本地文件信息的数据库。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
- example
1 | # 搜索用户目录下所有以 m 开头的文件 |
whereis
只能用来搜索程序名,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
- example
1 | whereis grep |
which
在 PATH 变量指定的路径中,搜索某个命令的位置,并返回第一个搜索结果。
- example
1 | which grep |
type
用来区分某个命令是 shell 自带的,还是由外部的二进制文件提供的。如果是一个外部命令, -p 显示该命令的路径。
- example
1 | type cd |
wget
wget 是一个通过指定 URL 下载文件的工具,比如下载一些软件或者从远程服务器恢复备份到本地服务器。支持HTTP, HTTPS 和 FTP 协议,可以使用 HTTP 代理。可以在后台执行,支持断点下载
参数或使用范例
-
下载整个页面。
-x
建立服务器上一样的目录-nd
下载的所有内容会出现在本地当前目录 wget -r https://www.baidu.com
递归下载。下载服务器上的所有目录和文件。
-l number
指定下载的层次。wget -c http://prefix/dir/file
断点续传,服务器必须支持。
-t
表示重试次数-t 0
表示无穷次重试,直到连接成功。-T
表示超时等待时间,超过指定的时间就算超时。wget -i download.txt
批量下载。多个需要下载的文件的 URL 可以写在一个文件中,每行一个。(URL 指向文件就下载文件,指向网站就下载首页)
wget -m -reject=git http://prefix/dir
选择性下载
-reject=list
拒绝接受的文件类型-accept=list
接受的文件类型wget -http-user=USER -http-passwd=PASS URL
密码和认证。 只能处理利用用户名/密码方式限制访问的网站
wget -proxy-user=USER -proxy-passwd=PASS URL
代理进行下载。需要创建 .wgetrc 文件设置代理服务器:
http-proxy=11.11.11.11:8080
ftp-proxy=11.11.11.11:8080
-proxy=on/off 使用或关闭代理
wget -O rename.zip URL
重命名下载的文件。wget默认会以最后一个符合”/”的后面的字符来命令。
wget –limit-rate=300k URL
限速下载
wget -b URL
后台下载。
1 | # 查看正在下载的下载进度。 |
wget -tries=40 URL
增加重试次数,默认重试20次?
wget -mirror URL
镜像下载。下载整个网站到本地。
-p
下载所有为了html页面显示正常的文件–convert-links
下载后,转换成本地的链接-P ./LOCAL
保存所有文件和目录到本地指定目录wget -o download.log URL
保存下载日志到文件中。
wget -Q5m -i files.txt
限制下载的文件大小,超出后推出下载。
wget -r -A.pdf URL
只下载指定格式的文件。
wget FTP-URL
wget –ftp-user=USER –ftp-password=PASS URL
wget FTP 下载。
下载jdk
1 | # wget后需要加参数–no-cookies –header “Cookie: oraclelicense=accept-securebackup-cookie;” |
tar
用于打包、拆包、压缩、解压。
参数或使用范例
-c
建立一个打包文件
-x
解开一个打包文件
-t
查看 tar 包里的文件
-z
gzip 工具,用于压缩成或解压 .tar.gz 格式的文件 (格式的名字只是为了标记,以免解压时用了错误的压缩工具)
-j
zip2 工具,用于压缩成或解压 .tar.bz2 格式的文件
-v
显示打包、拆包、压缩或解压过程。
-f
使用文件名,后面立即接文件名
-p
保持原文件的属性
-P
使用绝对路径来压缩。
-N 2001/03/11
1 | tar -N 2017/01/23 -zcvf index.html hello.txt world.txt |
设定日期,后面接的日期还要新的文件才会被打包。
- –exclude file
1 | tar --exclude hello.txt -zcvf b.tar.gz index.html hello.txt |
剔除不需要进行打包的文件
可以作为命令行参数
1 | tar -cvf - *.txt | tar -xf - -C dir/ |
虽然 tar 命令提供了排除 VCS 的选项, 但是使用起来却有点问题, 简单点, 可以直接使用排序选项, *
默认应该是排除了 .
开头的文件, 所以 .gitignore .git/
都没有包含在最终的包中
1 | tar --exclude "target" --exclude "*.iml" -cvf spring-boot-demo-source.tar * |
cat
cat 命令用于显示文件的内容
参数或使用范例
- 显示整个文件
1 | cat file |
- 从键盘创建一个文件
1 | cat > file |
只能创建新文件,不能编辑已有文件。 Ctrl
+ d
结束输入
- 合并文件
1 | # 合并文件输出到另一个文件中 |
- -n 行编号
1 | cat -n|number file |
- -b 行编号,空白行不编号
1 | cat -b file |
grep
Global Search Regular Expression(RE) and Print out the line
全局正则表达式搜索,用于文本搜索(支持正则表达式),并把匹配的行打印出来。
- 常规用法
1 | grep match_pattern file |
- 多文件搜索
1 | grep "match_pattern" file_1 file_2 file_3 ... |
-v 反转查找
即打印不匹配该模式的所有行
1 | grep -v "match_pattern" file |
- -E 使用正则表达式
1 | grep -E "[1-9]+" file |
- -o 只输出文件中匹配到的部分
1 | grep -o -E "[1-9]+" file |
- -c 文件中包含匹配模式的行数
1 | grep -c "text" file |
- -n 输出包含匹配字符串所在的行号
1 | grep -n "text" file |
- -b 匹配模式位于的字符或字节偏移
1 | # 一般与 -o 一起使用,从第一个字符开始计算,起始值为 0 |
- -l 搜索匹配模式出现在哪些文件中
1 | grep -l "text" file1 file2 file3 ... |
- -r 多级目录中对文本进行递归搜索
1 | grep "text" . -r -n |
- -i 忽略匹配模式中字符的大小写、
1 | grep -i "text" file |
- -e 制定多个匹配模式
1 | grep -e "text1" "text2" file |
- 搜索结果中包括或者排除指定文件
1 | # 此参数的格式为 Ubuntun 下的格式,搜索文件只包括 txt,html,php 文件 |
-q 静默输出
打印匹配某个结果之后或之前的 n 行
1 | #显示匹配某个结果之后的3行,使用 -A 选项: |
stat
stat 命令用于显示文件的大小、所有者、用户组、索引节点号、权限、修改和访问时间等重要的统计信息。这是一个非常有用的命令,可以显示比 ls -l
更多的细节。
- example
1 | # -c 用于格式化输出, %n 表示文件的名称 %a 表示数字格式的权限 |
1 | ls * "" |