一、基本命令
1.1关机和重启
关机(halt)
bash
shutdown -h now 立刻关机
shutdown -h 5 五分钟后关机
poweroff 立刻关机
重启(reboot)
bash
shutdown -r now 立刻重启
shutdown -r 5 五分钟后重启
reboot 立刻重启
1.2帮助命令
--help
bash
shutdown --help #查看shutdown帮助文档
ifconfig --help 查看网卡信息
man(命令说明书)
bash
man shutdown #查看shutdown帮助文档
打开命令说明书之后,使用按键q退出
二、目录操作命令
2.1 目录切换 cd
bash
cd ~ 切换到home目录
cd / 切换到根目录
cd .. 切换到上一级目录
cd /usr 切换到指定目录
cd - 切换到上次访问的目录
2.2 目录查看 ls [-al]
bash
ls 查看当前目录下的所有目录和文件信息
ls -a 查看当前目录下的所有目录和文件信息(包含隐藏文件)
ls -l (简写ll)查看当前目录下的所有目录和文件信息(包含详细
信息)
ls /dir 查看指定文件下的目录和文件信息
2.3 目录操作(CRUD)
2.3.1 目录创建
命令: mkdir 目录
bash
mkdir /aaa
mkdir /usr/aaa
2.3.2 目录删除
命令:rm [-rf] 目录
删除文件
bash
rm 文件
rm -f 不询问的删除文件信息
#### 删除目录
rm -r 递归删除目录和文件信息
rm -rf 不询问递归的删除当前目录下的所有文件和目录信息
#### 全部删除
rm -rf /* 【自杀命令!慎用!】将根目录下的所有文件全部删除
rm -rf * 将当前目录下的所有目录和文件全部删除
2.3.3 目录修改【改】mv 和 cp
1.修改目录名称
命令:mv 当前目录 新目录
bash
mv aaa bbb 将qqq目录名称改为bbb
mv命令同时可对目录,文件,压缩包等进行修改。
2.剪切目录
命令:mv 目录名称 目录的新位置
bash
mv /usr/etc/aaa /usr 递归的将/usr/etc/aaa剪切到/usr
不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作
3.复制目录
命令:cp -r 目录名称 目录拷贝的目标位置 -r代表递归
bash
cp -r 目录名称 目录拷贝的目标位置 -r代表递归
cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不 用写-r递归
2.3.4目录搜索
bash
find /path/to/search -name "filename"
find /usr/tmp -name 'a*' 查找/usr/tmp目录下的所有以a开头的目录或文件
#查找所有 .sh 结尾的文件
find /home -type f -name "*.sh"
三、文件操作命令
3.1文件操作(CRUD)
3.1.1新增文件
命令:touch 文件名
bash
touch aaa.txt 创建文件
3.1.2删除文件
命令:
bash
rm 文件名
rm -rf 文件名
3.1.3修改文件
【vi编辑器的3种模式】
基本上vi可以分为三种状态,分别是命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode),各模式的功能区分如下:
命令模式:
常见用法:
1.dd 删除当前行
2./搜索的词 eg:/text
光标之后的第一个匹配项,没找到会循环查找
3.:可以退出命令行模式进入底行模式
4.a,i,o 可以从命令行模式进入插入模式
5.上下左右箭头控制光标位置
底行模式
1.wq 保存并退出
-
q!强制退出(不保存)
-
退出编辑: :q
-
set number 文件设置行号
编辑模式(插入模式)
再插入模式下。才能写入数据,ESC可以退出编辑模式进入命令模式。
打开文件
命令:vi 文件名
示例:打开当前目录下的aa.txt文件
bash
vi aa.txt
# 或者
vim aa.txtvi aaa.txt
打开后默认进入命令行模式,使用a/i/o才可进入插入模式。
编辑文件
vim 文件名进入后,选择a/i/o进入编辑模式。
i:在光标所在字符前开始插入
a:在光标所在字符后开始插入
o:在光标所在行的下面另起一新行插入
保存或退出编辑
编辑完成后,ESC进入命令行模式,:进入底行模式,
在底行输入
wq 保存并退出编辑
q!撤销本次修改并退出编辑
3.1.4 查看文件
文章查看读取命令: cat,less,more,tail
1.cat:看最后一屏
示例:使用cat查看/etc/sudo.conf文件,只能显示最后一屏内容
bash
cat sudo.conf
2.less: 可以使用键盘上的PgUp和PgDn向上 和向下翻页,q或者ctrl+c结束查看
bash
less sudo.conf
3.more:百分比显示
使用more查看/etc/sudo.conf文件,可以显示百分比,回车可以向下一行,空格可以向下一页,q或者ctrl+C可以退出查看
4.tail: 查看文件末尾行数
使用tail -10 查看/etc/sudo.conf文件的后10行,Ctrl+C结束
bash
tail -10 sudo.conf
用途:快速查看日志或大文件的结尾内容,而不需要从头打开整个文件。
bash
tail -f file.log 实时监控日志追加
tail -F file.log 支持日志轮转、文件重建
3.2 权限修改
rwx:r代表可读,w代表可写,x代表该文件是一个可执行文件,如果rwx任意位置变为-则代表不可读或不可写或不可执行文件。
示例:给aaa.txt文件权限改为可执行文件权限,aaa.txt文件的权限是-rw-------
第一位:-就代表是文件,d代表是文件夹
第一段(3位):代表拥有者的权限
第二段(3位):代表拥有者所在的组,组员的权限
第三段(最后3位):代表的是其他用户的权限
四、压缩文件操作
4.1打包和压缩
window系统下的压缩包为rar/zip
linux系统压缩包为zzz.gz
linux系统打包文件为zzz.tar
一般为打包压缩文件zzz.tar.gz
命令:tar -zcvf 压缩后的文件名 要压缩的文件
示例:打包并压缩/usr/tmp 下的所有文件 压缩后的压缩包指定名称为xxx.tar
bash
tar -zcvf zzz.tar.gz usr/tmp
4.2解压
命令:tar -zxvf 要解压的文件
示例:将/usr/tmp 下的ab.tar解压到当前目录下
bash
tar -zxvf ab.tar
示例:将/usr/tmp 下的ab.tar解压到根目录/usr下
bash
tar -xvf ab.tar -C /usr
-C代表指定解压的位置
五、查找命令
5.1grep指令
语法: grep [选项] 搜寻字符串文件
常用选项
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行
日志错误分析案例
1.查找包含 error 的行(忽略大小写),并显示行号
bash
grep -i -n 'error' /var/log/app.log
用于快速定位日志中所有报错行。-i 忽略大小写,-n 显示行号。
2.只显示匹配内容(错误关键字本身),并统计出现次数
bash
grep -i -o 'error' /var/log/app.log | wc -l
-o 只输出匹配到的单词(不是整行),再用 wc -l 得到 错误总次数。
- 查看错误前后 3 行上下文
bash
grep -i -C 3 'error' /var/log/app.log
-C (context) 可以带出上下文,方便分析报错前后的请求/状态。
4.实时监控日志中的错误
bash
tail -F /var/log/app.log | grep --line-buffered -i 'error'
tail -F 实时输出日志追加部分;grep --line-buffered 避免缓冲卡住,适合监控。
进程查找案例
1.查找 nginx 进程
ps aux | grep '[n]ginx'
经典写法,避免匹配到 grep nginx 自己。
2.查找进程并显示 PID
ps -ef | grep '[j]ava' | awk '{print $2}'
在 ps -ef 的输出中,第二列是 PID(进程 ID),所以 {print $2} 就是打印 进程 ID。
3.找占用内存/CPU 高的进程再筛选
ps aux --sort=-%mem | head -20 | grep '[j]ava'
a:显示所有终端上的进程
u:以"用户友好格式"显示(包含 CPU、内存、用户等)
x:显示没有控制终端的进程(如后台服务)
--sort=-%mem
作用:按 内存使用率(%MEM)降序排列
- 表示降序(从高到低)
%mem 是内存使用百分比
head -20
作用:取前面 20 行(第一行是表头,19个进程)
grep '[j]ava'
作用:从这 20 行中筛选出包含 java 的行
5.2 find指令
find命令在目录结构中搜索文件,并对搜索结果执行指定的操作。
find 默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。
使用实例:
bash
find . -name "*.log" -ls 在当前目录查找以.log结尾的文件,并显示详细信息。
find /root/ -perm 600 查找/root/目录下权限为600的文件
find . -type f -name "*.log" 查找当目录,以.log结尾的普通文件
find . -type d | sort 查找当前所有目录并排序
find . -size +100M 查找当前目录大于100M的文件
六、su、sudo
6.1 su
su用于用户之间的切换。但是切换前的用户依然保持登录状态。如果是root 向普通或虚拟用户切换不需要密码,反之普通用户切换到其它任何用户都需要密码验证。
bash
su test: 切换到test用户,但是路径还是/root目录
su - test 切换到test用户,路径变成了/home/test
su 切换到root用户,但是路径还是原来的路径
su - 切换到root用户,并且路径是/root
6.2 sudo
sudo是为所有想使用root权限的普通用户设计的。可以让普通用户具有临时使用root权限的权利。只需输入自己账户的密码即可。
七、其他命令
7.1 查看当前目录:pwd
命令:pwd 查看当前目录路径
7.2 查看进程:ps -ef
命令:ps -ef
作用:列出系统中所有正在运行的进程。
-e:显示所有进程(every process)
-f:使用"全格式"(full format),显示详细信息,包括:
UID(用户)
PID(进程 ID)
PPID(父进程 ID)
CMD(命令)
7.3 结束进程:kill
命令:kill pid 或者 kill -9 pid(强制杀死进程) pid:进程号
7.4 网络通信命令:
ifconfig:查看网卡信息
命令:ifconfig 或 ifconfig | more
ping:查看与某台机器的连接情况
bash
命令:ping ip
7.5 清屏
bash
clear