Terminal命令小结
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Terminal命令小结相关的知识,希望对你有一定的参考价值。
参考技术A 从入行至今,使用Terminal的次数并不多,现用现查是常态,平时开发中 Git 也是使用图形界面工具,所以对Terminal非常陌生,直到最近自己搭了一个VPN才真正意识到命令行的便捷,而搭建博客的过程中命令行更是不可缺少的工具。Mac上很多功能不提供图形界面,只能通过命令行来实现,例如说 ssh ,Windows下需要使用 XShell 之类的软件来操作,而*nix系统直接使用终端命令就可以直接链接:
通过Terminal可以访问所有目录,包括 Finder 隐藏的目录,而 Finder 的隐藏文件功能也只能通过 Terminal 开关,当然在系统 10.12 中可以使用 Shift + Command + . 来快速开启与关闭:
Terminal可以做界面图形App能做的绝大多数操作,因为界面图形App背后使用的就是Command Line,例如在你安装 Xcode 之后,你就可以通过命令行进行编译和打包操作:
虽然学习Command Line需要一个记忆和熟练的过程,但其强大且广泛的功能带给我们的便利快捷要远大于其学习成本,所以说使用Terminal,学会Command Line是一个程序员必备的素质之一。
Terminal里面成百上千条命令,每一条命令还有其具体的参数方法,谁也不能全都记住,那么怎么办?推荐学习Command Line的人们最先掌握的命令 man 。通过 man CommandName 来获取你想知道的命令的使用指南:
包括命令的名称、参数意义、使用描述等等,足够你理解使用这个命令了,在浏览期间可以通过 Space 翻页、 ↑ 和 ↓ 来滚动、输入 / SearchKeyword 来搜索,使用 Q 退出页面。如果你不清楚这个命令的名字,可以使用 man -K Keyword 来搜索,Terminal会询问你搜索的结果是否是你想要的。
虽然平时使用Finder管理文件已经很方便了,但是某些时候使用Terminal来进行路径和文件的操作也会非常便捷。
路径分为绝对路径和相对路径。
绝对路径总是以 / 开头,例如 /Users/xuhaoran/blog 。
相对路径是根据你的Terminal当前的路径位置有关,Terminal默认路径为 Home Folder ,就是 ⌘ + ⇧ + H 的Folder,相对路径可以使用 ../ 来表示上一级路径,使用 ./ 表示本级路径,通常可以省略,使用 ~/ 则表示你的 Home Folder 。
绝对路径的第一个 / 代表根目录,而 /Users/UserName 即是 HomeFolder 。
如何获取绝对路径?有两个方法:1、打开Terminal后,直接拖拽Folder或File进来;2、使用 pwd 命令:
跳转到指定路径使用 cd 命令:
cd - 命令可以后退目录:
查看当前路径下的所有Folder和File使用 ls 命令,值得一提的是使用 Tab 可以进行匹配输入,注意Terminal大小写敏感。通常情况 ls 命令是不显示隐藏文件的,可以使用 ls -A 来显示所有隐藏文件,即 .Name 形式的文件:
pwd 、 cd 、 ls 三条命令搭配使用可以完成绝大多数的路径查询跳转工作,至于这三个命令的其他参数可以使用 man 来自行查询。
而创建与删除路径使用 mkdir 与 rmdir 两个命令:
使用 mkdir 命令时,如果想创建多层目录的话可以添加参数 p :
通过Command Line检视文件,可以使用命令 cat 将文件内容输出到Terminal中:
面对较长的文本直接输出到Terminal中显然并不合理,那么可以使用 less 命令,在 less 命令进入文件后按 V 进入vim编辑器。
如果想查看文件类型信息,特别是在文件扩展名丢失的情况下,可以使用 file 命令:
可以使用 touch 命令创建文件和指定文件扩展名:
创建之后可以直接进入编辑器进行编辑,可以使用 vim 命令进去vim编辑器或者 nano 命令进入nano编辑器:
可以使用 open 命令打开一个文件或者使用Finder打开一个Folder,使用 open . 命令来打开当前的Folder:
对于基本的复制剪切操作可以分别使用 cp 、 mv 命令:
查看当前目录下的文件权限可以使用 ls -alh 命令:
其中权限部分详细的分为 d rwx rwx rwx 四部分。
第一部分中 d 表示为Directory,而 - 则表示File。
后面三部分分别表示“对所有者”、“对同组人”、“对其他人”的权限, r 读取权限、 w 写入权限、 x 执行权限, - 表示无权限。
以其中 AlamofireDemo 为例,表示为目录、所有者可读可写可执行、同组人可读可执行、其他人可读可执行。
而三部分的权限可使用数字表示,其中 r 权限为2², w 权限为2¹, x 权限为2º,例如: AlamofireDemo 目录的全校可以表示为 755 ,而 cerSigningRequest 文件的权限为 644 。
权限是可以变更的,使用 chmod 命令:
这是通常情况下的标准命令,为文件添加 rwxr-xr-x 权限, -R 参数表示改变目录结构下所有子目录文件的权限而并非目录本身。 chmod 777 FileName 则是非常危险的命令,赋予了其他人与root相同的权限。
chmod 还有一种改变权限的形式,使用运算符 + (增加)、 - (去除)、 = (覆盖设定)配合用户类型 u (所有者)、 g (同组人)、 o (其他人)、 a (全部):
上面这条命令是为 AlamofireDemo 这个目录的同组人添加执行权限。
同样,拥有者和群组也是可以改变的,使用 chown 命令:
sudo 命令的作用在于会用root账户权限来执行后面的命令,通常在执行一条命令提示 Permission denied 时使用。使用 sudo !! 再次执行:
如果执行多条需要root权限的命令,可以使用 sudo -s 获取root权限,注意 # 代替了 $ 表示使用root权限操作,操作结束可以使用 Control + D 或者输入 exit 命令来退出环境:
在网络通信之前,最常用的操作就是 ping 命令,它会给网络主机发送一个回应请求,进而验证可否进行通信:
可使用 Control + C 停止发送请求。
ssh 是一种远程登录和其他安全服务的协议,远程登录相比较于 telnet 和 rlogin 两种协议,有其特有的优势,例如加密传输、数据压缩等。
Mac的Terminal自带SSH,使用 ssh 就可以登录远程服务器:
之后就可以在远程服务器进行一些常规操作或者一些逗逼的命令:
网络通信命令还有很多,这里限于能力就不献丑了。
bash 命令是用来执行一段脚本命令的命令,通常可以用来执行本地写好的脚本,例如:
who 命令可以列出当前登录的所有用户, who am i 显而易见是回答“我是谁?”的问题:
console 是电脑的底层控制台,伴随着电脑开机而启动; ttys (Teletypewriter的缩写)则是Terminal的类型名称,随着Terminal数量增加而增加计数。使用 Command + N 来新建Terminal。
至于 Console 、 Terminal 、 tty 和 Shell 的关系这里就不叙述了。
使用 ps 命令来查看进程状态,可以确定哪些进程僵死或过多占用资源等。通常使用 ps aux 来查看具体进程:
PID 表示进程的id, %CPU 、 %MEM 分别表示进程占用CPU和内存的比重, VSZ 表示使用掉的虚拟内存(KB), RSS 表示占用的固定内存(KB), TT 表示在哪个Terminal上执行, STAT 表示该进程目前的状态。
关于 STAT 的状态码:
查询到进程之后可以使用 kill 命令用来终止进程:
至于 SignalNumber 可以通过命令 kill l 获取:
其中常用的为9(SIGKILL),对付大多数程序可以 kill -9 PID 直接干掉。
其他常用的系统命令有查看时间的命令 date :
查看日历的命令 cal :
cal 命令后面可接年份,例如 cal 2017 ,也可以接月份+年份,例如 cal 8 2018 表示展现2018年8月的日历。
对于常用的命令可以使用 alias 为其添加别名,例如:
删除别名可以使用 unalias :
使用 control + C 可以终止持续进行的命令,例如 ping 命令。
使用 control + D 或者 exit 命令可以结束当前状态,例如结束 ssh 的远程链接。
使用 control + L 或者 clear 命令可以清屏,与 reset 命令不同的是, clear 可以滚动查看之前的内容,而 reset 则是完全清除内容。
使用 history 命令可以查询执行命令的历史记录 history PageCnt :
连续写了两天时间,期间不断的去查询和完善内容,感觉这个过程又收获了很多知识。
Terminal的强大只有真正融入进去才能感受得到,以上这些都只是本人在工作中遇到的最基本的内容,说成冰山一角毫不为过,所以日后遇到新的内容还会继续进行补充更新。
最后,很多命令下的参数都有不同的用法,当遇到问题了请熟练地使用 man 命令,希望对您有所帮助。
sh #terminal NANO命令
以上是关于Terminal命令小结的主要内容,如果未能解决你的问题,请参考以下文章