Linux常见命令

一、基本命令

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 保存并退出

  1. q!强制退出(不保存)

  2. 退出编辑: :q

  3. 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 得到 错误总次数。

  1. 查看错误前后 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 'nginx'

经典写法,避免匹配到 grep nginx 自己。

2.查找进程并显示 PID

ps -ef | grep 'java' | awk '{print $2}'

在 ps -ef 的输出中,第二列是 PID(进程 ID),所以 {print $2} 就是打印 进程 ID。

3.找占用内存/CPU 高的进程再筛选

ps aux --sort=-%mem | head -20 | grep 'java'

a:显示所有终端上的进程

u:以"用户友好格式"显示(包含 CPU、内存、用户等)

x:显示没有控制终端的进程(如后台服务)

--sort=-%mem

作用:按 内存使用率(%MEM)降序排列

  • 表示降序(从高到低)
    %mem 是内存使用百分比

head -20

作用:取前面 20 行(第一行是表头,19个进程)

grep 'java'

作用:从这 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
相关推荐
2035去旅行2 小时前
bootcmd 详细讲解
linux·嵌入式·arm·soc
陈希1232 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
女神下凡3 小时前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
且从容.6 小时前
Ubuntu安装flume
linux·ubuntu·flume
承渊政道7 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
且从容.10 小时前
ubuntu安装flink
linux·ubuntu·flink
爱和冰阔落11 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨11 小时前
WSL2的安装与使用
linux·wsl
微小的鱼11 小时前
Linux的渲染与显示系统链路
android·java·linux
lisanmengmeng12 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器