什么是命令行

命令行(command-line窗口(有时指CLI,相对于GUI图形操作界面)是一个支持键入文本命令使计算机执行相应任务的工具,它与日常的鼠标的在菜单和按钮上的移动与点击形成鲜明的对比。由于你可以通过键盘输入直接控制计算机,很多操作任务都可以快速执行,一些批量操作可以通过特殊的命令自动完成————大大节省时间,提升效率。

man 查看命令说明,英文manual说明书的意思

man [orderName] 

文章大部分都是我使用该指令去查看说明并翻译来的,例如: man ls

磁盘管理

ls 显示指定工作目录下之内容

ls -[参数] [目录,一般在当前目录工作,不填]

常用参数:

  • -l 长列表形式显示目录;
  • -R --recursive 递归现实子目录;
  • -h --human-readablel连用,将可读文件大小以K、M、G格式化
  • -s --size 打印文件大小
  • --sort=WORD 根据除name之外的指标排序:

    • none (-U), 无
    • size (-S), 文件大小(从大到小
    • time (-t), 时间(最新往前
    • version (-v), 版本(最新往前
  • -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 删除目录

一些特殊规则:

  1. 删除目录下所有文件(不包括目录) : rm *
  2. 删除指定类型文件: rm -rf *.vue
  3. 删除指定名称文件: rm -rf [filename].vue

cat 查看文件

cat [opts] [filename]

opts:

  • -n --number 所有的输出行加上行号
  • -b --number-nonblank 对所有输出行(除去空白行)加行号
  • -s --squeeze-blank 遇到多行空白行后压缩成一行
  • -E --show-ends 每行末尾加$

常规操作:

  1. 显示整个文件内容: cat filename
  2. 向文件追加内容(没有就新建),不加<<结束标记的话只能新建不存在的文件,
    加结束标记后,可输入指定的结束标记结束内容的输入

    cat >filename <<[结束标记]      //覆盖写入,如果接下来直接输入结束标记则表示清空文件内容
    cat >>filename  <<[结束标记]    //不覆盖,追加内容
    
  3. 合并文件: cat file1 file2 >file

more 分页查看文件

类似cat查看文件,分页显示,空白键翻页,退格键上一页

more [opts] filename

opts:

  • -number 一次显示行数
  • -d 显示操作提示信息
  • -f 计算实际行数,忽略屏幕自动换行
  • +numnum行开始显示
  • -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里


Mr_zhang
395 声望10 粉丝

步步向“前”


« 上一篇
TypeScript入门