什么是命令行
命令行(command-line
)窗口(有时指CLI
,相对于GUI
图形操作界面)是一个支持键入文本命令使计算机执行相应任务的工具,它与日常的鼠标的在菜单和按钮上的移动与点击形成鲜明的对比。由于你可以通过键盘输入直接控制计算机,很多操作任务都可以快速执行,一些批量操作可以通过特殊的命令自动完成————大大节省时间,提升效率。
man
查看命令说明,英文manual
说明书的意思
man [orderName]
文章大部分都是我使用该指令去查看说明并翻译来的,例如: man ls
磁盘管理
ls
显示指定工作目录下之内容
ls -[参数] [目录,一般在当前目录工作,不填]
常用参数:
-
-l
长列表形式显示目录; -
-R --recursive
递归现实子目录; -
-h --human-readable
与l
连用,将可读文件大小以K、M、G格式化 -
-s --size
打印文件大小 -
--sort=WORD
根据除name
之外的指标排序:- none (
-U
), 无 - size (
-S
), 文件大小(从大到小) - time (
-t
), 时间(最新往前) - version (
-v
), 版本(最新往前)
- none (
-
-r --reverse
逆序显示,lSr
表示文件大小从小到大排序
pwd
用于显示工作目录路径
cd
切换当前工作目录至 dirName(目录参数)
cd [dirName]
dirName: 绝对路径、相对路径,不填则跳到自己的home目录即login 时所在的目录
mkdir
创建dirName目录
mkdir -[参数] [dirName]
参数: -p
确保目录存在,不存在就新建
mkdir test/child //test目录下(存在的),如果child不存在会创建
mkdir test/child/baby //test目录下(存在的),如果child不存在会报错
mkdir -p test/child/baby //test目录下(存在的),如果child不存在会创建
rmdir
删除dirName目录(必须为空,非空报错)
rmdir -[参数] [dirName]
参数:-p
是当子目录被删除后使它也成为空目录的话,则一并删除
文件管理
touch
修改文件的时间属性,常用来新建空白文件
touch [opts] fileName
opts: 一般不传参数,最常用于新建文件如:touch index.js
查看文件时间属性 用 ls -l fileName
。
rm
删除文件或目录(默认不删除目录)
rm [opts] name
opts:
-
-f --force
强制进行,忽略不存在的文件和参数,不提示 -
-i
删除每个文件都进行提示 -
-I
删除超过三个文件或递归删除时提示一次,比-i
少打扰并减少大多数错误 -
-r -R --recrusive
递归删除即删除目录 -
-d --dir
删除空目录
一些特殊规则:
- 删除目录下所有文件(不包括目录) :
rm *
- 删除指定类型文件:
rm -rf *.vue
- 删除指定名称文件:
rm -rf [filename].vue
cat
查看文件
cat [opts] [filename]
opts:
-
-n --number
所有的输出行加上行号 -
-b --number-nonblank
对所有输出行(除去空白行)加行号 -
-s --squeeze-blank
遇到多行空白行后压缩成一行 -
-E --show-ends
每行末尾加$
常规操作:
- 显示整个文件内容:
cat filename
-
向文件追加内容(没有就新建),不加
<<结束标记
的话只能新建不存在的文件,
加结束标记后,可输入指定的结束标记结束内容的输入cat >filename <<[结束标记] //覆盖写入,如果接下来直接输入结束标记则表示清空文件内容 cat >>filename <<[结束标记] //不覆盖,追加内容
- 合并文件:
cat file1 file2 >file
more
分页查看文件
类似cat
查看文件,分页显示,空白键翻页,退格键上一页
more [opts] filename
opts:
-
-number
一次显示行数 -
-d
显示操作提示信息 -
-f
计算实际行数,忽略屏幕自动换行 -
+num
从num行开始显示 -
-s
多行空白行压缩成一行
less
查看文件
与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件
less [opts] filename
opts:
-
-N
显示每行的行号 -
-s
多行空白行压缩成一行
vi [file]
查看编辑文件
mv
移动/重命名文件/目录
mv [opts] A B
opts:
-
-i --interactive
覆盖时提示 -
-f
强制覆盖无任何提示
F
表示文件, D
表示目录
命令规则 | 运行结果 |
---|---|
mv f1 f2 | f1 rename f2 |
mv f1 d1 | f1 move d1目录里 |
mv d1 d2 | d2存在,d1移动到d2里;d2不存在,rename |
scp
复制文件和目录
secure copy(remote file copy program)
远程文件拷贝程序
scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 ... [[user@]host2:]file2
常用参数:
-
-1
强制scp
使用协议1 -
-2
强制scp
使用协议2 -
-3
远程主机之间通过本地host拷贝,没有这个参数数据会直接在远程主机之间传输,不显示进度 -
-4/6
强制scp
只使用IPv4/IPv6
寻址 -
-B
批处理模式(不会索要密码和短语) -
-C
支持压缩 -
-p
保留原始文件的修改时间,访问时间和操作权限 -
-q
不显示进度条和提示信息 -
-r
递归复制整个目录 -
-v
展示复制过程中的详细信息 -
-P
明确连接的远程主机的端口
文档操作
grep
打印匹配的内容
grep [opts] [pattern] file...
global search Regular Expression and Print out the line
opts:
-
-i --ignore-case
忽略字符大小写 -
-w --word-regexp
全字符匹配 -
-o --only-matching
只显示匹配的行 -
-H --with-filename
每个匹配行都显示该行所在文件名 -
-h --no-filename
每个匹配行前不显示文件名,只有一个文件时默认不显示 -
-n --line-number
显示行号
如: grep -n abc text.txt
搜索text.text文件中含abc的行并显示结果及行号
系统管理
ps
查看进程
ps [opts] [--help]
opt:
-
-ef
标准格式显示进程 -
-aux
显示所有包含其他使用者的行程
Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux。这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格,System V风格和BSD 风格,ps aux最初用到Unix Style中,而ps -ef被用在System V Style中,两者输出略有不同。现在的大部分Linux系统都是可以同时使用这两种方式的。 参考
备份压缩
tar
压缩打包文件
tar [opts] filename...
使用示例:
tar -cf archive.tar foo bar
// # Create archive.tar from files foo and bar.
// 创建 foo和bar文件的合并压缩文件archive.tar
tar -tvf archive.tar
// # List all files in archive.tar verbosely.
// 详细列出archive.tar包含的文件
tar -xf archive.tar
// # Extract all files from archive.tar.
// 解压archive.tar文件
常用opts
解释:
-
-A --catenate
向已归档(压缩)文件添加文件 -
-r --append
向文件末尾添加文件 -
-u --update
只添加重复文件中的最新文件 -
-C
改变目标文件目录 (tar -xvf a.tar -C /path (/path 解压至其它路径)
) -
-c --create
创建新文件 -
-t --list
列出文件内容 -
-f --file
使用指定文件 -
-v --verbose
详细列出文件执行过程 -
-x --extract --get
解压释放文件 -
-z --gzip
通过gzip
方式压缩文件 -
-j --bzip2
通过bzip2
方式压缩文件
只用tar
命令不指定压缩算法的话,只是将文件打包归档,不会有压缩效果,解压亦然
打包后文件后缀名.tar
,常用主流打包指令用-zcvf
文件后缀名.tgz
,打包几种方式对比可以详细看 这里
zip 压缩.zip
文件
zip是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件
zip [opts]
常用opts
解释:
-
-v
显示指令执行过程或显示版本信息 -
-q
不显示指令执行过程 -
-r
递归处理,将指定目录下的所有文件和子目录一并处理 -
-d
从压缩文件内删除指定的文件
使用示例:
zip -dv a.zip b //从压缩文件a.zip中删除文件b
unzip 解压.zip
文件
解压缩zip文件
unzip [opts] file/dir
常用参数:
-
-l
列出压缩包内的文件 -
-v
显示任务详情 -
-d
指定存储目录 参数附在解压文件后 -
-P
使用密码选项unzip -P pwd file..
命令重定向(Command Redirection)
每个命令行应用都可以接收标准的输入并且打印输出结果,我们也可以使用|
或者>
操作符将一个命令重定向到另一个命令输出,这可以串接多个命令成更有用的命令。
&&
表示前一条命令执行成功时,才执行下一条命令
||
表示前一条命令执行失败时,才执行下一条命令
|
表示管道pipe
,上一条命令的输出作为下一条命令参数
>
将正常信息重定向
例如:
ls -l | more
// 使用ls -l显示文件列表,并使用more浏览结果
ls -l > filename.list
// 查看当前目录并把结果写进filename.list里
cat filename.list | grep keyword > filefound.list
//显示filename.list文件并查询keyword把结果写入文件filefound.list里