一、 前言
在公司看到导师同事命令敲得那么熟练.反观自己只懂得一些`cd`、`ls`,导师就建议:
你该多去熟悉一下终端命令,这些都是你提高开发效率的方法
于是总结一次常用的终端命令,方便以后查阅和使用
二、 命令
打开ssh正确姿态
打开ssh密钥文件是很简单的命令,因为不经常使用所以总是记不住,每次需要用的时候就得去百度. ``` //打开.ssh文件 open ~/.ssh ``` 打开id_rsa.pub,里面所有内容就是密钥内容
目录操作
命令 | 功能描述 | 简单样例 :--:| :--:| :--:| mkdir | 创建一个目录 | mkdir dirname rmdir | 删除一个目录 | rmdir dirname mvdir(mac使用mv) | 移动或重命名一个目录 | mvdir dir1 dir2 cd | 改变当前目录 | cd dirname pwd | 显示当前目录的路径名 | pwd ls | 显示当前目录的内容 | ls -la dircmp | 比较两个目录的内容 | dircmp dir1 dir2
/Users/chenxiaobin/Youzan/code/blog为例子
- 先通过
cd
命令进入blog文件夹
pwd
查看文件当前路径、ls
查看当前文件夹内容
- 在当前目录通过
mkdir
新建文件夹
- 对新建的文件夹通过
mv
修改名字,并再用ls
查看当前目录文件
- 通过
rmdir
删除test1文件夹
- 通过
cd ~
返回打开该终端的根目录

注意:
-
mvdir
是linux命令,在mac终端无法使用,我使用了iTerm2的高亮主题,输入rmdir
时会爆红
-
ll
命令是ls
的升级版,除了和ls一样显示文件名和目录名,还会显示文件的时间、读写权限(staff:管理员)等等

添加ll
命令也不难:
- vim编辑~/.bashrc 文件
sudo vim ~/.bashrc
- 添加别名
去掉 #alias ll='ls -l'
前面的 # 号就能使用 ll 命令了。
i. 点击i进入编辑模式
ii. 修改相应部分
iii. esc -> shift+: -> wq
- 生效操作
sudo source ~/.bashrc
文件操作
命令 | 功能描述 | 简单样例 :--:| :--:| :--:| cat | 显示或连接文件 | cat filename rm | 删除文件或目录 | rm filename mv | 改变文件名或所在目录 | mv file1 file2 cp | 复制文件或目录 | cp file1 file2(新名称) open | 使用默认的程序打开文件 | open filename file | 显示文件类型 | file filename find | 使用匹配表达式查找文件 | find . /directory -name "*.txt"
`cat`命令
cat命令主要用来查看文件内容,创建文件,文件合并,追加文件内容等功能
这个我目前还没怎么使用,具体可以查看:《linux下cat命令详解》
`open`命令
前面我们已经接触过`open`命令了:`open ~/.ssh`(~为根目录)
open会帮助你用默认方式打开指定文件,例如html就用浏览器打开.
`file`命令
file命令用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程。

`find`命令
在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
命令: find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]
find .
find ./ -name "*.txt"
find /usr/ -path "*local*"
find . -regex ".*\(\.txt\|\.pdf\)$"

上面都是最经常使用的一些命令.下面放一些扩展的命令
选择操作
命令 | 功能描述 | 简单样例 :--:| :--:| :--:| head | 显示文件的最初几行 | head -20 filename tail | 显示文件的最后几行 | tail -15 filename cut | 显示文件每行中的某些域 | cut -f1,7 -d: /etc/passwd colrm | 从标准输入中删除若干列 | colrm 8 20 file2 paste | 横向连接文件 | paste file1 file2 diff | 比较并显示两个文件的差异 | diff file1 file2 sed | 非交互方式流编辑器 | sed "s/red/green/g" filename grep | 在文件中按模式查找 | grep "^[a-zA-Z]" filename awk |在文件中查找并处理模式 | awk '{print $1 $1}' filename sort | 排序或归并文件 | sort -d -f -u file1 uniq | 去掉文件中的重复行 | uniq file1 file2 comm | 显示两有序文件的公共和非公共行 | comm file1 file2 wc | 统计文件的字符数、词数和行数 | wc filename nl | 给文件加上行号 | nl file1 >file2
安全操作
命令 | 功能描述 | 简单样例 :--:| :--:| :--:|
passwd | 修改用户密码 | passwd chmod | 改变文件或目录的权限 | chmod ug+x filename umask | 定义创建文件的权限掩码 | umask 027 chown | 改变文件或目录的属主 | chown newowner filename chgrp | 改变文件或目录的所属组 | chgrp staff filename xlock | 给终端上锁 | xlock -remote
编程操作
命令 | 功能描述 | 简单样例 :--:| :--:| :--:| make | 维护可执行程序的最新版本 | make touch | 更新文件的访问和修改时间 | touch -m 05202400 filename dbx | 命令行界面调试工具 | dbx a.out xde | 图形用户界面调试工具 | xde a.out
进程操作
命令 | 功能描述 | 简单样例 :--:| :--:| :--:| ps | 显示进程当前状态 | ps u kill | 终止进程 | kill -9 30142 nice | 改变待执行命令的优先级 | nice cc -c *.c renice | 改变已运行进程的优先级 | renice +20 32768
时间操作
命令 | 功能描述 | 简单样例 :--:| :--:| :--:| date | 显示系统的当前日期和时间 | date cal | 显示日历 | cal 8 1996 time | 统计程序的执行时间 | time a.out
网络与通信操作
命令 | 功能描述 | 简单样例 :--:| :--:| :--:| telnet | 远程登录 | telnet hpc.sp.net.edu.cn rlogin | 远程登录 | rlogin hostname -l username rsh | 在远程主机执行指定命令 | rsh f01n03 date ftp | 在本地主机与远程主机之间传输文件 | ftp ftp.sp.net.edu.cn rcp | 在本地主机与远程主机 之间复制文件 | rcp file1 host1:file2 ping | 给一个网络主机发送 回应请求 | ping hpc.sp.net.edu.cn mail | 阅读和发送电子邮件 | mail write | 给另一用户发送报文 | write username pts/1 mesg | 允许或拒绝接收报文 | mesg n
其它命令
命令 | 功能描述 | 简单样例 :--:| :--:| :--:| uname | 显示操作系统的有关信息 | uname -a
clear | 清除屏幕或窗口内容 | clear env | 显示当前所有设置过的环境变量 | env who | 列出当前登录的所有用户 | who whoami | 显示当前正进行操作的用户名 | whoami tty | 显示终端或伪终端的名称 | tty stty | 显示或重置控制键定义 | stty -a du | 查询磁盘使用情况 | du -k subdir df | 显示文件系统的总空间和可用空间 | df /tmp w | 显示当前系统活动的总信息 | w
参考文章:
文档:《Linux命令大全》
简书:《Mac 终端命令大全》