1. 基本操作命令
1.1 echo :有点类似于println,控制台打印
# $PATH 是系统环境变量,打印出PATH变量的值
echo $PATH
# 查看当前系统使用的是哪一种shell
echo $SHELL
1.2 pwd: 查看当前所在目录
pwd
1.3 which : 查看命令所在的路径
which ls
1.4 whoami:查看当前登录用户
whoami
2. 文件与目录相关操作
2.1 文件和目录的创建与删除
# 创建目录
mkdir dir1
# 创建多级目录
mkdir -p dir1/dir2
# 创建文件
touch a.txt
# 删除文件
rm a.txt
# 删除目录, -r代表递归删除,-f代表强制删除
rm -rf dir1
# 文件或目录改名
mv a.txt b.txt
mv dir dir1
# 文件或目录移动
mv a.txt dir
mv dir dir1
- 目录改名和移动的区别是,当目标目录存在则是移动,否则是改名。
2.2 文件和目录的拷贝
# 将当前目录下的a.txt 复制到根目录下并起名为b.txt
cp a.txt /b.txt
# 将当前目录的dir1目录下的内容复制到/home/dir1下
cp -r dir1 /home/dir1
- 拷贝文件夹时(需要用参数-r)
- 如果目标文件夹存在,则将源文件夹拷贝到目标文件夹中
- 如果目标文件夹不存在,则创建目标文件夹,将源文件夹中的内容拷贝的目标文件夹中
2.3 查看文件内容
# 将文件内容一次性输出到终端
cat a.txt
# 分页显示到终端,只能向上预览
more a.txt
# 分页显示到终端,可以向上预览
less a.txt
# 显示头5行
head -5 a.txt
# 显示最后5行,默认是显示10行
tail -5 a.txt
# 实时追踪文件尾部是否有更新
tail -f a.txt
# 查看文件的统计信息,行数、字节数、单词数
wc a.txt
2.4 为文件或目录建立链接
# 为目录dir1创建软链接linkdir1
ln -s dir1 linkdir1
# 为文件a.txt创建硬链接b.txt; 目录不能创建硬链接
ln a.txt b.txt
2.5 修改文件的权限
# 为文件所有者用户添加写权限和执行权限
chmod u+wx a.txt
# 为文件所有者的同组用户取消写权限
chmod g-x a.txt
# 为其他用户设置只读权限
chmod o=r a.txt
# 为所有用户添加可执行权限
chmod a+x a.txt
# 加所有权限
chmod 777 a.txt
3. 进程相关命令
3.1 查看当前在线用户情况
who
3.2 查看进程状况:ps命令
# a:所有用户的进程; u:查看进程所有者以及其他信息;
# x:显示没有控制终端的进程(没有输入输出交互的进程)
ps aux
# 使用管道过滤
ps aux | grep docker
- a:显示所有用户的进程
- u:显示用户
- x:显示无控制终端的进程
- j:可以显示进程的进程组信息
进程状态 | 含义 | 对应ps命令的状态码 |
运行 | 正在运行或在运行队列中等待 | R(runnable) |
可中断的等待状态 | 休眠中、阻塞、在等待某个条件的形成或接收到信息。但是等待状态可以被中断 | S(sleeping) |
不可中断的等待状态 | 处于不可中断的等待状态的进程不受信号的打扰。将一直等待事件的发生或等待某种系统资源 | D |
僵死状态 | 进程已经终止,等待父进程调用进程释放资源时,处于此状态 | Z |
停止状态 | 进程收到SIGSTOP,SIGSTP,SIGTIN,SIGTOU信号后停止运行 | T |
3.3 kill命令
# 查看信号编号
kill -l
# 杀死指定进程
kill -9 89899
3.4 查看当前进程的环境变量
env
3.5 top命令:查看系统情况
# 相当于windows下的任务管理器
top
3.6 查看某个端口的使用情况
netstat -anp |grep 3306
- -p:显示正在使用Socket的程序pid和程序名称;
# 列出所有端口,n表示拒绝显示别名,能显示数字的全部转化为数字
netstat -an
# 列出所有tcp端口
netstat -ant
#列出所有udp端口
netstat -anu
# 只列出所有监听tcp端口
netstat -nlt
# 只列出所有监听unix端口
netstat -lx
3.7 查看系统内存使用情况
# 以m为单位
free -m
4. bash相关
4.1 快捷键
- ctrl+c:终止前台运行的程序
- ctrl+z:将前台运行的程序挂到后台
- ctrl+d:退出,等价于exit
- ctrl+l:清屏
- ctrl+a:光标移动到命令行的最前端
- ctrl+e:光标移动到命令行的最后端
- ctrl+r:搜索历史命令
4.2 常用的通配符
# 星号:匹配0个或多个任意字符
rm -f file*
# 问号:匹配单个任意字符
rm -f file?
# 创建多个文件,file1,file2,file3,file4,file5
touch file{1..5}
# 创建filea,fileb,filec,filed
touch file{a,b,c,d}
4.3 bash中的引号
- 单引号:将引号里面的内容当作字符串
- 双引号:运行通过$符号引用其他变量值