SEARCH

linux基础命令大全 - 掌握Linux核心操作,从入门到精通

欢迎来到linux基础命令大全!Linux,作为一款强大而稳定的操作系统,无论是服务器管理、软件开发,还是日常的个人使用,都扮演着越来越重要的角色。对于初学者而言,掌握Linux命令行(CLI)是迈向精通的第一步。命令行界面虽然初看起来有些高冷,但它却是高效管理系统、自动化任务以及解决复杂问题的核心工具。

本篇文章旨在为您提供一份详尽、具体且易于理解的linux基础命令大全。我们将从最常用的文件与目录操作开始,逐步深入到文件内容查看、权限管理、系统信息获取乃至进程控制等核心领域。无论您是Linux新手,还是希望系统性地巩固基础知识,这份指南都将是您不可或缺的资源。让我们一起,通过实践,彻底掌握这些Linux的“基石”命令吧!


文件与目录操作:Linux世界的基石

在Linux中,一切皆文件。理解如何创建、查看、移动和删除文件与目录,是您使用Linux的第一步。


导航与查看

熟悉当前所处位置以及周围的文件和目录,是进行任何操作的前提。


pwd (Print Working Directory)

作用: 显示当前“工作目录”的完整路径。

范例:

pwd

输出: /home/yourusername/Documents (示例)


ls (List)

作用: 列出指定目录下的文件和子目录。这是最常用的命令之一,它能帮助您了解目录结构。

常用选项:

  • -l (long format): 以长格式显示文件和目录的详细信息,包括权限、所有者、大小、创建日期等。
  • -a (all): 显示所有文件和目录,包括以.开头的隐藏文件。
  • -h (human readable):-l结合使用,以人类可读的格式(如KB, MB, GB)显示文件大小。
  • -F (classify): 在目录名后添加/,可执行文件后添加*,符号链接后添加@等,方便识别文件类型。
  • -R (recursive): 递归地列出子目录中的内容。

范例:

ls

      列出当前目录下的非隐藏文件和目录。

ls -l

      以长格式显示当前目录内容。

ls -alh

      显示所有文件(包括隐藏文件),以长格式和人类可读的大小显示。

ls /etc

      列出/etc目录下的内容。


cd (Change Directory)

作用: 切换当前工作目录。掌握cd命令是Linux导航的关键。

常用用法:

  • cd 目录名 进入指定目录。
  • cd .. 返回上一级目录。
  • cd ~cd (不带参数): 返回当前用户的主目录。
  • cd / 进入根目录。
  • cd - 返回上次所在的目录。

范例:

cd Documents

      进入名为Documents的子目录。

cd ../../

      向上返回两级目录。

cd /var/log

      进入/var/log目录。


创建、删除与移动

这些命令让您能够管理文件和目录的生命周期。


mkdir (Make Directory)

作用: 创建新的目录。

常用选项:

  • -p (parents): 递归创建目录,如果父目录不存在也会一并创建。

范例:

mkdir my_new_folder

      在当前目录下创建一个名为my_new_folder的目录。

mkdir -p project/src/main

      创建project目录,并在其下创建src/main子目录(如果projectsrc不存在,也会一并创建)。


rmdir (Remove Directory)

作用: 删除空目录。请注意,此命令只能删除空目录

范例:

rmdir empty_folder

      删除名为empty_folder的空目录。

注意: 如果目录不为空,rmdir会报错。要删除非空目录及其内容,请使用rm -r命令。


touch (Create Empty File / Update Timestamp)

作用: 创建一个空文件,或者更新现有文件的访问/修改时间戳。

范例:

touch my_file.txt

      如果my_file.txt不存在,则创建一个空的my_file.txt文件;如果存在,则更新其时间戳。


cp (Copy)

作用: 复制文件或目录。

常用选项:

  • -r-R (recursive): 递归复制目录及其所有内容。
  • -i (interactive): 覆盖前提示用户。
  • -v (verbose): 显示复制过程。

范例:

cp file1.txt file2.txt

      复制file1.txt并将其命名为file2.txt

cp document.pdf ~/backup/

      将document.pdf复制到用户主目录下的backup目录中。

cp -r my_folder /tmp/

      将my_folder目录及其所有内容复制到/tmp/


mv (Move / Rename)

作用: 移动文件或目录,也可以用于文件或目录的重命名。

范例:

mv old_name.txt new_name.txt

      将old_name.txt重命名为new_name.txt

mv report.docx /home/user/reports/

      将report.docx移动到/home/user/reports/目录。


rm (Remove)

作用: 删除文件或目录。这是一个非常强大的命令,请务必谨慎使用,因为删除的文件通常无法恢复。

常用选项:

  • -r (recursive): 递归删除目录及其所有内容。
  • -f (force): 强制删除,不进行任何提示(即使文件是只读的)。与-r结合使用时尤其危险。
  • -i (interactive): 删除前进行提示确认。

范例:

rm unwanted_file.txt

      删除名为unwanted_file.txt的文件。

rm -r useless_folder/

      删除名为useless_folder的目录及其所有内容。

rm -rf /path/to/very/important/data/

      !!!极其危险的命令!!! 这将不经提示地强制删除指定路径下的所有文件和目录。


文件内容查看与编辑:探索文件内部

在Linux中,您无需图形界面即可轻松查看和修改文本文件。


查看文件内容


cat (Concatenate and Display)

作用: 连接文件并打印到标准输出(通常是屏幕)。主要用于查看短小文件的内容。

范例:

cat my_notes.txt

      显示my_notes.txt文件的全部内容。

cat file1.txt file2.txt > combined.txt

      将file1.txtfile2.txt的内容合并到combined.txt中。


less

作用: 分页查看文件内容。对于大型文件,lesscat更实用,因为它允许您向上或向下滚动,并且不会一次性加载整个文件。

基本操作:

  • SpacePage Down 向下翻页。
  • bPage Up 向上翻页。
  • /关键词 向下搜索关键词。
  • n 继续下一个搜索结果。
  • N 返回上一个搜索结果。
  • g 跳转到文件开头。
  • G 跳转到文件结尾。
  • q 退出less

范例:

less /var/log/syslog

      分页查看系统日志文件。


head

作用: 显示文件的开头几行(默认是前10行)。

常用选项:

  • -n 数字 指定显示多少行。

范例:

head server_logs.txt

      显示server_logs.txt的前10行。

head -n 5 important_config.conf

      显示important_config.conf的前5行。


tail

作用: 显示文件的末尾几行(默认是后10行)。在查看实时更新的日志文件时非常有用。

常用选项:

  • -n 数字 指定显示多少行。
  • -f (follow): 实时跟踪文件的新增内容。当文件有新内容写入时,tail -f会立即显示出来。

范例:

tail access.log

      显示access.log的最后10行。

tail -n 20 error.log

      显示error.log的最后20行。

tail -f /var/log/apache2/access.log

      实时跟踪Apache访问日志,当有新访问时会立即显示。按Ctrl+C可退出。


基础文本编辑


nano (Nano Text Editor)

作用: 一个简单易用的文本编辑器,非常适合命令行新手。它在屏幕底部会显示常用的操作快捷键。

基本操作:

  • nano 文件名 打开或创建一个文件进行编辑。
  • Ctrl+O 保存文件(Write Out)。
  • Ctrl+X 退出编辑器。
  • Ctrl+K 剪切行。
  • Ctrl+U 粘贴行。

范例:

nano my_config.conf

      使用Nano编辑器打开my_config.conf文件。


权限管理:保障系统安全

Linux是一个多用户系统,文件和目录权限是其安全机制的核心。理解并能修改权限至关重要。


理解文件权限

使用ls -l命令时,您会看到类似-rwxr-xr--的字符串。这代表了文件或目录的权限:

  • 第一个字符:文件类型(-表示文件,d表示目录,l表示符号链接等)。
  • 接下来的九个字符:分为三组,每组三个字符。
    1. 所有者(owner)权限: 第2-4个字符。
    2. 所属组(group)权限: 第5-7个字符。
    3. 其他用户(others)权限: 第8-10个字符。
  • 每组的三个字符分别代表:
    • r (read): 读权限。
    • w (write): 写权限。
    • x (execute): 执行权限(对于目录意味着可以进入)。
    • - 对应权限未设置。

权限也可以用数字(八进制)表示:r=4, w=2, x=1。将每组权限的数字相加,得到一个三位或四位数字。例如:

  • rwx = 4+2+1 = 7
  • rw- = 4+2+0 = 6
  • r-x = 4+0+1 = 5

所以,-rwxr-xr--对应的数字权限是754


chmod (Change Mode)

作用: 改变文件或目录的权限。

常用用法(数字模式):

  • chmod 755 文件/目录名 所有者可读写执行,组用户和其他用户只读执行。这是常见的目录权限设置。
  • chmod 644 文件名 所有者可读写,组用户和其他用户只读。这是常见的文本文件权限设置。

常用用法(符号模式):

  • u 所有者 (user)
  • g 所属组 (group)
  • o 其他用户 (others)
  • a 所有用户 (all)
  • + 添加权限
  • - 移除权限
  • = 设置权限(覆盖现有权限)

范例:

chmod 755 script.sh

      将script.sh设置为所有者可读写执行,组用户和其他用户可读可执行。

chmod +x my_program

      给my_program添加执行权限(对所有用户)。

chmod u=rw,go=r file.txt

      设置file.txt:所有者读写,组用户和其他用户只读。


chown (Change Owner)

作用: 改变文件或目录的所有者和/或所属组。通常需要sudo权限才能执行。

范例:

sudo chown newuser file.txt

      将file.txt的所有者改为newuser

sudo chown -R newuser:newgroup my_folder/

      递归地将my_folder及其内容的所有者改为newuser,所属组改为newgroup


sudo (Superuser Do)

作用: 以超级用户的权限(root)执行命令。在Linux中,为了系统安全,通常不直接使用root用户操作,而是通过sudo来临时提升权限。

范例:

sudo apt update

      以root权限更新软件包列表。

sudo nano /etc/hosts

      以root权限编辑/etc/hosts文件。

重要提示: 使用sudo时要格外小心,因为您可以执行任何操作,包括损坏系统。


系统信息与进程管理:洞悉系统状态

了解系统的运行状况、磁盘使用情况以及管理正在运行的程序(进程)对于系统维护至关重要。


系统信息查看


df (Disk Free)

作用: 显示文件系统的磁盘空间使用情况。

常用选项:

  • -h (human readable): 以人类可读的格式(GB, MB等)显示。

范例:

df -h

      显示所有挂载的文件系统的磁盘空间使用情况。


du (Disk Usage)

作用: 估算文件或目录的磁盘空间使用量。

常用选项:

  • -h (human readable): 以人类可读的格式显示。
  • -s (summarize): 只显示总计大小,而不是每个文件/子目录的详细列表。

范例:

du -sh my_project/

      显示my_project/目录的总大小。

du -h Documents/

      显示Documents/目录下所有文件和子目录的大小。


top

作用: 实时显示系统中正在运行的进程,以及它们的CPU、内存占用情况,类似于Windows的任务管理器。

基本操作:

  • q 退出top
  • k 杀死进程(按K后输入PID,再按回车)。

范例:

top

      启动top界面。


ps (Process Status)

作用: 显示当前系统中的进程快照。与top的实时性不同,ps是某个时间点的静态信息。

常用选项:

  • aux 最常用的组合,显示所有用户(a)、包含没有控制终端的进程(x),并显示详细信息(u)。
  • ef 显示所有进程,并以全格式显示命令。

范例:

ps aux | grep firefox

      查找所有与Firefox相关的进程(grep用于过滤输出)。


uname

作用: 显示系统信息,如内核名称、主机名、内核版本、操作系统等。

常用选项:

  • -a (all): 显示所有系统信息。
  • -r 显示内核版本。
  • -m 显示硬件架构。

范例:

uname -a

      显示所有系统信息。


进程管理


kill

作用: 终止一个正在运行的进程。通常通过进程ID(PID)来指定。

常用信号:

  • -9 (SIGKILL): 强制终止进程,不给进程清理资源的机会。慎用。
  • -15 (SIGTERM): 正常终止进程,给进程时间清理资源。默认信号。

范例:

kill 12345

      向PID为12345的进程发送终止信号(SIGTERM)。

kill -9 54321

      强制终止PID为54321的进程。

killall firefox

      终止所有名为firefox的进程。

快捷键: 在终端中,可以使用Ctrl+C来中断当前正在运行的命令或进程。


搜索与帮助:高效定位信息

当您需要查找文件或在文件中查找特定内容时,这些命令会派上用场。


find

作用: 在文件系统中搜索文件和目录。它功能强大,可以通过各种条件进行搜索。

常用选项:

  • . 在当前目录及子目录中搜索。
  • / 在根目录及所有子目录中搜索。
  • -name "文件名" 按名称搜索(支持通配符,如*.txt)。
  • -type d 搜索目录。
  • -type f 搜索文件。
  • -size +1M 搜索大于1MB的文件。
  • -user 用户名 搜索属于指定用户的文件。

范例:

find . -name "*.log"

      在当前目录及其子目录中查找所有以.log结尾的文件。

find /home/user -type f -name "report_*.pdf"

      在/home/user目录下查找所有以report_开头且以.pdf结尾的文件。


grep (Global Regular Expression Print)

作用: 在文件中搜索匹配指定模式(通常是文本字符串或正则表达式)的行。

常用选项:

  • -i (ignore case): 忽略大小写进行搜索。
  • -r (recursive): 递归搜索目录下的所有文件。
  • -n (line number): 显示匹配行的行号。
  • -l (files with matches): 只显示包含匹配项的文件名。

范例:

grep "error" /var/log/syslog

      在/var/log/syslog文件中查找所有包含“error”的行。

grep -rni "password" /etc/

      在/etc/目录下递归、不区分大小写地查找包含“password”的行,并显示行号。


man (Manual)

作用: 显示命令的联机帮助手册(manual page)。这是学习和理解Linux命令最权威的来源。

基本操作:

  • man 命令名 显示指定命令的帮助手册。
  • man页面中,可以使用Page Up/Page Down或上下箭头滚动,按/关键词搜索,按q退出。

范例:

man ls

      查看ls命令的帮助手册。


学习Linux命令的最佳实践

仅仅了解这些命令还不够,掌握它们需要持续的练习和正确的学习方法:

  • 多加练习: 理论知识需要通过实践来巩固。在虚拟机、Docker容器或云服务器上搭建一个Linux环境,放心地进行操作。
  • 利用Tab键自动补全: 这是命令行中最实用的功能之一。输入命令或文件名的前几个字母,然后按Tab键,系统会自动补全或显示可能的选项。
  • 善用历史命令: 使用向上/向下箭头键可以浏览之前输入的命令。history命令可以查看您所有输入过的命令列表。Ctrl+R可以反向搜索历史命令。
  • 阅读错误信息: 当命令执行失败时,系统通常会给出错误提示。仔细阅读这些信息,它们往往能指出问题所在。
  • man手册中学习: man命令是您的最佳伴侣,它提供了最详细、最准确的命令信息。
  • 从简单开始,逐步深入: 熟练掌握这些linux基础命令大全中的命令后,您可以尝试学习管道(|)、重定向(>, >>, <)、通配符、环境变量以及Shell脚本编程等更高级的主题。


常见问题 (FAQ)


如何记住这么多Linux命令?

记住所有Linux命令确实具有挑战性,但您可以通过以下方法提高效率:理解而非死记硬背,掌握命令的逻辑和作用;分类学习,将命令按功能(如文件操作、系统管理)分组;多加实践,在日常使用中不断重复使用命令;利用man手册,不确定时查阅帮助;使用Tab键自动补全,减少记忆压力。


为何我的Linux命令不起作用或显示“权限不足”?

这通常是由于权限问题。您可能正在尝试修改一个您没有写入权限的文件,或者在没有足够权限的目录中创建文件。解决方法通常是:使用sudo命令,在命令前加上sudo以超级用户权限执行(例如:sudo nano /etc/hosts);检查文件或目录的所有者和权限(使用ls -l),并根据需要使用chmodchown命令进行调整(通常需要sudo权限来修改这些)。


Linux命令是大小写敏感的吗?

是的,Linux命令和文件/目录名是严格区分大小写的。 例如,cd Documentscd documents是两个完全不同的命令,如果您有一个名为Documents的文件夹,但输入了cd documents,系统将提示找不到该目录。同样,Ls不是一个有效的命令,必须是ls


Windows和Linux的命令行操作有什么主要区别?

Windows(CMD/PowerShell)和Linux(Bash/Zsh等)在命令行操作上有显著区别。语法不同,例如Windows使用dir列出文件,Linux使用ls;Windows使用反斜杠作为路径分隔符,Linux使用正斜杠/。此外,设计哲学不同,Linux更强调一切皆文件,强大的管道(|)和重定向使得命令组合异常灵活;权限模型也不同,Linux的权限系统(rwx、所有者/组/其他)更为精细和安全。学习Linux命令后,您会发现其在自动化和系统管理方面的强大优势。

通过这份linux基础命令大全,您已经掌握了进入Linux世界的钥匙。请记住,学习永无止境,实践是最好的老师。从现在开始,就打开您的终端,运用这些命令,探索Linux的无限可能吧!祝您学习愉快,在Linux的命令行世界中遨游!