开发必备Liunx常用的几个命令

2023年 9月 26日 128.5k 0

🔔前言

Linux作为一个高度成熟和强大的操作系统,拥有非常丰富的命令行工具,对于Java开发者来说,掌握一些常用的Linux命令可以大大提高工作效率,尤其是在服务器端开发时。

🔔Linux中一些常用的命令

🌵1.ls/cd/pwd 目录操作命令,用于查看和切换目录

1.1 ls

ls 列出当前目录的所有文件

ls -l: 列出文件的详细信息

ls -a: 列出当前目录的所有文件,包括隐藏文件

1.2 cd

cd /data/logs 切换到data/logs目录

cd ..: 切换到上一级目录

cd ~: 切换到用户主目录

1.3 pwd

pwd 显示当前目录的绝对路径

pwd -L: 显示逻辑路径,即符号链接所指向的实际路径(默认选项)

pwd -P: 显示物理路径,即目录树的实际路径,不追随任何符号链接

🌵2.mkdir/touch/rm/cp/mv 文件操作命令,用于创建、删除、复制和移动文件

2.1 mkdir

mkdir [目录名]: 创建新的目录

2.2 touch

touch [文件名]: 创建一个空文件

2.3 rm

rm [文件]: 删除指定的文件

rm -r [目录]: 递归删除指定的目录及其内容

2.4 cp

cp [源文件] [目标文件]: 复制文件 cp -r [源目录] [目标目录]: 递归复制目录

2.5 mv

mv [源文件] [目标文件]: 移动/重命名文件

🌵3.cat/less/head/tail - 查看文件内容的命令。less可以分页查看。

3.3 cat 查看文件内容

cat [文件]: 从第一行开始显示文件内容

3.4 less 分页查看文件内容

less [文件]: 分页方式查看文件内容

并可以通过以下方式浏览内容:

  • 空格键 - 向下翻一页
  • B键 - 向上翻一页
  • G键 - 跳到文件末尾
  • g键 - 跳到文件开头
  • /字符串 - 在文档中向下搜索字符串
  • n键 - 重复前一个搜索(与/或?)相关
  • q键 - 退出
  • u - 向前滚动半屏
  • d - 向后滚动半屏
  • y - 向前滚动一行
  • b - 返回上一屏

3.5 head

head 文件名: 显示该文件中的前10行内容

head -n 20 文件名:显示该文件中的前20行内容

head主要参数:

-n 行数:指定查看前面多少行,默认为10 -c 字节数:按字节数查看文件开头 -q:隐藏文件名 -v:显示文件名

3.6 tail

tail 文件名: 显示该文件中的最后10行内容

tail -n 20 文件名:显示该文件中的最后20行内容

tail主要参数:

-n 行数:指定查看倒数多少行,默认为10

🌵4.grep 在文件内搜索匹配指定正则表达式或字符串的内容

grep [选项] '字符串' filename
grep 'error' /var/log/syslog // 在syslog日志文件中查找包含'error'的匹配行。

grep的常用选项包括:

  • i:不区分大小写 -n:显示匹配行及行号 -C n:显示匹配行前后n行上下文 -v:显示不包含匹配文本的所有行 -w:整词匹配 -A n:显示匹配行后n行 -B n:显示匹配行前n行 -r:递归搜索目录中的文件

🌵5.find 强大的文件搜索命令

find [搜索路径] [选项]
find /home -name "*.txt" #在/home目录下查找所有.txt文件

find有很多实用的选项,常用的包括:-

-name:按文件名查找 -size:按文件大小查找 -type:按文件类型查找(如f表示普通文件) -atime/-mtime:按文件访问/修改时间查找 -user/-group:按文件属主/属组查找 -exec:对找到的文件执行指定命令 -delete:删除匹配到的文件

🌵6.tar 打包和压缩文件的命令

6.1将文件打包

tar -cvf test.tar file1 file2 #打包文件
tar -tvf test.tar #查看打包文件的内容

6.2将文件压缩

tar -zcvf test.tar.gz file1 file2 #压缩打包
tar -zxvf test.tar.gz #解压缩

6.3其他常用参数

-c:创建打包文件 -v:显示运行过程 -f:指定打包文件名 -z:gzip压缩/解压缩 -j:bzip2压缩/解压缩 -x:解包或解压缩 -t:查看打包文件内容

🌵7.vim/nano - Linux下的文本编辑器,用于修改配置文件

7.1 vim

vim 文件名

vim有三种工作模式:

  • 普通模式:用于导航和命令输入,按Esc进入
  • 编辑模式:用于文本编辑,按i进入
  • 命令行模式:用于保存、退出等操作,按:进入

vim的一些基本使用技巧:

  • i - 在光标处进入编辑(插入)模式
  • h/j/k/l - 左下上右移动光标
  • :w - 保存文件但不退出vim
  • :wq - 保存文件并退出vim
  • :q! - 不保存文件强制退出
  • dd - 删除整行
  • u - 撤销上一操作
  • /文本 - 搜索文本

vim支持大量快捷键组合,可以大大提高文本编辑效率,常用的包括:

  • ciw - 更改单词
  • d2w - 删除2个单词
  • y3j - 复制3行文字
  • 缩进

7.2 nano

打开文件:nano 文件名 搜索:Ctrl+W,输入要搜索的词 定位行数:Ctrl+C显示光标位置 剪切文本:Ctrl+K 复制文本:Ctrl+6 粘贴文本:Ctrl+U 撤销上步操作:Alt+U 保存文件:Ctrl+O 退出nano:Ctrl+X

🌵8.ps/kill 查看和杀掉进程的命令

8.1 ps

ps: 显示出当前终端中运行的进程

ps aux: 查看所有进程,可以使用aux参数

ps命令常用的参数包括:

-a:显示所有进程 -u:显示指定用户的进程 -x:显示所有进程,不以终端为区分 -e:显示所有进程信息

-f:显示完整信息 -C:根据命令名显示进程

ps -C java # 查看java进程

ps输出中常见的字段含义:

  • PID:进程ID
  • TTY:终端号
  • STAT:进程状态
  • TIME:占用CPU时间
  • COMMAND:进程名称

8.2 kill

kill PID: 这里的PID是要终止的进程的进程ID。这将向该进程发送SIGTERM信号,请求终止进程。

kill -9 PID: 使用-9参数强制终止

kill命令支持发送多种信号,常用的信号包括:

  • SIGTERM (15):请求终止进程
  • SIGKILL (9):强制终止进程
  • SIGSTOP (17):暂停进程
  • SIGCONT (18):继续运行停止的进程

🌵9.top/htop 查看系统资源占用情况的命令

9.1 top

top [选项]

top命令在Linux系统中用于实时显示进程的资源占用情况,相当于Windows的任务管理器。直接在终端运行top命令将进入提示界面,实时显示所有进程的CPU、内存、交换分区等资源占用情况。

top命令选项:

-b      以批处理模式操作
-c      显示完整的治命令
-d      屏幕刷新间隔时间
-I       忽略失效过程
-s      保密模式
-S      累积模式
-i    设置刷新间隔时间
-u 指定用户名
-p 指定进程
-n   循环显示的次数

在top状态下常用的快捷键:

h    显示快捷键帮助
k    终止一个进程
i     开/关忽略闲置和僵死进程
q    退出程序
r     重新安排一个进程的优先级别
S    切换到累计模式
s    更改刷新间隔时间,单位秒
f,F   从当前显示中添加或者删除项目
o,O   改变显示项目的顺序
l     切换显示平均负载和启动时间信息
m    切换显示内存信息
t     切换显示进程和CPU状态信息
c    切换显示命令名称和完整命令行
M    根据内存使用大小排序
P    根据CPU使用率进行排序 (默认排序)
T    根据时间/累计时间进行排序
w    将当前设置写入~/.toprc文件中
1    展开多核cpu显示

top命令显示的信息字段含义:

top -       系统当前时间
up       系统已开机多长时间
user      当前用户数
load average cpu平均负载,三个数值分别为,1分钟,5分钟,15分钟
Tasks    系统当前进程数,total:总进程数,running:正在运行的进程数,sleeping:睡眠的进程数,stopped:停止的进程数,zombie:僵尸进程数
%Cpu(s) cpu使用率,us:用户使用cpu百分百,sy:系统内核使用cpu百分百,id:剩余的cpu百分百
Mem     内存使用信息,total:总内存大小,free:空闲的内存,used:已使用的内存,buff/cache:缓存的内存大小
Swap    虚拟内存信息
​
PID     进程id
USER     进程所有者
PR       优先级
NI       nice值,负值表示高优先级,正值表示低优先级
VIRT       进程使用的虚拟内存总量
RES       进程使用的物理内存大小
SHR       共享内存大小
S        进程状态,D:不可中断的睡眠状态,R:运行,S:睡眠,T:跟踪/停止,Z:僵尸进程
%CPU      进程使用的CPU占用百分比
%MEM      进程使用的物理内存百分比
TIME+      进程使用的CPU时间总计
COMMAND   命令名

9.2 htop 与top类似

htop相对top有一些提升:

  • 界面更加人性化,使用色彩区分进程状态,可视化更强

  • 支持鼠标操作

  • 支持树形进程结构,可以展开/折叠进程和子进程

  • 支持排序时高亮正在排序的列

  • 支持横向滚动终端浏览进程信息

  • 支持搜索和过滤进程

    htop的一些主要交互键:

  • F1 - 帮助
    F2 - 显示/隐藏进程树
    F3/F4 - 搜索进程
    F5/F6 - 排序列 
    F7/F8 - 增加/减少列
    F9 - 终止进程
    F10 - 退出htop
    

    🌵10.du/df 查看磁盘空间使用情况的命令

    10.1 du

    du - 显示当前目录下的所有文件和子目录大小
    du -h - 以人类可读的形式显示大小(GB,MB,KB)
    du -sh - 显示当前目录总大小
    du -ah - 显示指定目录下的所有文件和目录大小
    du -lh - 只显示总大小的目录,不显示文件
    du -s * - 显示当前目录下每个子目录的总大小
    

    10.2 df

    df - 查看所有文件系统的磁盘空间使用情况
    df -h - 以可读格式显示磁盘空间使用情况
    df -H - 显示所有文件系统的磁盘使用情况,包括临时挂载的
    df -T - 显示文件系统类型
    df -i - 显示inode使用信息
    df -a - 显示所有的磁盘,包括未挂载的
    

    显示参数说明:

    文件系统(Filesystem):显示的文件系统路径
    1K-块(1K-blocks):文件系统的总大小,以1KB为单位
    已用(Used):文件系统已使用的空间
    可用(Available):文件系统剩余可用空间
    使用%(Use%):已使用空间的百分比
    挂载点(Mounted on):文件系统挂载点
    

    常见的文件系统类型包括:

    ext4 - Linux最常见的文件系统
    xfs - 高性能文件系统
    nfs - 网络文件系统
    vfat - Windows系统常见的文件系统
    iso9660 - CD/DVD镜像文件系统
    tmpfs - 临时的基于内存的文件系统
    devtmpfs - 设备 tmpfs 文件系统
    

    🌵11.ping/telnet/curl/wget 网络测试和调用命令

    11.1 ping

    ping [主机名/IP]: 测试网络是否通畅
    

    11.2 telnet

    telnet [服务器] [端口]
    telnet www.baidu.com 80 #登录百度的80端口
    

    telnet的一些重要用途包括:

    • 测试网络连接性
    • 调试客户端-服务器通信
    • 手工访问 SMTP、POP3、IMAP 等服务
    • 远程登录主机

    11.3 curl

    curl http://www.example.com	#发送GET请求
    curl -d "data=test" http://www.example.com #发送POST请求
    curl -O http://www.example.com/text.txt #下载文件
    curl -v http://www.example.com #显示通信过程
    

    11.4 wget

    wget [URL]: 从网络下载文件
    

    🌵12.sudo 取得管理员权限的命令

    sudo [命令]: 在命令前加上sudo以管理员权限执行
    

    🌵13.crontab 定时任务管理命令

    crontab的常见用法:

    • 编辑crontab任务
    crontab -e
    

    这会打开 crontab 文件进行编辑,允许用户设置要定期执行的命令。

    • 列出crontab任务
    crontab -l
    

    这将列出当前用户设置的所有 crontab 任务。

    • 删除所有crontab任务
    crontab -r
    

    这将删除当前用户所有的 crontab 任务。

    • crontab文件格式
    # 分时日月周命令
    * * * * * command
    

    每个星号代表一个时间单位。从左到右分别是:分钟、小时、日期、月份、周(0-6,0表示周日)例如:

    # 每天8点执行backup脚本
    0 8 * * * /path/to/backup.sh
    

    🌵14.chkconfig 系统服务管理命令

    chkconfig的常用用法如下:

    • 查看服务在不同运行级别下的启动状态
    chkconfig --list [服务名]
    
    • 在指定的运行级别下设置服务自动启动
    chkconfig --level [运行级别] [服务名] on
    
    • 在指定的运行级别下关闭服务自动启动
    chkconfig --level [运行级别] [服务名] off  
    
    • 在所有运行级别下设置服务自动启动
    chkconfig [服务名] on
    
    • 在所有运行级别下关闭服务自动启动
    chkconfig [服务名] off
    

    Linux的运行级别包括0至6等,通常3或5为默认级别。

    🌵15.iptables 防火墙配置命令

    iptables的一些常用用法如下:

    • 查看已有iptables规则
    iptables -L
    
    • 打开端口
    iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    

    此规则允许80端口 TCP数据包。

    • 封禁IP
    iptables -A INPUT -s 192.168.0.1 -j DROP
    

    此规则禁止来自192.168.0.1的数据包。

    • 保存规则
    iptables-save > /etc/iptables.rules
    

    保存iptables规则,重启后仍有效。

    • 删除所有规则
    iptables -F
    

    🌵16. scp/rsync - 远程拷贝文件命令

    16.1 scp

    scp [选项] [源文件] [目标路径]
    

    其中,选项 可以是以下常用的选项之一:

    • -r:复制目录及其内容。
    • -p:保留原文件的修改时间、访问时间和权限。
    • -v:显示详细的传输信息。

    源文件 为需要传输的文件或目录的路径,可以是本地路径,也可以是远程主机上的路径。远程路径的格式为 [user@]host:file

    目标路径 为传输的目标路径,可以是本地路径,也可以是远程主机上的路径。

    以下是一些示例用法:

    • 从本地复制文件到远程主机:scp file.txt user@remote:/path/to/destination
    • 从远程主机复制文件到本地:scp user@remote:/path/to/file.txt /path/to/destination
    • 复制目录及其内容:scp -r directory user@remote:/path/to/destination

    16.2 rsync

    rsync [选项] 源路径 目标路径
    

    其中,选项 可以是以下常用的选项之一:

    • -r:递归同步目录及其内容。
    • -a:归档模式,表示以递归方式传输文件,并保持文件属性(例如权限、所有者等)。
    • -v:显示详细的传输信息。
    • -z:使用压缩算法进行传输,可以减少数据传输量。
    • --delete:删除目标路径上与源路径不一致的文件。

    源路径 为需要同步的文件或目录的路径,可以是本地路径,也可以是远程主机上的路径。远程路径的格式为 [user@]host:file

    目标路径 为同步的目标路径,可以是本地路径,也可以是远程主机上的路径。

    以下是一些示例用法:

    • 在本地同步文件或目录:rsync -avz source/ destination/
    • 从本地同步到远程主机:rsync -avz source/ user@remote:/path/to/destination/
    • 从远程主机同步到本地:rsync -avz user@remote:/path/to/source/ destination/

    🌵17.chmod 改变文件权限

    chmod [选项] 模式 文件
    

    其中,选项 可以是以下常用的选项之一:

    • -R:递归地修改目录及其内容的权限。
    • -v:显示修改后的权限。
    • -c:仅在发生更改时显示提示信息。

    以下是一些示例用法:

    • 修改文件的权限为只读:chmod 444 file.txt
    • 修改文件的权限为可读可写:chmod u+rw file.txt
    • 递归地修改目录及其内容的权限为只有所有者有读写执行权限,其他用户只有读执行权限:chmod -R 750 directory/

    🔔写在最后

    如果大家对相关文章感兴趣,可以关注公众号"架构殿堂",会持续更新AIGC,java基础面试题, netty, spring boot, spring cloud等系列文章,一系列干货随时送达!

    相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论