共计 3682 个字符,预计需要花费 10 分钟才能阅读完成。
图形用户操作界面(Graphical User Interfaces, GUI)对用户很敌对,易于上手,没有命令行操作界面(Command-Line Interfaces, CLI)这么平缓的学习曲线。
但事实上,他们通常会耗费更多的计算资源,并且在自动化解决方面不如 CLI 那么容易且弱小。
作为计算机专家,咱们心愿工作做得又快又好。当然咱们也晓得各种“黑话”一样的命令行可能不那么容易发现或者记住,所以咱们试着在这儿列举一些常见的 GUI 操作是如何在 CLI 实现的。
拷贝一个文件
别再用拖拽或者 **CMD/CTRL + C**
, **CMD/CTRL + V**
来复制文件了!
将 readme.txt
拷贝到 documents
目录下
$ cp readme.txt documents/
创立文件正本
不要再用 ** 右键 **
来创立正本了!
$ cp readme.txt readme.bak.txt
更高级的写法:
$ cp readme{,.bak}.txt
# 注: 留神这里的 {} 起什么作用,能够试试 touch foo{1,2,3}.txt 而后看看后果如何
拷贝一个目录
也别拖拽目录了,也不要 **CMD/CTRL + C**
, **CMD/CTRL + V**
来拷贝目录了!
把 myMusic
整个目录拷贝到 myMedia
目录上面
$ cp -a myMusic myMedia/
# 或者你也能够写成
$ cp -a myMusic/ myMedia/myMusic/
创立目录正本
也别用 ** 右键 **
来创立目录正本了
$ cp -a myMusic/ myMedia/
# 如果 `myMedia` 文件夹不存在的话
$ cp -a myMusic myMedia/
挪动一个文件
没有什么拖拽文件,也没有 **CMD/CTRL + X**
, **CMD/CTRL + V**
来剪切
$ mv readme.txt documents/
肯定 要在挪动文件时在目标目录的最初加上斜杠 /。(不然的话,简言之会被当作这样)
重命名文件
别用 ** 右键 **
–** 重命名 **
了!
$ mv readme.txt README.md
挪动一个目录
没有了拖拽文件夹,也没有 **CMD/CTRL + X**
, **CMD/CTRL + V**
$ mv myMedia myMusic/
# 或者也能够写成
$ mv myMedia/ myMusic/myMedia
重命名目录
也别 ** 右键 **
文件夹而后 ** 重命名 **
了
$ mv myMedia/ myMusic/
合并目录文件
别再用拖拽来合并目录了!
$ rsync -a /images/ /images2/ # 注: 当心!!同名的文件会被笼罩掉!
创立新文件
别再用 ** 右键 **
来新建文件了!
$ touch 'new file' # 如果文件曾经存在,会更新它的权限和批改日期
# 或者也能够用
$ > 'new file' # 注: 如果文件曾经存在,会清空外面内容
创立新目录
也别用 ** 右键 **
来新建目录了!
$ mkdir 'untitled folder'
# 或者能够用上面这样的写法新建一连串文件夹
$ mkdir -p 'path/may/not/exist/untitled\ folder'
显示文件或目录大小
别再用 ** 右键 **
点开来看属性了!
$ du -sh node_modules/
显示文件或目录其余信息
真的别用 ** 右键 **
了!
$ stat -x readme.md # macOS 零碎
$ stat readme.md # Linux 零碎
用默认程序关上文件
没有双击,没有双击,没有双击
$ xdg-open file # Linux 零碎
$ open file # MacOS 零碎
压缩整个目录
别再用 ** 右键 **
–** 压缩 **
了!
$ zip -r archive_name.zip folder_to_compress
解压目录的压缩包
也别用 ** 右键 **
–** 解压 **
了!
$ unzip archive_name.zip
速览压缩包中文件
咱们不要**WinRAR**
$ zipinfo archive_name.zip
# 或者也能够用
$ unzip -l archive_name.zip
删除一个文件
别再 ** 右键 **
而后永恒删除文件了!
$ rm my_useless_file
十分重要:rm
指令会把 my_useless_file
永恒删除,和把它移到回收站后再点 清空回收站
一样的成果!
删除一个目录
也别再 ** 右键 **
而后永恒删除目录了!
$ rm -r my_useless_folder
显示目录中文件
别关上你的 ** 访达 **
或者** 文件浏览器 **
$ ls my_folder # 简简单单
$ ls -la my_folder # -l: 以列表格局显示. -a: 显示包含暗藏文件的所有文件. -la 联合以上两个选项.
$ ls -alrth my_folder # -r: 倒序显示. -t: 按批改工夫排序. -h: 以易读的格局显示大小.
显示目录下所有文件和子目录的文件树
别关上你的 ** 访达 **
或者** 文件浏览器 **
$ tree # Linux 零碎
$ find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g' # MacOS 零碎
# 注: 装置 homebrew (https://brew.sh) 后能让你在 MacOS 上也能用(局部)Linux 的性能(比方 tree). 装置办法见下
# brew install tree
找出古老文件
别用你的 ** 文件浏览器 **
!
找出所有最近一次批改在 5 天之前的文件
$ find my_folder -mtime +5
显示日历
别用日历小部件来看几月几号是星期几了!
显示一个文本格调的日历
$ cal
显示特定月份和年份的日历
$ cal 11 2018
计算将来日期
别用在线日期计算器来干这活了!
查看明天的日期
$ date +%m/%d/%Y
查看一周后的日期
$ date -d "+7 days" # Linux 零碎
$ date -j -v+7d # MacOS 零碎
应用计算器
真的,抛开那些计算器小部件吧
$ bc
强制退出应用程序
别用 **CTRL + ALT + DELETE**
再选要终止的程序那一套了!
$ killall program_name
查看服务器响应
而不必开浏览器!
curl -i umair.surge.sh
# curl 指令的 -i (--include) 选项会在让它输入中蕴含 HTTP 的响应头.
查看文件内容
不须要双击
$ cat apps/settings.py
# 如果文件太大,一页显示不下的话,你能够应用一个 "翻页软件" (less) 来一次查看一页内容
$ less apps/settings.py
检索文本内容
别用 **CMD/CTRL + F**
哦
$ grep -i "Query" file.txt
阐明:grep
能在文件中检索特定内容,图中是一些常见的配套命令行参数
-i
:大小写敏感-A/-B/-C <N>
:顺带显示前后文,-A
示意前面 N 行,-B
示意后面 N 行,-C
示意前后各 N 行-E
:应用正则表达式来匹配-v
:反选(输入不匹配的行)-l
:只输入能匹配到内容的 文件名-F
:不要将检索内容视为正则表达式-r
:递归匹配目录下所有文件的内容-o
:只输入匹配上了的局部(而不是整行)-a
:也对二进制文件进行检索,而不是疏忽它们!
你也能够用别的一些指令来代替 grep
,比方 ack
,ag
和 ripgrep
(更适宜检索代码文本)
查看一张图片
进行你的关上文件预览的行为!
$ imgcat image.png
# 注: 须要 iTerm2 终端程序(仅 MacOS).
查看磁盘大小
别 ** 右键 **
点磁盘图标,也别开什么磁盘工具,想都别想!
$ df -h
查看计算机性能
别开你的 ** 流动监视器 **
和什么** 工作管理器 **
!
$ top
技巧小贴士
给 macOS 用户筹备的,然而 bash
命令行环境应该也会有别的
$ !! # 再一次执行上一条指令
$ sudo !! # 以管理员身份执行上一条指令
$ !<word> # 加上特定命令行前缀再执行上一条指令
$ !<word>:p # 显示上一条指令加上前缀,但不要执行
$ <space>command # 执行指令,但不要存到历史记录中
$ echo "ls -l" | at midnight # 在特定工夫执行指令
$ caffeinate -u -t 3600 # 接下来一小时内阻止你的 mac 休眠
$ ls -lhs # 将目录中文件按大小排序显示
$ qlmanage -p <file> # 从命令行调用 "速览"
$ top -o vsize # 查看是什么拖慢了你的 mac
热键
Ctrl + A 跳转到你以后编辑的命令行行首
Ctrl + E 跳转到你以后编辑的命令行行尾
Ctrl + L 清屏,和 clear 指令相似
Ctrl + U 革除行中光标之前的内容(在行尾时即革除整行)Ctrl + H 和退格一样
Ctrl + R 能让你搜寻之前应用过的命令行记录
Ctrl + C 强制进行以后的程序
Ctrl + D 退出以后 shell(壳层 / 命令行界面)Ctrl + Z 将当下运行的程序挂起,应用 fg 来复原运行
Ctrl + W 删除光标前的一个词
Ctrl + K 革除行中光标之后的内容
Ctrl + T 替换光标前两个字符
Esc + T 替换光标前两个词
Alt + F 将光标移至行内下一个词处
Alt + B 将光标移至行内上一个词处
Tab 主动补全文件 / 目录的名称
我记不住这些神秘指令怎么办呢?
善用谷歌或者 man
指令来查看你不相熟的那些指令。或者你也能够尝试 tldr,这是一个由社区提供反对的简化后的 man
帮忙页面合集。
转载
有了 CLI,还要什么 GUI