Bootstrap

Linux 常用命令

🏝️ 博主介绍

大家好,我是一个搬砖的农民工,很高兴认识大家 😊 ~
👨‍🎓 个人介绍本人是一名后端Java开发工程师,坐标北京 ~
🎉 感谢关注 📖 一起学习 📝 一起讨论 🌈 一起进步 ~
🙏 作者水平有限,欢迎各位大佬指正留言,相互学习进步 ~

1. 处理目录的常用命令 🚀

  • ls(英文全拼:list files): 列出目录及文件名,-l显示详情,-a显示隐藏文件
  • cd(英文全拼:change directory):切换目录
  • pwd(英文全拼:print work directory):显示当前工作目录的绝对路径
  • mkdir(英文全拼:make directory):创建一个新的目录,-p递归创建
  • rmdir(英文全拼:remove directory):删除一个空的目录
  • cp(英文全拼:copy file): 复制文件或目录,-r递归复制,-i已存在会先询问,-f已存在则覆盖
  • touch 新建文件
  • rm(英文全拼:remove): 删除文件,-i询问是否删除,-f不询问,-r递归删除文件和文件夹
  • mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称,mv a1 a2修改a1名称为a2,mv a1 /opt移动a1到opt目录下
  • find 命令:find 目录 参数 文件名称 示例:find /usr/tmp -name 'a*' 查找/usr/tmp目录下的所有以a开头的目录或文件
  • vi和vim:修改编辑文件,esc进入命令行模式;i进入编辑模式;低行模式中:q!强制退出,:q退出,:wq保存并退出
  • chmod: 改变文件或目录的权限。读(r)、写(w)和执行(x) chmod -R +x /root/mysql/bin 给 /root/mysql/bin 目录下的所有文件和子目录添加执行权
  • chown: 改变文件或目录的所有者和组。要将 /root/mysql/bin 目录及其子目录和文件的所有者更改为 mysqluser(假设该用户已存在),并将组更改为 mysqlgroup(同样假设该组已存在),你可以使用以下命令:chown -R mysqluser:mysqlgroup /root/mysql/bin
  • du: 估计文件和目录的磁盘使用情况。要查看 /root/mysql/bin 目录及其子目录和文件占用的磁盘空间,你可以使用以下命令: du -sh /root/mysql/bin
  • history :使用!和命令编号:你可以通过!后跟命令编号来执行历史中的命令。例如,!100将执行历史列表中编号为100的命令。
    使用Ctrl+R进行搜索:在bash中,你可以使用Ctrl+R启动反向搜索(reverse-i-search),然后输入命令的一部分来查找并执行它。找到后,按Enter键执行该命令,或者按Ctrl+G取消搜索。

2. 文件内容查看 🚀

  • cat 由第一行开始显示文件内容
  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
  • nl 显示的时候,顺道输出行号!
  • more 一页一页的显示文件内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
  • head 只看头几行,-n后面接数字代表几行的意思,head -n 20 /etc/man.config显示前20行
  • tail 只看尾巴几行,-n后面接数字代表几行的意思,-f :表示持续侦测,默认查看最后10行。tail -f notes.log:持续侦测最后十行

3. 硬件查看 🚀

  • ⭐ 查看目录或文件使用情况:du -sh (总的) du -h (单个)
  • ⭐ 查看磁盘大小和占用量:df -h
  • ⭐ 查看内存大小和占用量:free -h
  • ⭐ 查看CPU大小:lscpu
  • ⭐ 实时查看cpu、内存占用量:top

4. 其他命令 🚀

🌈 4.1 修改文件权限

在终端输入:
ls -l xxx.xxx (xxx.xxx是文件名)
那么就会出现相类似的信息,主要都是这些:
-rw-rw-r–

  • r 表示文件可以被读(read)
  • w 表示文件可以被写(write)
  • x 表示文件可以被执行(如果它是程序的话)
  • -表示相应的权限还没有被授予
-rw-------    (600) 只有所有者才有读和写的权限
-rw-r--r--    (644) 只有所有者才有读和写的权限,组群和其他人只有读的权限
-rwx------    (700) 只有所有者才有读,写,执行的权限
-rwxr-xr-x    (755) 只有所有者才有读,写,执行的权限,组群和其他人只有读和执行的权限
-rwx--x--x    (711) 只有所有者才有读,写,执行的权限,组群和其他人只有执行的权限
-rw-rw-rw- (666) 每个人都有读写的权限
-rwxrwxrwx (777) 每个人都有读写和执行的权限

使用chmod 修改文件权限

–x=1;-w-=2;r–=4; r-x=5;rw-=6;rwx=7;

假如设置权限:rwxrw-r–

chmod 764 filepath

🌈 4.2 压缩文件操作

如果是zip包 解压 :unzip a.zip -d /opt/
假如unzip没安装,可以安装下 yum install -y unzip zip

🍨 1. 打包和压缩

Windows的压缩文件的扩展名  .zip/.rar
linux中的打包文件:aa.tar      
linux中的压缩文件:bb.gz    
linux中打包并压缩的文件:.tar.gz

Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。
而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。

命令:tar -zcvf 打包压缩后的文件名 要打包的文件
其中:z:调用gzip压缩命令进行压缩
  c:打包文件
  v:显示运行过程
  f:指定文件名
示例:打包并压缩/usr/tmp 下的所有文件 压缩后的压缩包指定名称为xxx.tar
tar -zcvf ab.tar aa.txt bb.txt 
或:tar -zcvf ab.tar  *

🍨 2. 解压

命令:tar [-zxvf] 压缩文件    
其中:x:代表解压
示例:将/usr/tmp 下的ab.tar解压到当前目录下
示例:将/usr/tmp 下的ab.tar解压到根目录/usr下
tar -xvf ab.tar -C /usr------C代表指定解压的位置

🌈 4.3 ps显示进程

ps命令支持三种使用的语法格式

  • UNIX 风格,选项可以组合在一起,并且选项前必须有“-”连字符
  • BSD 风格,选项可以组合在一起,但是选项前不能有“-”连字符
  • GNU 风格的长选项,选项前有两个“-”连字符

aux是 BSD 风格,-aux是UNIX 风格,建议使用aux
同时查看cpu和内存占用情况
top: M 键来切换到按内存占用率排序

ps -ef | grep java : -e 显示所有进程,-f 显示程序间关系,grep java 搜索字段为java的相关进程
在这里插入图片描述

查看端口是否被占用三种命令:

ps -ef | grep 端口号
lsof -i:端口号
netstat -an | grep 端口号

在这里插入图片描述

🌈 4.4 运行jar包

java -jar XXX.jar:这是最基本的jar包执行方式,但是当我们用ctrl+c中断或者关闭窗口时,程序也会中断执行。

java -jar XXX.jar &:&代表在后台运行,使用ctrl+c不会中断程序的运行,但是关闭窗口会中断程序的运行。

nohup java -jar XXX.jar &:使用这种方式运行的程序日志会输出到当前目录下的nohup.out文件,使用ctrl+c中断或者关闭窗口都不会中断程序的执行。

nohup java -jar XXX.jar >temp.out &:temp.out的意思是将日志输出重定向到temp.out文件,使用ctrl+c中断或者关闭窗口都不会中断程序的执行。

🌈 4.5 常用快捷键

Ctrl+S键,停止滚屏;
以及Ctrl+Q键可以恢复滚屏;
而按Ctrl+C(中断)键则可以终止该命令的执行。

🌈 4.6 线程运行诊断-cpu占用过多

推荐参考:linux系统cpu飙高如何排查

🌈 4.7 环境变量

vi /etc/profile 编辑环境变量配置文件

source /etc/profile 立即生效

5. 排查日志 🚀

🌈 查询关键字文本:

  1. grep <搜索文本> <file地址>
  2. less <file地址> | grep <搜索文本>

举例:
在这里插入图片描述

🌈 查询范围时间日志:

  1. grep <时间正则表达式> <file地址>
  2. less <file地址> | grep <时间正则表达式>

举例: 2024-08-07 16:48:[3-4][0-9] 表示查询 2024-08-07 16:48:30 - 2024-08-07 16:48:49 时间段日志
在这里插入图片描述

🌈 日期结合关键字:
grep <时间正则表达式> <file地址> | grep <搜索文本>
在这里插入图片描述

;