Linux 基础指令入门:常用命令、Shell 原理与权限管理

1. 为什么需要掌握 Linux 命令行

Linux 在服务器、云计算、大数据、嵌入式等领域应用非常广泛,很多生产环境中的机器并没有图形界面,日常操作基本都是通过终端命令完成。对于开发、运维和测试同学来说,熟练使用 Linux 基础指令是绕不开的基本功。本文从最常用的命令出发,帮助你快速建立命令行的使用手感。

2. Linux 与 Shell:先理解命令是如何执行的

Linux 严格来说指的是操作系统内核 kernel,普通用户通常不会直接和内核打交道,而是通过一个叫做 Shell 的程序来间接操作。Shell 本质上是一个命令行解释器,它的核心作用有两个:

  • 把用户输入的命令翻译给内核处理。
  • 把内核处理后的结果翻译成用户可以理解的文本输出。

可以把 Shell 理解成用户和内核之间的中间人。常见的 Shell 有 bash、zsh 等,绝大多数 Linux 发行版默认使用 bash。我们日常在终端里输入的 lscd 等命令,最终都会先交给 Shell 解析,再由内核执行。

3. 远程登录 Linux

实际工作中,我们往往需要通过 SSH 协议远程登录服务器。常见的终端工具有 XShell、SecureCRT 以及 macOS 和 Linux 自带的终端。登录命令如下:

bash 复制代码
# 使用 ssh 命令登录远程主机
[whb@linux ~]$ ssh user@192.168.1.100

如果连接成功,系统会提示输入密码。输入密码后即可进入远程主机的命令行环境。也推荐使用 ssh-keygen 和公钥配置实现免密登录,日常使用更加方便。

4. 路径与目录操作:pwd、ls、cd

4.1 pwd:显示当前所在目录

用法非常简单,只输入 pwd 即可,它会输出当前用户所在的工作目录。

bash 复制代码
[whb@linux test]$ pwd
/home/whb/test

4.2 ls:列出目录内容

ls 是最常用的查看命令之一。对于目录,它会列出目录下的子目录和文件;对于文件,它会显示文件信息。常用选项如下:

  • -a:显示所有文件,包括以 . 开头的隐藏文件。
  • -l:以长格式显示文件的详细信息,包括权限、属主、大小、时间等。
  • -h:配合 -l 使用,以更易读的方式显示文件大小。
  • -R:递归列出所有子目录中的文件。
bash 复制代码
[whb@linux test]$ ls
dir  file.txt
[whb@linux test]$ ls -a
.  ..  dir  file.txt
[whb@linux test]$ ls -l
total 12
drwxrwxr-x  3 whb whb 4096 Jan 11 15:01 .
drwx------ 22 whb whb 4096 Jan 11 14:21 ..
drwxrwxr-x  2 whb whb 4096 Jan 11 14:22 dir
-rw-rw-r--  1 whb whb    0 Jan 11 14:22 file.txt

ls -l 输出中的第一个字符表示文件类型,例如 d 表示目录,- 表示普通文件,后边的九位字符分别表示属主、属组和其他用户的读写执行权限,这部分我们在权限章节再展开。

4.3 cd:切换目录

cd 用于改变当前工作目录。理解路径非常重要:Linux 的文件系统是一棵目录树,任何一个节点都只有一个父节点,所以从根目录 / 出发定位文件具有唯一性。

  • 绝对路径:以 / 开头,例如 /home/whb/test,不依赖当前目录。
  • 相对路径:相对于当前目录定位,例如 ../temp
bash 复制代码
[whb@linux ~]$ pwd
/home/whb
[whb@linux ~]$ cd ..
[whb@linux home]$ pwd
/home
[whb@linux home]$ cd ~
[whb@linux ~]$ pwd
/home/whb
[whb@linux ~]$ cd -
/home
[whb@linux home]$ pwd
/home

常见技巧:cd ~ 可以快速回到当前用户的家目录,cd - 可以回到最近一次所在的目录。

5. 文件与目录的创建和删除

5.1 touch:创建文件或更新时间

touch 常用于创建空文件,也可以修改文件的访问时间和修改时间。

bash 复制代码
[whb@linux test]$ touch newfile.txt
[whb@linux test]$ ls
dir  file.txt  newfile.txt

如果需要查看文件的详细时间信息,可以使用 stat 命令。

5.2 mkdir:创建目录

mkdir 用于创建目录,常用选项是 -p,可以一次递归创建多层不存在的目录。

bash 复制代码
[whb@linux test]$ mkdir mydir
[whb@linux test]$ mkdir -p path1/path2/path3

5.3 rmdir 与 rm:删除目录和文件

rmdir 只能删除空目录,日常更常用的是 rmrm 可以删除文件或目录,常用选项:

  • -f:强制删除,不进行确认。
  • -i:删除前逐一询问确认。
  • -r:递归删除目录及其下所有文件。
bash 复制代码
[whb@linux test]$ rm file.txt
[whb@linux test]$ rm -r dir
[whb@linux test]$ rm -rf path1

需要特别提醒:rm -rf 不会经过回收站,删除后很难恢复,生产环境下执行前一定要再三确认路径。

6. 查看文件内容

6.1 cat 与 tac

cat 用于把文件内容一次性输出到终端,适合查看较小的文件。tac 则是反向输出,从最后一行开始显示。

bash 复制代码
[whb@linux test]$ cat file.txt
hello linux
hello world

6.2 more 与 less

对于内容较多的文件,用 cat 会直接刷屏。more 可以分页显示,但只能向后翻;less 更强大,支持前后翻页和搜索,是更推荐的查看工具。

bash 复制代码
[whb@linux test]$ less -N temp.txt

less 中可以使用 /关键词 向下搜索,使用 ?关键词 向上搜索,按 q 退出。

6.3 head 与 tail

head 默认显示文件开头 10 行,tail 默认显示文件末尾 10 行。两者的 -n 参数可以指定行数。tail -f 常用于实时查看不断追加的日志文件。

bash 复制代码
[whb@linux test]$ head -5 temp.txt
hello 0
hello 1
hello 2
hello 3
hello 4
[whb@linux test]$ tail -3 temp.txt
hello 1998
hello 1999
hello 2000
显示文件的第 180 到 200 行
[whb@linux test]$ head -200 temp.txt | tail -20

7. 复制、移动与查找

7.1 cp 与 mv

cp 用于复制文件或目录,mv 用于移动文件,也可以用来重命名。复制目录时需要加上 -r

bash 复制代码
[whb@linux test]$ cp file.txt file.bak
[whb@linux test]$ cp -r dir1 dir2
[whb@linux test]$ mv file.txt /tmp/

7.2 find:按条件查找文件

find 功能非常强大,可以在指定目录树中按名称、类型、大小、修改时间等条件查找文件。最常用的方式是按名称查找。

bash 复制代码
[whb@linux test]$ find ~ -name test.c
/home/whb/test_code/test.c

7.3 grep:查找文件内容

grep 用于在文件内容中搜索字符串,并把匹配到的行打印出来。常用选项:

  • -i:忽略大小写。
  • -n:输出匹配行的行号。
  • -v:反向选择,输出不包含目标字符串的行。
bash 复制代码
[whb@linux test]$ grep -n "hello" temp.txt
1:hello 0
2:hello 1
[whb@linux test]$ grep -i "Hello" temp.txt

7.4 which 与 whereis

which 用于查看某个命令的完整路径,whereis 还可以定位命令的源码和手册页。

bash 复制代码
[whb@linux test]$ which ls
alias ls='ls --color=auto'
        /usr/bin/ls
[whb@linux test]$ whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

8. 打包与压缩

8.1 tar:打包与解包

tar 是 Linux 中使用频率非常高的归档工具,可以只打包不压缩,也可以结合 gzip 或 bzip2 压缩。常用参数:

  • -c:创建打包文件。
  • -x:解开打包文件。
  • -t:查看包内文件。
  • -z:使用 gzip 压缩或解压。
  • -v:显示处理过程。
  • -f:指定包文件名。
  • -C:解压到指定目录。
bash 复制代码
# 仅打包,不压缩
[root@linux ~]$ tar -cvf /tmp/etc.tar /etc
打包并使用 gzip 压缩
[root@linux ~]$ tar -zcvf /tmp/etc.tar.gz /etc
解压到 /tmp 目录
[root@linux ~]$ tar -zxvf /tmp/etc.tar.gz -C /tmp

8.2 zip 与 unzip

如果需要在 Windows 和 Linux 之间互传文件,zip 格式会更通用一些。-r 表示递归处理目录。

bash 复制代码
[whb@linux test]$ zip -r test.zip test_dir/
[whb@linux test]$ unzip test.zip -d /tmp

9. 系统信息、时间与帮助

9.1 uname:查看系统和内核信息

bash 复制代码
[whb@linux ~]$ uname -a
Linux linux-host 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

9.2 date 与 cal

date 用于查看或设置系统时间,也经常用于格式化时间。cal 用于查看日历。

bash 复制代码
[whb@linux ~]$ date +%Y/%m/%d-%H:%M:%S
2026/09/12-20:40:36
[whb@linux ~]$ date +%s
1789195236
[whb@linux ~]$ cal -3

9.3 top:查看系统进程和资源占用

top 可以实时查看 CPU、内存使用情况以及进程列表,按 q 退出。可以用 -d 指定刷新间隔,用 -n 指定刷新次数。

bash 复制代码
[whb@linux ~]$ top -d 1 -n 5

9.4 man:查看命令帮助

遇到不熟悉的命令,第一时间查阅 man 手册是最可靠的学习方式。

bash 复制代码
[whb@linux ~]$ man ls

10. 权限管理

Linux 是一个多用户操作系统,权限管理是理解 Linux 的重要一环。Linux 下主要有两类用户:

  • 超级用户 root:几乎可以做任何事情,命令提示符通常是 #
  • 普通用户:只能执行受限操作,命令提示符通常是 $

10.1 文件访问者的分类

对于一个文件或目录,访问者分为三类:

  • 属主 owner,用 u 表示。
  • 属组 group,用 g 表示。
  • 其他用户 others,用 o 表示。

10.2 基本权限

每个文件或目录都有读、写、执行三种权限:

  • r:读权限,数值为 4。
  • w:写权限,数值为 2。
  • x:执行权限,数值为 1。

权限可以同时用字符方式和八进制数字表示,例如 rwxr-xr-x 对应数字 755。第一位 d 表示目录,- 表示普通文件,l 表示软链接。

10.3 chmod:修改文件权限

只有文件属主和 root 可以修改文件权限。可以使用符号方式或者八进制数字方式。

bash 复制代码
# 给文件属主增加执行权限
[root@linux ~]$ chmod u+x /home/abc.sh
给其他用户去掉写权限
[root@linux ~]$ chmod o-w /home/abc.txt
用八进制数字设置权限
[root@linux ~]$ chmod 755 /home/abc.sh
[root@linux ~]$ chmod 644 /home/abc.txt

10.4 chown 与 chgrp

chown 用于修改文件属主,chgrp 用于修改文件属组,两者都可以使用 -R 递归处理目录。

bash 复制代码
[root@linux ~]$ chown user1 file.txt
[root@linux ~]$ chgrp users /home/work/f2
[root@linux ~]$ chown -R user1:users /home/project

10.5 umask:默认权限掩码

新建文件时,系统会从默认权限中减去 umask 掩码,从而得到实际权限。例如新建文件的默认权限通常是 666,新建目录的默认权限通常是 777,如果 umask 为 022,那么新建文件的实际权限通常是 644,新建目录的实际权限通常是 755。

bash 复制代码
[whb@linux ~]$ umask
0022

11. 小结

本文梳理了 Linux 中使用频率最高的一批基础指令,涵盖目录切换、文件增删、内容查看、检索、打包压缩、系统信息和权限管理。初学阶段建议按下面的顺序练习:

  • 先用 pwdlscd 熟悉目录结构。
  • 再用 touchmkdircpmvrm 练习文件操作。
  • 然后练习 catlessheadtailgrep 查看和检索内容。
  • 最后理解 chmodchownumask,建立权限意识。

命令记不住很正常,最有效的方法是遇到不会的命令多用 man 查询,并在真实任务中反复练习。

相关推荐
aosky1 小时前
Linux 写内容到文件的几种方式
java·linux·服务器
吴声子夜歌2 小时前
Shell编程——函数
linux·运维·shell
码少女3 小时前
Linux——多路复用之poll模型
linux·服务器·网络
PatrickYao04223 小时前
Linux安装UV
linux·运维·uv
顶点多余3 小时前
面试题总结 ---Linux篇
linux·运维·服务器
T1mzhou3 小时前
ARM64 Linux 6.10 内核驱动(14):drivers/base/platform.c:板级设备主战场
linux·c语言·开发语言·arm开发
微露清风3 小时前
Linux 虚拟地址空间:一道屏障、一张地图、一场延迟兑现的博弈
linux·服务器
zx_741484813 小时前
【Linux入门】Shell 与第一个 Shell 脚本:认识命令行解释器,写出 Hello World
linux·运维
朽棘不雕5 小时前
动态库的理解
linux