深入Linux的命令学习与操作实践

一、Linux概述

1、一、什么是 Linux?

Linux 是一种开源、免费的操作系统,其核心是 Linux 内核(由 Linus Torvalds 于 1991 年开发)。Linux不仅系统性能稳定,而且是开源软件。其核心防火墙组件性能高效、配置简单,保证了系统的安全。在很多企业网络中,为了追求速度和安全,Linux不仅仅是被网络运维人员当作服务器使用,甚至当作网络防火墙,这是Linux的一大亮点。

Linux具有开放源码、没有版权、技术社区用户多等特点,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议站,经过适当的配置就可实现路由器的功能。

2、Linux核心特性

  • 多用户多任务支持

  • 模块化设计

  • 稳定高效

  • 兼容多种硬件平台

  • 遵循POSIX标准

  • 提供丰富网络功能

  • 强大安全机制

3、Linux组成

内核(Kernel)

  • 操作系统的核心,负责管理硬件资源(CPU、内存、磁盘、网络等)、进程调度、文件系统和设备驱动。

  • 常见内核版本:长期支持版(LTS)如 5.4、5.15、6.1 等。

shell(外壳)

  • 用户与内核交互的接口,解析用户输入的命令。

  • 常见 shell:Bash(默认)、Zsh、Fish 等。

文件系统

  • 采用 树形结构(根目录为 /),标准目录如 /usr(系统程序)、/home(用户数据)、/etc(配置文件)等。

  • 支持多种文件系统:ext4、XFS、Btrfs、NTFS(通过驱动支持)。

  • Linux跟Windows有很大不同,最大的特点是:一切皆文件,包括硬件,也是以文件方式来管理存储的。

应用程序

  • 包括系统工具(如 lscpgrep)和用户软件(如 LibreOffice、Firefox、GIMP 等),多数基于开源软件生态。

4、Linux版本

Linux内核版本

是操作系统的核心部分,它提供了操作系统的基本功能和底层支持,如内存管理、文件系统、设备驱动等。内核版本号通常具有“主版本号.次版本号.修正号”的格式,例如5.10.23。次版本号的偶数通常表示稳定版,奇数则可能包含测试的新功能。

Linux发行版

是在内核的基础上加入了用户界面、应用程序和管理工具等,形成了一个完整的操作系统供用户安装和使用。不同的发行版会使用不同版本的Linux内核,并在此基础上集成各自的特性和软件包。常见的Linux发行版包括Debian系的Ubuntu、Linux Mint;Red Hat系的Fedora、CentOS,以及独立发行的Arch Linux、openSUSE和Gentoo等。

二、Linux命令简介

1、什么是 Linux 命令?

Linux 命令是用户在字符界面输入的字符串,用于完成特定任务。它可以是指令或程序名,例如ls(列表)、date(时间)等。命令严格区分大小写,输入时需注意英文字母的大小写形式。

2、 Shell:用户与内核的 “翻译官”

Linux 命令的执行必须依赖于 Shell 命令解释器,Shell 实际上是在 Linux 操作系统中运行的一种特殊程序,它位于操作系统内核与用户之间,负责接收用户输入的命令并进行解释,将需要执行的操作传递给系统内核执行,Shell 在用户和内核之间充当了“翻译官”的角色。

根据 Linux 命令与 Shell 程序的关系,Linux 命令一般分为以下两种类型:内部命令和外部命令

3、Linux命令格式

  • 命令字:必填,如lsdate,是命令的核心标识。

  • 选项

    :可选,用于调整命令功能,分为:

    • 短格式:单个字符,以-开头,如-l(长列表)、-a(显示隐藏文件),多个短选项可合并为-al

    • 长格式:单词形式,以--开头,如--help(帮助)、--all(显示所有文件)。

  • 参数:可选,指定操作对象(如文件名、目录名),多个参数用空格分隔。

4、编辑Linux命令行

  1. Tab 键自动补全:输入部分字符后按 Tab,自动补全命令或文件 / 目录名。若存在多个匹配项,按两次 Tab 显示列表。

  2. 反斜杠\强制换行:长命令可通过\换行,提升可读性。

  3. Ctrl 组合键:

  • Ctrl+U:清空当前行至行首。

  • Ctrl+K:清空当前行至行尾。

  • Ctrl+L:清屏(等效于clear命令)。

  • Ctrl+C:取消当前命令执行。

三、Linux系统的命令帮助

  1. 使用 help 命令

  2. 使用“--help”选项

  3. 使用 man 手册页:man ls | col -b > lshelp.txt 可以将ls 命令的帮助手册保存为文本文件 lshelp.txt。

四、Linux系统的基础命令

  1. 查看系统版本 cat /etc/*release ( *release 表示显示任意以release结尾的文件)

  2. date 命令 显示当前的系统时间,例date -s "20250528 14:49:30"

  3. hwclock命令 显示与设定硬件时钟参数

五、Linux 目录结构

树状目录结构

文件系统的最顶层是由根目录开始的,系统使用 / 来表示根目录。

系统启动必须

  • /boot(内核文件):存放的启动Linux 时使用的内核文件,包括连接文件以及镜像文件。

  • /etc配置文件):存放所有的系统需要的配置文件和子目录列表,更改目录下的文件可能会导致系统不能启动。

  • /lib:l 存放基本代码库(比如c++库),其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

  • /sys:这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs 。sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中。

指令集合

  • /bin:存放着最常用的程序和指令

  • /sbin:只有系统管理员能使用的程序和指令。

外部文件管理

  • /dev :Device(设备)的缩写, 存放的是Linux的外部设备。注意:在Linux中访问设备和访问文件的方式是相同的。

  • /media:类windows的其他设备,例如U盘、光驱等等,识别后linux会把设备放到这个目录下。

  • /mnt:临时挂载别的文件系统的,可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

临时文件

  • /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有/var/run 目录,应该让它指向 run。

  • /lost+found:一般情况下为空的,系统非法关机后,这里就存放一些文件。

  • /tmp: 这个目录是用来存放一些临时文件的。

账户

  • /root:系统管理员的用户主目录(管理员的家目录)。

  • /home:家目录,对于家目录,系统会用~来代替,所谓家目录,就是系统给用户分配的目录,当普通用户登录系统的时候,会默认切换到用户对应的家目录。root用户的家目录在/root。

  • /usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

  • /usr/bin:系统用户使用的应用程序与指令

  • /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。

  • /usr/src:内核源代码默认的放置目录。

运行过程

  • /var:存放经常修改的数据,比如程序运行的日志文件(/var/log 目录下)。

  • /proc:管理内存空间!虚拟的目录,是系统内存的映射,可以直接访问这个目录来,获取系统信息。这个目录的内容不在硬盘上而是在内存里,也可以直接修改里面的某些文件来做修改。

扩展

  • /opt:默认是空的,安装额外软件可以放在这个里面。

  • /srv:存放服务启动后需要提取的数据(不用服务器就是空)

六、Linux 目录基本操作

1、pwd命令:查看当前的工作目录(Print Working Directory),执行pwd 指令可获取目前所在的工作目录的绝对路径名称。

# 表示为管理员登录

$ 表示为普通用户登录

2、cd 命令:切换工作目录(Change Directory)

. 当前目录

.. 当前目录的父目录

cd .. :退出当前目录,进入当前目录的父目录

cd~:切换到用户主目录

cd-:切换到上次访问的目录

3、ls命令:显示指定工作目录下之内容

参数:

  • -a 显示所有文件及目录 (. 开头的隐藏文件也会列出)

  • -d 只列出目录(不递归列出目录内的文件)。

  • -l 以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等。

  • -r 倒序显示文件和目录。

  • -t 将按照修改时间排序,最新的文件在最前面。

  • -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)

  • -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"

  • -R 递归显示目录中的所有文件和子目录。

--color:在字符模式中以颜色区分不同的文件。默认已开启

通常情况下,深蓝色表示目录,白色表示一般文件,绿色表示可执行的文件,黄色表示设备文件,红色表示压缩文件。

特殊字符

  • ls "my file.txt" # 列出文件名为"my file.txt"的文件

  • ls my\ file.txt # 列出文件名为"my file.txt"的文件

  • ls -- -filename # 列出文件名为"-filename"的文件

  • ls *.txt # 列出所有扩展名为.txt的文件

  • ls file?.txt # 列出文件名为file?.txt的文件,其中表示任意一个字符

  • ls [abc]*.txt # 列出以a、b或c开头、扩展名为.txt的文件

4、du命令:于显示目录或文件的大小。

参数:

  • -a:统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录。

  • -h:以更人性化的方式(默认以 KB 计数,但不显示单位)显示出统计结果,使用-h 选项后将显示出 KB、MB 等单位。

  • -s:只统计每个参数所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小。

5、mkdir 命令:创建新的目录

执行“mkdir public_html”命令将在当前目录下创建名为 public_html 的子目录,具体操作如下:

七、Linux 文件基本操作

1、touch命令:创建空文件

参数

  • a 改变档案的读取时间记录。

  • m 改变档案的修改时间记录。

  • c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。

  • f 不使用,是为了与其他 unix 系统的相容性而保留。

  • r 使用参考档的时间记录,与 --file 的效果一样。

  • d 设定时间与日期,可以使用各种不同的格式。

  • t 设定档案的时间记录,格式与 date 指令相同。

2、ln 命令某一个文件在另外一个位置建立一个同步的链接(类似快捷方式)。

格式:ln [-s] 源文件或目录… 链接文件或目标位置

ln -s /root/test/ll /root/test/ll/m1/l1.ln

在/root/test/ll/m1下创建出/root/test/ll的软链接

硬链接:多个文件名指向同一索引节点(Inode),删除其中一个文件名不影响其他链接,不能对目录创建硬链接。

软链接(符号链接):类似 Windows 快捷方式,存储原始文件路径,原始文件删除后软链接失效,可对文件或目录创建。

3、cp命令:复制(Copy)文件或目录

参数

  • -r 或 -R:递归复制目录及其内容(用于复制目录)。

    例:cp -r /path/to/source_dir /path/to/destination/ 将 source_dir 目录及其内容递归复制到 destination目录

  • -i:交互模式,覆盖前提示用户确认。

  • -f:强制复制,覆盖目标文件而不提示。

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

  • -p:保留文件的原始属性(如权限、时间戳等)。

  • -a:归档模式,等同于 -dpR,保留所有文件属性和递归复制目录。

  • -u:仅当源文件比目标文件新时才复制(更新模式)。

  • -l:创建硬链接而不是复制文件。

  • -s:创建符号链接(软链接)而不是复制文件。

4、mv 命令:将指定的文件或目录转移位置,如果目标位置与源位置相同,则效果相当于为文件或目录改名。

参数

  • -b: 当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。

  • -i: 如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。

  • -f: 如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。

  • -n: 不要覆盖任何已存在的文件或目录。

  • -u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

5、rm 命令:用于删除指定的文件或目录

参数

  • -f:删除文件或目录时不进行提醒,而直接强制删除。

  • -i:删除文件或目录时提醒用户确认。

  • -r:删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)。

6、which命令:用于查找 Linux 命令程序并显示所在的具体位置
7、find命令:可以根据目标的名称、类型、大小等不同属性进行精细查找

常用参数

  • -name pattern:按文件名查找,支持使用通配符 * 和 ?。

  • -type type:按文件类型查找,可以是 f(普通文件)、d(目录)、l(符号链接)等。

  • -size [+-]size[cwbkMG]:按文件大小查找,支持使用 + 或 - 表示大于或小于指定大小,单位可以是c(字节)、w(字数)、b(块数)、k(KB)、M(MB)或 G(GB)。

  • -mtime days:按修改时间查找,支持使用 + 或 - 表示在指定天数前或后,days 是一个整数表示天数。

  • -user username:按文件所有者查找。

  • -group groupname:按文件所属组查找。

时间参数

  • -amin n:查找在 n 分钟内被访问过的文件。

  • -atime n:查找在 n*24 小时内被访问过的文件。

  • -cmin n:查找在 n 分钟内状态发生变化的文件(例如权限)。

  • -ctime n:查找在 n*24 小时内状态发生变化的文件(例如权限)。

  • -mmin n:查找在 n 分钟内被修改过的文件。

  • -mtime n:查找在 n*24 小时内被修改过的文件。

  • +n:查找比 n 天前更早的文件或目录。

  • -n:查找在 n 天内更改过属性的文件或目录。

  • n:查找在 n 天前(指定那一天)更改过属性的文件或目录。

找并执行操作

find /path/to/search -name "pattern" -exec rm {}\;

-exec 选项允许你执行一个命令,{} 将会被匹配到的文件名替代,\; 表示命令结束。

八、Linux 查看文件内容

1、cat命令

参数

- -n:显示行号,会在输出的每一行前加上行号。
- -b:显示行号,但只对非空行进行编号。
- -s:压缩连续的空行,只显示一个空行。
- -E:在每一行的末尾显示 $ 符号。
- -T:将 Tab 字符显示为 ^I。
- -v:显示一些非打印字符。

2、more和less命令

3、head 和 tail 命令

 九、Linux 检索文件内容

1、wc命令:用于统计文件内容中包含的行数、单词数、字节数等信息,使用文件名作为参数,可以同时统计多个文件。

选项

-  -l:统计文件内容中的行数。
-  -w:统计文件内容中的单词个数(以空格或制表位作为分隔)。
-  -c:统计文件内容中的字节数。

2、grep 命令:用于在文件中查找并显示包含指定字符串的行,可以直接指定关键字符串作为查找条件,也可以使用复杂的条件表达式

 十、Linux备份与恢复文档

gzip压缩文件gzip [选项] 要压缩的文件
bzip压缩文件
tar对目录和文件进行归档tar [选项] 归档及压缩文件名 需要归档的目录或者源文件
解压并恢复归档压缩包文件tar [选项] ...归档及压缩文件名 [-C目标目录]
排除目录中的某些文件,然后进行压缩tar --exclude=目录名/*或者文件名 -zcvf备份文件名.tgz 目录名

十一、Linux vim文本编辑器的使用

基本上 vi/vim 共分为三种模式
命令模式(Command Mode)、
输入模式(Insert Mode)
命令行模式(Command-Line Mode)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值