当前位置: 首页 > news >正文

Linux常用命令详解

1. 文件和目录管理

命令功能参数/用法示例
ls列出目录内容(文件/子目录)。
  • -l: 长格式显示(详细信息:权限、所有者、大小、时间)。

  • -a: 显示所有文件(包括隐藏文件,以 . 开头)。

  • -h: 与 -l 结合使用,以人类可读的格式显示文件大小(如 K, M, G)。

  • -t: 按修改时间排序(最新在前)。

  • -r: 反向排序。

ls -l(详细列表)

ls -a(显示隐藏文件)

cd切换当前工作目录。
  • cd /path/to/directory (绝对路径)

  • cd relative/path (相对路径)

  • cd 或 cd ~: 切换到当前用户的家目录。

  • cd ..: 切换到上级目录。

  • cd -: 切换到上一个工作目录。

cd /home/user(进入目录)

cd ..(返回上一级)

pwd显示当前工作目录的路径。pwd
mkdir创建新目录。
  • -p: 递归创建目录(创建路径中不存在的父目录)。

mkdir new_folder(创建目录)

mkdir -p a/b/c(递归创建多级目录)

rm删除文件或目录。
  • -r 或 -R: 递归删除目录及其内容(极其危险!)。

  • -f: 强制删除,不提示确认(更危险!)。

  • -i: 删除前提示确认(推荐使用)。

rm file.txt(删除文件)

rm -r folder(递归删除目录)

cp复制文件或目录。
  • -r 或 -R: 递归复制目录及其内容。

  • -i: 覆盖前提示确认。

  • -v: 显示复制过程的详细信息。

cp source.txt destination.txt(复制文件)

cp -r folder1 folder2(复制目录)

mv移动文件/目录或重命名。
  • -i: 覆盖前提示确认。

  • -v: 显示移动过程的详细信息。

mv old_name new_name(重命名)

mv file.txt /tmp/(移动文件)

touch创建空文件或更新文件时间戳。touch new_file.txt(创建文件)

2. 文件搜索和文本查看

命令功能参数/用法示例
find搜索文件或目录。
  • find /path/to/search -name "filename" (按文件名查找)

  • find . -type f -name "*.txt" (在当前目录及子目录查找所有 .txt 文件)

  • find /var/log -mtime -1 (在 /var/log 下查找 24 小时内修改过的文件)

  • find . -size +10M (查找当前目录下大于 10MB 的文件)

  • find . -name "temp*" -exec rm {} \; (查找并删除匹配的文件 - 谨慎使用)

find /home -name "*.txt"(搜索所有 .txt 文件)
which用于查找可执行文件的确切位置
  • -a:显示所有匹配项(需配合-a选项使用)。 ‌2

  • -n:指定最小文件名长度(需配合-n参数使用)。 ‌2

  • -p:与-n参数相同,但包含路径。 ‌2

  • --version:显示版本信息。 ‌4

which python  (显示具体位置)

whereis

快速定位二进制文件、源代码文件和手册页(man pages)位置的命令
  • -b: 只查找二进制文件(可执行文件)    
  • -s:只查找源代码文件    
  • -m:只查找手册页(man pages)    
  • -u:查找不常见(非标准)位置的文件    
  • -f:在指定路径后使用,表示接下来是文件名    
cat查看文件内容或合并文件。

cat file.txt(显示文件内容)

cat file1.txt file2.txt(合并两个文件)

less/
more
分页查看文件内容。
  • Space: 向下翻一页。

  • b: 向上翻一页。

  • Enter: 向下翻一行。

  • /pattern: 向前搜索 pattern

  • ?pattern: 向后搜索 pattern

  • n: 跳转到下一个匹配项。

  • N: 跳转到上一个匹配项。

  • q: 退出。

less file.txt(支持上下翻页)
head查看文件开头部分。
  • -n : 指定显示的行数(例如 -n 20 显示前 20 行)。

head -n 10 file.txt(显示前10行)
tail查看文件末尾部分。
  • -n : 指定显示的行数(例如 -n 20 显示后 20 行)。

  • -f跟随模式,持续显示文件尾部新增的内容(监控日志必备)。按 Ctrl+C 退出。

tail -n 20 file.txt(显示后20行)

tail -f log.txt(实时监控日志)

grep在文件中搜索文本。
  • -i: 忽略大小写。

  • -r 或 -R: 递归搜索目录中的文件。

  • -n: 显示匹配行号。

  • -v: 反向选择,只显示包含匹配模式的行。

  • -l: 只显示包含匹配项的文件名。

  • -E: 使用扩展正则表达式 (等同于 egrep)。

grep "error" file.txt(查找包含 "error" 的行)

grep -r "keyword" /path/(递归搜索目录)

sed流编辑器,用于对输入流(文件或管道)进行基本的文本转换(替换、删除、插入等)。非常强大,常用于脚本。
  • sed 's/old/new/' file.txt (将每行中第一个 old 替换为 new)

  • sed 's/old/new/g' file.txt (将每行中所有 old 替换为 new - g 表示全局)

  • sed '2d' file.txt (删除第 2 行)

  • sed -i.bak 's/old/new/g' file.txt (直接修改原文件 file.txt 并创建备份 file.txt.bak - 谨慎使用 -i)

说明: s 表示替换,d 表示删除。正则表达式常用。

awk强大的文本处理和数据提取工具,本身就是一种编程语言。擅长处理结构化文本(如 CSV、日志)。
  • awk '{print $1}' data.txt (打印每行的第一列)

  • awk -F':' '{print $1, $7}' /etc/passwd (使用 : 作为分隔符,打印用户名和 shell,同 cut 示例)

  • awk '$3 > 100 {print $0}' data.csv (打印第三列值大于 100 的所有行)

  • awk 'END {print NR}' file.txt (打印文件总行数)


3. 系统信息与监控

命令功能参数/用法示例
uname显示系统内核信息。
  • -a: 显示所有信息 (all)。

  • -s: 内核名称 (如 Linux)。

  • -r: 内核发行版本 (如 5.4.0-150-generic)。

  • -m: 硬件架构 (如 x86_64)。

  • -n: 网络节点主机名。

uname -a(显示所有信息)
top实时查看系统资源使用情况。
  • P: 按 CPU 使用率排序。

  • M: 按内存使用率排序。

  • k: 终止进程(需输入 PID)。

  • q: 退出。

top(按CPU/内存排序进程)
ps查看当前运行的进程。
  • ps aux: BSD 风格,显示所有用户的所有进程详细信息(常用)。

  • ps -ef: System V 风格,效果类似 ps aux

  • ps -u username: 显示特定用户的进程。

输出字段: USER, PID (进程ID), %CPU, %MEM, VSZ (虚拟内存大小), RSS (常驻内存大小), TTY (终端), STAT (状态), START (启动时间), TIME (CPU 时间), COMMAND (命令)。

ps aux(显示所有进程)
df显示磁盘空间使用情况。
  • -h: 以人类可读格式显示(G, M, K)。

  • -T: 显示文件系统类型。

df -h(以易读格式显示磁盘使用率)
free显示内存和交换分区使用情况。
  • -h: 以人类可读格式显示(G, M)。

  • -m: 以 MB 为单位显示。

free -h(以易读格式显示内存)
du显示目录或文件的磁盘占用。
  • -h: 以人类可读格式显示。

  • -s: 只显示总计(summary),不列出子目录详情。

  • --max-depth=N: 指定显示目录的深度。

du -sh /path/to/folder(统计目录大小)
uptime显示系统运行时间和负载。uptime(输出类似 12:34:56 up 5 days, 1 user

4. 用户与权限管理

命令功能参数/用法示例
useradd/adduser
  • 功能: 创建新用户账户。

  • useradd: 低级命令,只创建基本账户,需配合 passwd 等设置密码和主目录。

  • adduser: 更友好的交互式脚本(在某些发行版如 Debian/Ubuntu 上可用),封装了 useraddpasswd、创建主目录、设置默认 shell 等操作。推荐优先使用 adduser(如果可用)。

  • -m: 创建用户主目录(通常 /home/username)。

  • -s : 指定用户的登录 shell(如 /bin/bash)。

  • -g : 指定用户的主要组(primary group)。

  • -G : 指定用户的附加组(supplementary groups),逗号分隔。

useradd username(创建用户)
passwd修改用户密码。
  • passwd: 更改当前登录用户自己的密码。

  • sudo passwd usernameroot 更改指定用户 username 的密码。

chown修改文件/目录的所有者。
  • -R: 递归修改目录及其内容。

chown user:group file.txt(修改所有者和组)
chmod修改文件/目录的权限。
  • 权限表示:

    • 字母表示法:

      • 用户类别: u (user/owner), g (group), o (others), a (all)

      • 操作符: + (添加权限), - (移除权限), = (设置权限)

      • 权限: r (read), w (write), x (execute)

      • 示例: chmod u+x script.sh (给所有者添加执行权限), chmod go-w file.txt (移除组和其他用户的写权限), chmod a=r file.txt (设置所有人只有读权限)

    • 数字表示法 (八进制): 三位数字,分别代表所有者、组、其他人的权限。

      • r=4w=2x=1。无权限=0。所需权限值相加。

      • 示例: chmod 755 script.sh (所有者: rwx=7, 组: r-x=5, 其他人: r-x=5) - 常用可执行文件权限。 chmod 644 file.txt (所有者: rw-, 组: r--, 其他人: r--) - 常用数据文件权限。

  • 常用选项: -R: 递归修改目录及其内容权限。

chmod 755 script.sh(设置权限为 rwxr-xr-x
su切换用户身份。
  • su -: 切换到 root 用户并加载 root 的环境变量(- 或 -l 很重要)。

  • su - username: 切换到指定用户并加载其环境变量。

  • su username: 切换到指定用户但不加载其环境变量(环境可能不完整)。

su - username(切换到指定用户)
sudo以管理员权限执行命令。sudo apt update(更新软件包列表)

5. 网络管理

命令功能参数/用法示例
ip管理网络配置(现代替代 ifconfig)。
  • ip addr show 或 ip a: 显示所有网络接口的地址信息(最常用)。

  • ip link show: 显示链路层(物理)接口信息。

  • ip route show: 显示路由表。

ip a(显示所有网络接口)
ping测试网络连通性。
  • -c : 发送指定数量的包后停止(如 -c 4)。

  • -i : 设置发送包之间的间隔秒数(如 -i 2 每 2 秒发一个)。

  • -w : 设置超时秒数(如 -w 10 等待 10 秒后停止)。

ping example.com(持续测试)

telnet

测试端口连通性。

telnet 223.5.183.79  6379

ssh远程登录服务器。
  • -p : 指定远程主机的 SSH 端口(默认为 22)。

  • -i : 指定用于身份验证的私钥文件。

ssh username@host(连接远程主机)
scp安全复制文件到远程主机。
  • 本地 -> 远程: scp local_file user@remote_host:remote_path

  • 远程 -> 本地: scp user@remote_host:remote_file local_path

  • 远程 -> 远程: scp user1@host1:file1 user2@host2:file2

  • 常用选项: -r: 递归复制目录。 -P : 指定远程 SSH 端口。

scp file.txt username@host:/remote/path(上传文件)
netstat查看网络连接和端口状态。
  • -t: 显示 TCP 连接。

  • -u: 显示 UDP 连接。

  • -l: 仅显示监听 (listening) 的套接字。

  • -n: 以数字形式显示地址和端口号(不尝试解析主机名和服务名)。

  • -p: 显示使用套接字的进程信息(需要 root 权限)。

  • -a: 显示所有套接字(连接中和监听的)。

netstat -tuln(显示监听端口)
curl从网络下载文件或测试API。
  • -o : 将输出保存到文件。

  • -O: 使用远程文件的名称保存到本地。

  • -L: 跟随重定向。

  • -v: 显示详细过程(verbose)。

  • -X : 指定 HTTP 请求方法 (如 GET, POST, PUT, DELETE)。

  • -H : 添加 HTTP 请求头。

  • -d : 发送 POST 请求的数据。

  • -u : 提供用户名密码认证。

curl https://example.com(获取网页内容)

6. 进程管理

命令功能参数/用法示例
kill终止指定进程。kill 1234(终止进程ID为1234的进程)
killall终止所有同名进程。killall nginx(终止所有 nginx 进程)

nohup

后台运行程序nohup ... &

nohup python script.py > /var/log/myapp.log 2>&1 &


7. 压缩与解压

命令功能参数/用法示例
tar打包/解压文件。
  • -c创建新归档文件。

  • -x解压归档文件。

  • -v详细列出处理的文件。

  • -f 指定归档文件名 (必须项)。

  • 压缩相关:

    • -z: 使用 gzip 压缩/解压缩 (.tar.gz 或 .tgz)。

    • -j: 使用 bzip2 压缩/解压缩 (.tar.bz2 或 .tbz2)。

    • -J: 使用 xz 压缩/解压缩 (.tar.xz 或 .txz)。

tar -cvf archive.tar folder/(打包)

tar -xvf archive.tar(解压)

gzip/gunzip压缩文件。
解压 .gz 文件。
  • -dgzip -d 等同于 gunzip。 

  • -k: 保留原文件(压缩后不删除)

gzip file.txt(生成 file.txt.gz
gunzip file.txt.gz(解压为 file.txt
zip/unzip压缩文件或目录。
解压 .zip 文件。
  • zip 用法: zip [options] archive.zip file1 file2 ... dir/

    • -r: 递归包含目录。

  • unzip 用法: unzip archive.zip [file(s)] [-d target_dir]

    • -d : 指定解压目录。

    • -l: 列出压缩包内容而不解压。

zip archive.zip file.txt(压缩文件)
unzip archive.zip(解压文件)

8. 其他实用命令

命令功能示例
man查看命令手册(帮助文档)。man ls(查看 ls 命令的用法)
history查看命令历史记录。history(显示最近执行的命令)
alias创建命令别名。alias ll='ls -l'(将 ll 设为 ls -l 的别名)
clear清除终端屏幕。clear(清屏)
echo输出文本或变量。echo "Hello, World!"(输出字符串)

9. 危险命令(谨慎使用!)

命令功能示例
rm -rf递归强制删除目录及内容。rm -rf /path/to/folder(删除目录及其所有内容)
poweroff关闭系统。poweroff(立即关机)
reboot重启系统。reboot(立即重启)

 荐一个非常好用的工具集合:在线工具集合 - 您的开发助手

http://www.lryc.cn/news/624784.html

相关文章:

  • 增强服务器防御能力的自动化工具 Fail2Ban
  • MySQL实战优化高手教程 – 从架构原理到生产调优
  • iOS 正式包签名指南
  • 【C#补全计划】预处理器指令
  • 【MongoDB】常见八股合集,mongodb的特性,索引使用,优化,事务,ACID,聚合查询,数据复制机制,理解其基于raft的选举机制
  • 【Langchain系列五】DbGPT——Langchain+PG构建结构化数据库智能问答系统
  • MongoDB新手教学
  • Flutter 多功能列表项:图标、文字与Switch组合
  • 在阿里云 CentOS Stream 9 64位 UEFI 版上离线安装 Docker Compose
  • 智能人形机器人:知识驱动的工业生产力革新
  • 神经网络显存占用分析:从原理到优化的实战指南
  • 实战架构思考及实战问题:Docker+‌Jenkins 自动化部署
  • 【论文阅读】-《GeoDA: a geometric framework for black-box adversarial attacks》
  • 动态规划:入门思考篇
  • 01.Linux小技巧
  • 【Python语法基础学习笔记】条件表达式和逻辑表达式
  • python遇到异常流程
  • 【verge3d】如何在项目里调用接口
  • Python函数:装饰器
  • Kafka 零拷贝(Zero-Copy)技术详解
  • C++面试中的手写快速排序:从基础到最优的完整思考过程
  • IEC EN 62040 不间断电源系统(UPS)安全要求标准
  • 【音视频】芯片、方案、市场信息收集
  • 恒创科技:日本服务器 ping 不通?从排查到解决的实用指南
  • 政策技术双轮驱动智慧灯杆市场扩容,塔能科技破解行业痛点
  • 【轨物交流】轨物科技与华为鲲鹏生态深度合作 光伏清洁机器人解决方案获技术认证!
  • 微算法科技(NASDAQ: MLGO)研究分片技术:重塑区块链可扩展性新范式
  • 【P38 6】OpenCV Python——图片的运算(算术运算、逻辑运算)加法add、subtract减法、乘法multiply、除法divide
  • Maven resources资源配置详解
  • 深度研究系统、方法与应用的综述