开发必备Linux常用的几个命令分享

 更新时间:2023年10月12日 11:21:49   作者:fking86  
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:进程
  • IDTTY:终端号
  • 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/

写在最后

以上就是开发必备Liunx常用的几个命令分享的详细内容,更多关于Liunx常用命令的资料请关注脚本之家其它相关文章!

相关文章

  • shell脚本实现公司项目部署交付环境预检查的思路

    shell脚本实现公司项目部署交付环境预检查的思路

    这篇文章主要介绍了shell脚本实现公司项目部署交付环境预检查的思路,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 将shell脚本正确的放在后台运行方式

    将shell脚本正确的放在后台运行方式

    这篇文章主要介绍了将shell脚本正确的放在后台运行方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • jq命令对JSON进行过滤遍历结构转换等操作实例

    jq命令对JSON进行过滤遍历结构转换等操作实例

    这篇文章主要介绍了jq命令对JSON进行过滤遍历结构转换等操作实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Linux shell中如何获取当前目录

    Linux shell中如何获取当前目录

    这篇文章主要介绍了Linux shell中如何获取当前目录问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • Shell获取进程PID的实现

    Shell获取进程PID的实现

    本文主要介绍了Shell获取进程PID的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • Linux Shell的一些使用小技巧收集

    Linux Shell的一些使用小技巧收集

    这篇文章主要介绍了Linux Shell的一些使用小技巧收集,本文收集了几十个小技巧,非常实用,需要的朋友可以参考下
    2014-12-12
  • linux命令切换目录的使用方法

    linux命令切换目录的使用方法

    切换目录的方式有很多种,最常用的莫过于cd 命令了,这里介绍四个命令pushd,popd,dirs,cd -的使用方法
    2014-01-01
  • Shell中set与shopt命令选项的含义和使用示例

    Shell中set与shopt命令选项的含义和使用示例

    这篇文章主要给大家介绍了关于Shell中set与shopt命令选项的含义与使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-09-09
  • linux shell 解析命令行参数及while getopts用法小结

    linux shell 解析命令行参数及while getopts用法小结

    这篇文章主要介绍了linux shell 解析命令行参数及while getopts用法,getpots是Shell命令行参数解析工具,旨在从Shell Script的命令行当中解析参数,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2022-05-05
  • shell脚本批量创建用户的方法小结

    shell脚本批量创建用户的方法小结

    有些面试题中会问到批量创建用户的题目,大体是用循环去进行创建,但有时也会有一些额外的附加条件,下面这篇文章主要给大家介绍了关于shell脚本批量创建用户的相关资料,需要的朋友可以参考下
    2022-03-03

最新评论