bash 终端命令梳理

这些命令在类Unix系统上都是通用的,并不局限与 Mac 下。作为一个接触了 Linux 有一段时间的人,趁这个时间整理一下。

指令集

1 目录操作

命令名
功能描述
使用举例
mkdir 创建一个目录 mkdir dirname
rmdir 删除一个目录 rmdir dirname
mvdir 移动或重命名一个目录 mvdir dir1 dir2
cd 改变当前目录 cd dirname
pwd 显示当前目录的路径名 pwd
ls 显示当前目录的内容 ls -la
dircmp 比较两个目录的内容 dircmp dir1 dir2

2 文件操作

命令名
功能描述
使用举例
cat 显示或连接文件 cat filename
pg 分页格式化显示文件内容 pg filename
more 分屏显示文件内容 more filename
od 显示非文本文件的内容 od -c filename
cp 复制文件或目录 cp file1 file2
rm 删除文件或目录 rm filename
mv 改变文件名或所在目录 mv file1 file2
ln 联接文件 ln -s file1 file2
find 使用匹配表达式查找文件 find . -name “*.c” -print
file 显示文件类型 file filename
open 使用默认的程序打开文件 open filename

3 选择操作

命令名
功能描述
使用举例
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

4 安全操作

命令名
功能描述
使用举例
passwd 修改用户密码 passwd
chmod 改变文件或目录的权限 chmod ug+x filename
umask 定义创建文件的权限掩码 umask 027
chown 改变文件或目录的属主 chown newowner filename
chgrp 改变文件或目录的所属组 chgrp staff filename
xlock 给终端上锁 xlock -remote

5 编程操作

命令名
功能描述
使用举例
make 维护可执行程序的最新版本 make
touch 更新文件的访问和修改时间 touch -m 05202400 filename
dbx 命令行界面调试工具 dbx a.out
xde 图形用户界面调试工具 xde a.out

6 进程操作

命令名
功能描述
使用举例
ps 显示进程当前状态 ps u
kill 终止进程 kill -9 30142
nice 改变待执行命令的优先级 nice cc -c *.c
renice 改变已运行进程的优先级 renice +20 32768

7 时间操作

命令名
功能描述
使用举例
date 显示系统的当前日期和时间 date
cal 显示日历 cal 8 1996
time 统计程序的执行时间 time a.out

8 网络与通信操作

命令名
功能描述
使用举例
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

9 Korn Shell 命令

命令名
功能描述
使用举例
history 列出最近执行过的 几条命令及编号 history
r 重复执行最近执行过的 某条命令 r -2
alias 给某个命令定义别名 alias del=rm -i
unalias 取消对某个别名的定义 unalias del

10 其它命令

命令名
功能描述
使用举例
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

常用命令详解

1 在目录间游走

命令1:pwd

作用:获取当前所在路径

命令2:ls (list)

作用:列出当前目录下的所有文件

其他用法:ls -l (long)

作用:用长格式列出来

其他用法:ls -a

作用:列出文件(包括隐藏的文件)

其他用法:ls -al

作用:以长格式列出文件(包括隐藏的文件)

命令3:cd

作用:进行目录之间的相互跳转

Tips1:可以利用Tab键将目录名补全

Tips2:可以输入cd后,将文件拖入终端,这样可以显示该文件的目录

其他用法:cd (不带任何参数)

作用:返回家目录

其他用法:cd ~

作用:返回家目录

Tips:可以利用cd ~/Music快速到达该目录

Tips:利用cd ~Guest/进入Guest用户的家目录

由于本机没有其他用户登录,所以无法演示该效果

其他用法:cd –

作用:返回上一个目录,你总是可以在两个目录之间进行切换

其他用法:cd(空格)..

作用:返回上一层目录

Tips:..表示上一层目录,而.表示当前目录

Tips:如果想要执行当前目录可执行文件a,需要输入./a,表示当前目录下的那个a

说明:这样做可以提高安全性,不会与命令的英文发生歧义

2 目录文件操作

命令1:mkdir [文件名] (make dir)

作用:新建文件夹

命令2:rmdir [文件名] (remove dir)

作用:删除文件夹

命令3:mv [原文件名] [新文件名] (move)

作用:把文件从一个地方移到另一个地方,但是当没有给出另外一个目录时,移动的现象就是为其更改了名字

命令4:rm [文件名] (remove)

作用:删除文件

注意:用rm删除掉的文件是无法从回收站中找回的!!

命令1:man [命令]

例如:man cp

作用:查看该命令的使用手册

Tips:输入q来直接退出

3 环境变量相关

命令1:set | grep PATH

作用:查看环境变量

命令2:PATH=$PATH:~/bin

作用:将其他文件夹路径(本机用户下面的bin目录)添加到PATH

Tips:

这样做只是一次性的,也就是说在当前终端,是可以直接生效的,但是当你关闭后,重新打开终端,这个操作是不被保存的。

在/etc/profile这个文件是任何人打开终端都会执行的,是系统级的profile。

如果我们想自定义自己的profile,可以在自己的家目录下新建文件命名为:.profile,这个文件会在你打开终端时自动执行

我们将刚刚的命令2输入其中,然后保存退出(vim下使用:wq)

这样的话,在我们刚刚已经登录的终端里面它还是不起作用的,假如你希望它可以立刻生效,你可以使用source命令。

命令3:source

作用:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句,通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录

例如:source .profile

至此,每次当你打开终端的时候,将会默认执行一遍.profile中的命令。

4 进程管理

命令1:ps

作用:查看当前终端运行的程序

其他用法:ps ax

作用:列出这台电脑上正在运行的所有程序

命令2:top

作用:显示这台计算机上有哪些进程,它们占据了多少内存、CPU、负载等

Tips:按q退出

命令3:kill [PID]

作用:结束指定进程ID的进程

具体做法:先使用top命令查看想要结束进程的PID,然后使用命令kill [PID]

Tips:如果遇到无法杀掉的进程,输入命令sudo kill -9 [PID] (伪装超级管理员,强迫杀掉该进程),接着输入自己用户的密码(前提是自己这个用户具有sudo的资格)

5 网络配置

命令1:ifconfig

作用:列出本机所有的网络设备以及其上面的配置,主要指的是ip地址和mac地址

其他用法:ifconfig en4 down/up

作用:关闭(或打开)某个网络接口,比如en4

Tips:一般需要管理员权限,所以需要在前面加sudo命令

其他用法:sudo ifconfig en4 add 10.10.10.12 netmask 255.255.255.0

作用:给en4加入别的网段

其他用法:sudo ifconfig en4 delete 10.10.10.12

作用:给en4删除指定网段

其他用法:

ifconfig en0 down // 关闭网卡设备(这里假设是en0)

ifconfig en0 hw ether [MAC地址] // 修改MAC地址

ifconfig en0 up // 重启网卡

作用:临时修改MAC地址

其他用法:

ifconfig en0 down

ifconfig en0 192.168.169.245 netmask 255.255.255.0

作用:临时修改内网ip地址

命令2:ping

作用:检测网络是否是连通状态