菜鸟科技网

Unix基本命令有哪些核心功能?

Unix/Linux 命令行基础

核心概念

  • Shell: 你与操作系统交互的终端界面,常见的 Shell 有 Bash (Linux/macOS 默认)、Zsh 等。
  • 命令: 你输入的指令,如 ls
  • 选项/标志: 修改命令行为的单字符,通常以 开头,如 -l (long listing)。
  • 参数/路径: 命令操作的对象,通常是文件或目录的路径,如 Documents/report.txt
  • 绝对路径: 从根目录 开始的完整路径,如 /home/user/Documents/report.txt
  • 相对路径: 从当前目录开始的路径,如 ./Documents/report.txt../parent_dir

文件和目录操作

这是最常用的一组命令。

Unix基本命令有哪些核心功能?-图1
(图片来源网络,侵删)
命令 全称 描述 示例
ls list 列出当前目录下的文件和目录。 ls -l (长格式显示)
ls -a (显示隐藏文件,以开头)
ls -h (人类可读的文件大小,如 1K, 234M)
cd change directory 切换当前工作目录。 cd /home/user (切换到绝对路径)
cd .. (切换到上级目录)
cd ~ (切换到用户主目录)
cd - (切换到上一个目录)
pwd print working directory 显示当前所在的完整路径。 pwd
mkdir make directory 创建一个新目录。 mkdir new_folder
mkdir -p parent/child (递归创建多级目录)
touch - 创建一个空文件,或更新文件的时间戳。 touch new_file.txt
cp copy 复制文件或目录。 cp file1.txt file2.txt (复制文件)
cp -r dir1/ dir2/ (递归复制目录,-r-R 必须有)
mv move 移动文件/目录,或重命名。 mv old_name.txt new_name.txt (重命名)
mv file.txt /path/to/destination/ (移动文件)
rm remove 删除文件或目录。⚠️ 警告:此命令危险,删除后无法恢复! rm file.txt (删除文件)
rm -r dir/ (递归删除目录)
rm -f file.txt (强制删除,不提示)
cat concatenate 查看文件的全部内容并输出到终端,适合短文件。 cat file.txt
less - 分页查看文件内容,可以上下翻页、搜索,适合长文件。 less long_file.log (按 q 退出)
head - 查看文件的开头部分,默认前10行。 head -n 20 file.txt (查看前20行)
tail - 查看文件的结尾部分,默认后10行。 tail -n 20 file.txt (查看后20行)
tail -f log.txt (实时追踪文件变化,常用于看日志)
nano / vim - 文本编辑器。nano 简单易用,vim 功能强大但需要学习。 nano file.txt
vim file.txt

文件权限和所有权

Unix/Linux 的核心特性之一就是权限管理。

命令 描述 示例
chmod Change Mode:修改文件或目录的权限。 chmod +x script.sh (给脚本添加可执行权限)
chmod 755 mydir (设置权限为 rwxr-xr-x)
权限码: r=4, w=2, x=1
chown Change Owner:修改文件或所有者,通常需要 sudo sudo chown user:group file.txt (同时修改用户和用户组)
chgrp Change Group:修改文件的用户组。 sudo chgrp developers project_file

权限说明

  • r (read): 读取
  • w (write): 写入
  • x (execute): 执行
  • d (directory): 目录
  • (regular file): 普通文件
  • l (link): 符号链接

权限分为三组:所有者所属组其他人drwxr-xr-x


搜索和查找

命令 描述 示例
find 在整个文件系统中查找文件,功能强大,语法稍复杂。 find . -name "*.txt" (在当前目录及子目录下查找所有 .txt 文件)
find /home -type f -size +10M (在 /home 下查找大于10MB的普通文件)
grep Global Regular Expression Print:在文件中搜索匹配的文本行。 grep "error" log.txt (在 log.txt 中搜索包含 "error" 的行)
grep -r "TODO" ./src (递归地在 ./src 目录下搜索 "TODO")
grep -i "hello" file.txt (忽略大小写)

压缩和打包

命令 描述 示例
tar Tape Archive:用于打包文件,常与压缩工具结合使用。 tar -czvf archive.tar.gz dir/ (打包并 gzip 压缩)
tar -xzvf archive.tar.gz (解压 gzip 压缩的包)
参数: c(创建), x(解压), v(显示过程), f(指定文件名), z(gzip), j(bzip2)
zip / unzip 创建和解压 .zip 格式的压缩包。 zip -r archive.zip dir/ (打包目录)
unzip archive.zip (解压)

系统信息和管理

命令 描述 示例
top / htop 显示系统中运行的进程,并按资源使用排序。htoptop 的增强版,更直观。 top (按 q 退出)
常用交互键: M(按内存排序), P(按CPU排序), k(结束进程)
ps Process Status:显示当前运行的进程快照。 ps aux (显示所有用户的详细进程列表)
ps -ef (另一种显示所有进程的方式)
kill / killall 结束一个正在运行的进程。 kill -9 1234 (强制结束PID为1234的进程)
killall firefox (结束所有名为 firefox 的进程)
df Disk Free:显示文件系统的磁盘空间使用情况。 df -h (以人类可读方式显示,如 1K, 234M)
du Disk Usage:显示目录或文件的磁盘使用量。 du -sh /home/user (显示 /home/user 的总大小)
参数: s(汇总), h(人类可读)
free 显示系统内存的使用情况。 free -h (以人类可读方式显示内存)
uname 显示系统信息。 uname -a (显示所有可用信息,包括内核版本、主机名等)
history 显示用户输入过的命令历史。 history
!123 (执行历史记录中编号为123的命令)

网络工具

命令 全称 描述 示例
ping - 测试与另一台主机的网络连接。 ping google.com
ssh Secure Shell 安全地登录到远程主机。 ssh user@remote_server_ip
scp Secure Copy 通过 SSH 在本地和远程主机之间安全地复制文件。 scp file.txt user@remote:/path/to/destination/
wget / curl - 从网络下载文件。curl 功能更全面,常用于API交互。 wget https://example.com/file.zip
curl -I https://example.com (获取HTTP头信息)
netstat / ss - 显示网络连接、路由表、接口统计等。ssnetstat 的现代替代品。 ss -tuln (显示所有监听的TCP和UDP端口)

用户和权限管理 (通常需要 sudo)

命令 描述 示例
sudo Superuser do:以超级用户或另一个用户的身份执行命令。 sudo apt update (在 Debian/Ubuntu 上更新软件列表)
sudo yum install httpd (在 CentOS/RHEL 上安装Apache)
su Switch User:切换到另一个用户。 su - (切换到root用户,并加载其环境变量)
su - username (切换到指定用户)
useradd / userdel 添加或删除用户。 sudo useradd -m newuser (创建新用户并创建主目录)
sudo userdel newuser (删除用户)
passwd 修改用户密码。 passwd (修改当前用户密码)
sudo passwd newuser (修改其他用户密码)

文本处理 (三剑客)

这三个命令是 Unix/Linux 文本处理的利器,经常通过管道 组合使用。

Unix基本命令有哪些核心功能?-图2
(图片来源网络,侵删)
命令 描述 示例
cat Concatenate,但常用于将文件内容通过管道传递给其他命令。 cat file.txt \| grep "error"
grep Global Regular Expression Print,过滤行。 ps aux \| grep "nginx"
awk Aho, Weinberger, and Kernighan,按列处理文本。 cat /etc/passwd \| awk -F':' '{print $1}' (以冒号为分隔符,打印第一列,即用户名)
sed Stream Editor,用于流编辑文本,如替换、删除。 echo "hello world" \| sed 's/world/universe/' (将 "world" 替换为 "universe")

管道 : 将一个命令的输出作为另一个命令的输入。 重定向 >>>:

  • >: 将输出写入文件,覆盖
  • >>: 将输出追加到文件末尾,不覆盖

进程控制

命令 描述 示例
& 在命令末尾加上 &,可以让命令在后台运行。 sleep 100 &
Ctrl + Z 暂停当前正在运行的进程,并将其放到后台。 (运行一个命令后,按 Ctrl+Z)
jobs 显示当前 shell 会话中后台运行的任务。 jobs
fg / bg fg 将后台任务调回前台,bg 让后台任务继续运行。 fg %1 (将任务1调回前台)
bg %1 (让任务1在后台继续运行)

学习建议

  1. 动手实践: 不要只看不练,打开你的终端,尝试每一个命令。
  2. 从简单开始: 先掌握 ls, cd, pwd, mkdir, touch, cp, mv, rm
  3. 理解 man 页面: 每个命令都有详细的 man (manual) 页面,输入 man ls 查看帮助,学会使用 man 是成为 Unix 高手的关键一步。
  4. 善用 --help: 很多命令也支持 command --help 来显示常用选项。
  5. 组合使用: 学会使用管道 和重定向 > >>,你会发现命令行的强大之处。

希望这份指南对你有帮助!Unix/Linux 的世界非常广阔,命令行是其精髓所在,祝你学习愉快!

Unix基本命令有哪些核心功能?-图3
(图片来源网络,侵删)
分享:
扫描分享到社交APP
上一篇
下一篇