Linux常用命令学习指南: 基础教程与实战应用

Linux常用命令学习指南:基础教程与实战应用
一、Linux系统概述
(一)Linux的起源与发展
Linux的起源可以追溯到1991年,当时芬兰赫尔辛基大学的学生林纳斯·托瓦兹(Linus Torvalds)为了替代Minix操作系统,开发了一个简单的类Unix内核,并将其命名为Linux。他将这个内核发布到互联网上,吸引了众多开发者的关注和参与。随着越来越多的开发者加入到Linux的开发中,Linux逐渐发展成为一个功能强大、稳定可靠的操作系统。 1992年,Linux与GNU计划结合,采用了GPL(通用公共许可证)协议,使得Linux成为一个自由、开源的操作系统。此后,Linux在服务器领域、嵌入式系统、超级计算机等领域得到了广泛的应用。如今,Linux已经成为全球最流行的操作系统之一,拥有众多的发行版,如Ubuntu、Debian、Red Hat、CentOS等。
(二)Linux的特点与优势
1.开源免费:Linux是开源软件,其源代码可以自由获取和修改,用户可以根据自己的需求进行定制。同时,大多数Linux发行版都是免费的,用户无需支付高昂的授权费用。
2.高度可定制:Linux系统可以根据用户的需求进行高度定制,用户可以选择自己喜欢的桌面环境、安装需要的软件包,甚至可以对内核进行定制。
3.多用户多任务:Linux是一个多用户多任务的操作系统,多个用户可以同时登录系统,执行不同的任务,互不干扰。
4.稳定性强:Linux系统具有高度的稳定性,能够长时间运行而不出现故障。许多服务器和超级计算机都采用Linux作为操作系统。
5.安全性高:Linux系统的安全性较高,其设计理念注重安全,提供了丰富的安全机制,如用户权限管理、防火墙、SELinux等。
6.强大的命令行工具:Linux提供了丰富的命令行工具,用户可以通过命令行完成各种任务,如文件管理、系统配置、网络管理等。命令行工具的灵活性和高效性是Linux的一大优势。
(三)Linux的应用领域
1.服务器领域:Linux在服务器领域占据主导地位,全球大部分网站和企业服务器都运行在Linux系统上。常见的Linux服务器应用包括Web服务器(如Apache、Nginx)、数据库服务器(如MySQL、PostgreSQL)、邮件服务器(如Sendmail、Postfix)等。
2.嵌入式系统:Linux在嵌入式系统中也有广泛的应用,如智能手机、平板电脑、智能电视、智能家居设备等。Android操作系统就是基于Linux内核开发的。
3.超级计算机:世界上大部分超级计算机都运行在Linux系统上,Linux的高性能和稳定性使其成为超级计算机的首选操作系统。
4.开发环境:Linux是软件开发人员的首选平台,许多开发工具和编程语言都原生支持Linux系统。开发人员可以在Linux系统上进行软件开发、测试和调试。
5.教育领域:Linux作为开源软件,具有良好的教育价值。许多学校和培训机构将Linux作为计算机课程的教学内容,培养学生的计算机技能和开源精神。
二、Linux命令行基础
(一)命令行界面(CLI)与图形界面(GUI)
Linux系统提供了两种用户界面:命令行界面(Command Line Interface, CLI)和图形界面(Graphical User Interface, GUI)。
1.命令行界面(CLI):命令行界面是通过键盘输入命令来操作计算机的界面。在命令行界面中,用户可以通过输入各种命令来完成文件管理、系统配置、网络管理等任务。命令行界面的优点是高效、灵活,可以精确控制计算机的各种功能;缺点是学习曲线较陡,需要记忆大量的命令和参数。
2.图形界面(GUI):图形界面是通过鼠标点击和拖动等操作来控制计算机的界面。在图形界面中,用户可以通过图标、菜单、窗口等元素来完成各种任务。图形界面的优点是直观、易用,不需要记忆大量的命令;缺点是效率较低,对于一些复杂的任务,操作起来可能不如命令行界面方便。 对于Linux系统的初学者来说,建议先学习命令行界面的基本操作,因为命令行界面是Linux系统的核心,许多高级操作和系统管理任务都需要通过命令行来完成。掌握了命令行界面的基本操作后,再学习图形界面的使用会更加容易。
(二)终端与shell
1.终端(Terminal):终端是用户与计算机进行交互的界面,它提供了一个文本输入输出环境,用户可以在终端中输入命令,并查看命令的执行结果。在Linux系统中,常见的终端程序有GNOME Terminal、Konsole、XTerm等。
2.shell:shell是一个命令解释器,它负责接收用户在终端中输入的命令,并将其解释为计算机可以执行的指令。在Linux系统中,常见的shell有Bash(Bourne Again SHell)、Zsh、Ksh、Csh等。其中,Bash是Linux系统默认的shell,它兼容Bourne shell的语法,并提供了许多增强功能。 用户可以通过以下命令查看当前使用的shell: bash echo S H E L L (三)基本命令格式 L i n u x 命令的基本格式如下: b a s h c o m m a n d [ o p t i o n s ] [ a r g u m e n t s ] 其中: c o m m a n d :是要执行的命令名称,如 l s 、 c d 、 m k d i r 等。 [ o p t i o n s ] :是命令的选项,用于指定命令的执行方式。选项通常以短横线( − )或双短横线( − − )开头,例如 − l 、 − − h e l p 等。有些选项可以省略参数,有些选项需要指定参数。 [ a r g u m e n t s ] :是命令的参数,用于指定命令的操作对象。例如, l s 命令的参数可以是文件名或目录名。选项和参数都是可选的,有些命令可能不需要选项和参数,有些命令可能需要多个选项和参数。例如: b a s h l s − l / h o m e / u s e r 这个命令中, l s 是命令名称, − l 是选项,用于显示详细信息, / h o m e / u s e r 是参数,指定要显示的目录。(四)获取命令帮助在 L i n u x 系统中,有多种方式可以获取命令的帮助信息: 1. 使用 − − h e l p 选项:大多数命令都支持 − − h e l p 选项,使用该选项可以显示命令的简要帮助信息。例如: b a s h l s − − h e l p 2. 使用 m a n 命令: m a n ( m a n u a l )命令是 L i n u x 系统中最常用的获取帮助信息的工具,它可以显示命令的详细手册页。例如: b a s h m a n l s 使用 m a n 命令查看帮助信息时,可以使用以下快捷键进行导航:空格键:向下翻一页 b :向上翻一页 q :退出帮助 3. 使用 i n f o 命令: i n f o 命令是 G N U 项目提供的帮助系统,它提供了比 m a n 命令更详细的帮助信息。例如: b a s h i n f o l s 4. 使用 w h a t i s 命令: w h a t i s 命令可以显示命令的简短描述。例如: b a s h w h a t i s l s 5. 使用 a p r o p o s 命令: a p r o p o s 命令可以根据关键字搜索相关的命令和帮助信息。例如: b a s h a p r o p o s f i l e 三、文件与目录管理命令(一)目录导航命令 1. p w d 命令:显示当前工作目录的路径。 b a s h p w d 2. c d 命令:切换当前工作目录。 b a s h 切换到指定目录 c d / h o m e / u s e r / D o c u m e n t s 切换到用户主目录 c d  切换到上一级目录 c d . . 切换到前一个工作目录 c d 3. l s 命令:列出目录内容。 b a s h 列出当前目录下的文件和目录 l s 列出指定目录下的文件和目录 l s / h o m e / u s e r 以长格式显示详细信息 l s − l 显示所有文件(包括隐藏文件) l s − a 递归显示子目录内容 l s − R 按文件大小排序(从大到小) l s − l S 按修改时间排序(最新的文件在前) l s − l t (二)文件与目录操作命令 1. m k d i r 命令:创建目录。 b a s h 创建单个目录 m k d i r n e w d i r e c t o r y 创建多级目录 m k d i r − p p a r e n t d i r e c t o r y / c h i l d d i r e c t o r y 2. r m d i r 命令:删除空目录。 b a s h r m d i r e m p t y d i r e c t o r y 3. r m 命令:删除文件或目录。 b a s h 删除文件 r m f i l e . t x t 强制删除文件(不提示确认) r m − f f i l e . t x t 递归删除目录及其内容 r m − r d i r e c t o r y 强制递归删除目录及其内容 r m − r f d i r e c t o r y 4. t o u c h 命令:创建空文件或更新文件时间戳。 b a s h 创建空文件 t o u c h n e w f i l e . t x t 更新文件的访问和修改时间 t o u c h e x i s t i n g f i l e . t x t 5. c p 命令:复制文件或目录。 b a s h 复制文件 c p s o u r c e . t x t d e s t i n a t i o n . t x t 复制目录及其内容 c p − r s o u r c e d i r e c t o r y d e s t i n a t i o n d i r e c t o r y 强制覆盖已存在的目标文件 c p − f s o u r c e . t x t d e s t i n a t i o n . t x t 6. m v 命令:移动文件或目录,也可用于重命名文件或目录。 b a s h 移动文件 m v f i l e . t x t / h o m e / u s e r / D o c u m e n t s 重命名文件 m v o l d n a m e . t x t n e w n a m e . t x t 移动目录 m v d i r e c t o r y / n e w l o c a t i o n (三)文件查看与编辑命令 1. c a t 命令:查看文件内容。 b a s h 查看文件内容 c a t f i l e . t x t 显示行号 c a t − n f i l e . t x t 2. m o r e 命令:分页查看文件内容。 b a s h m o r e l a r g e f i l e . t x t 在 m o r e 命令的查看界面中,可以使用以下快捷键:空格键:向下翻一页 E n t e r :向下翻一行 q :退出查看 3. l e s s 命令:分页查看文件内容,比 m o r e 命令功能更强大。 b a s h l e s s l a r g e f i l e . t x t 在 l e s s 命令的查看界面中,可以使用以下快捷键:空格键:向下翻一页 b :向上翻一页 j :向下移动一行 k :向上移动一行 / p a t t e r n :向前搜索指定模式 ? p a t t e r n :向后搜索指定模式 n :重复上一次搜索 N :反向重复上一次搜索 q :退出查看 4. h e a d 命令:查看文件的前几行。 b a s h 查看文件的前 10 行 h e a d f i l e . t x t 查看文件的前 5 行 h e a d − n 5 f i l e . t x t 5. t a i l 命令:查看文件的后几行。 b a s h 查看文件的后 10 行 t a i l f i l e . t x t 查看文件的后 5 行 t a i l − n 5 f i l e . t x t 实时监控文件追加的内容(常用于日志文件) t a i l − f l o g . t x t 6. n a n o 命令:简单的文本编辑器。 b a s h n a n o f i l e . t x t 在 n a n o 编辑器中,可以使用以下快捷键: C t r l + O :保存文件 C t r l + X :退出编辑器 C t r l + W :搜索文本 C t r l + K :剪切当前行 C t r l + U :粘贴已剪切的内容 7. v i m 命令:功能强大的文本编辑器。 b a s h v i m f i l e . t x t v i m 编辑器有三种模式:命令模式、插入模式和底行模式。命令模式:默认模式,可以使用各种命令进行导航、复制、粘贴等操作。插入模式:可以输入和编辑文本。进入插入模式的常用命令有: i (在当前光标前插入)、 a (在当前光标后插入)、 o (在当前行下一行插入新行)。底行模式:可以执行保存、退出等命令。进入底行模式的命令是 : 。在命令模式下,可以使用以下常用命令: h 、 j 、 k 、 l :分别向左、下、上、右移动光标 g g :移动到文件开头 G :移动到文件末尾 y y :复制当前行 p :粘贴复制的内容 d d :删除当前行 / p a t t e r n :向前搜索指定模式 ? p a t t e r n :向后搜索指定模式 n :重复上一次搜索 N :反向重复上一次搜索在底行模式下,可以使用以下常用命令: : w :保存文件 : q :退出编辑器 : w q :保存并退出 : q ! :不保存强制退出四、文件搜索与查找命令(一) g r e p 命令 g r e p ( G l o b a l R e g u l a r E x p r e s s i o n P r i n t )命令用于在文件中搜索指定的文本模式,并将匹配的行打印出来。 b a s h 在文件中搜索包含指定字符串的行 g r e p " p a t t e r n " f i l e . t x t 递归搜索目录中的所有文件 g r e p − r " p a t t e r n " d i r e c t o r y / 忽略大小写进行搜索 g r e p − i " p a t t e r n " f i l e . t x t 显示匹配行的行号 g r e p − n " p a t t e r n " f i l e . t x t 只显示匹配的文本,而不是整行 g r e p − o " p a t t e r n " f i l e . t x t 显示不匹配的行(取反) g r e p − v " p a t t e r n " f i l e . t x t 搜索多个文件 g r e p " p a t t e r n " f i l e 1. t x t f i l e 2. t x t 使用正则表达式进行搜索 g r e p − E " [ 0 − 9 ] + " f i l e . t x t (二) f i n d 命令 f i n d 命令用于在文件系统中搜索文件和目录。 b a s h 在当前目录及其子目录中搜索指定名称的文件 f i n d . − n a m e " f i l e n a m e . t x t " 搜索指定目录中的文件 f i n d / h o m e / u s e r − n a m e " ∗ . p d f " 忽略大小写进行搜索 f i n d . − i n a m e " f i l e n a m e . t x t " 按文件类型搜索( d 表示目录, f 表示文件) f i n d . − t y p e d − n a m e " d i r e c t o r y " f i n d . − t y p e f − n a m e " ∗ . t x t " 按文件大小搜索( + 表示大于, − 表示小于) f i n d . − s i z e + 10 M 大于 10 M B 的文件 f i n d . − s i z e − 100 k 小于 100 K B 的文件按修改时间搜索( − m t i m e 表示按天, − m m i n 表示按分钟) f i n d . − m t i m e − 7 最近 7 天内修改的文件 f i n d . − m m i n + 60 超过 1 小时前修改的文件按权限搜索 f i n d . − p e r m 755 权限为 755 的文件或目录删除搜索到的文件 f i n d . − n a m e " t e m p ∗ . t x t " − d e l e t e 对搜索到的文件执行其他命令 f i n d . − n a m e " ∗ . t x t " − e x e c c a t    (三) l o c a t e 命令 l o c a t e 命令用于快速查找文件,它通过搜索系统预建的文件索引数据库来查找文件,因此比 f i n d 命令更快。但索引数据库不是实时更新的,需要定期使用 u p d a t e d b 命令更新。 b a s h 查找包含指定字符串的文件 l o c a t e f i l e n a m e 查找指定扩展名的文件 l o c a t e ∗ . p d f 更新索引数据库 s u d o u p d a t e d b (四) w h i c h 命令 w h i c h 命令用于查找可执行文件的位置。 b a s h w h i c h l s w h i c h p y t h o n 3 (五) w h e r e i s 命令 w h e r e i s 命令用于查找文件的二进制文件、源代码和帮助文档的位置。 b a s h w h e r e i s g c c 五、文件权限与用户管理命令(一)文件权限概述在 L i n u x 系统中,每个文件和目录都有三组权限:所有者( u s e r )、所属组( g r o u p )和其他用户( o t h e r s )。每组权限包括读( r )、写( w )和执行( x )三种权限。读权限( r ):允许查看文件内容或列出目录内容。写权限( w ):允许修改文件内容或在目录中创建、删除文件。执行权限( x ):允许执行文件或进入目录。文件权限可以用数字表示: r : 4 w : 2 x : 1 − : 0 例如,权限 r w x r − x r − − 可以表示为 754 。(二) c h m o d 命令 c h m o d 命令用于修改文件或目录的权限。 b a s h 使用数字方式修改权限 c h m o d 755 f i l e . t x t 所有者具有 r w x 权限,所属组和其他用户具有 r x 权限 c h m o d 644 d i r e c t o r y 所有者具有 r w 权限,所属组和其他用户具有 r 权限使用符号方式修改权限 c h m o d u + x f i l e . t x t 给所有者添加执行权限 c h m o d g − w f i l e . t x t 移除所属组的写权限 c h m o d o + r f i l e . t x t 给其他用户添加读权限 c h m o d a + x f i l e . t x t 给所有用户添加执行权限 c h m o d u = r w x , g = r x , o = r f i l e . t x t 设置具体的权限(三) c h o w n 命令 c h o w n 命令用于修改文件或目录的所有者和所属组。 b a s h 修改文件的所有者 c h o w n n e w o w n e r f i l e . t x t 修改文件的所有者和所属组 c h o w n n e w o w n e r : n e w g r o u p f i l e . t x t 递归修改目录及其内容的所有者 c h o w n − R n e w o w n e r d i r e c t o r y / 只修改所属组 c h g r p n e w g r o u p f i l e . t x t (四)用户与组管理命令 1. u s e r a d d 命令:创建新用户。 b a s h s u d o u s e r a d d n e w u s e r 2. p a s s w d 命令:设置或修改用户密码。 b a s h s u d o p a s s w d n e w u s e r 3. u s e r d e l 命令:删除用户。 b a s h s u d o u s e r d e l n e w u s e r 4. g r o u p a d d 命令:创建新组。 b a s h s u d o g r o u p a d d n e w g r o u p 5. g r o u p d e l 命令:删除组。 b a s h s u d o g r o u p d e l n e w g r o u p 6. u s e r m o d 命令:修改用户属性。 b a s h 将用户添加到一个或多个组 s u d o u s e r m o d − a G g r o u p 1 , g r o u p 2 u s e r 7. i d 命令:显示用户的身份信息。 b a s h i d u s e r 8. w h o a m i 命令:显示当前用户的用户名。 b a s h w h o a m i 9. s u 命令:切换用户。 b a s h 切换到 r o o t 用户 s u 切换到其他用户 s u o t h e r u s e r 10. s u d o 命令:以超级用户权限执行命令。 b a s h s u d o a p t u p d a t e 五、系统信息与监控命令(一)系统信息查看命令 1. u n a m e 命令:显示系统信息。 b a s h 显示内核名称 u n a m e 显示详细的系统信息 u n a m e − a 2. h o s t n a m e 命令:显示或设置主机名。 b a s h 显示主机名 h o s t n a m e 设置主机名(需要 r o o t 权限) s u d o h o s t n a m e n e w h o s t n a m e 3. d a t e 命令:显示或设置系统日期和时间。 b a s h 显示当前日期和时间 d a t e 设置系统日期和时间(需要 r o o t 权限) s u d o d a t e − s " 2023 − 01 − 0112 : 00 : 00 " 4. u p t i m e 命令:显示系统运行时间和负载信息。 b a s h u p t i m e 5. d f 命令:显示磁盘空间使用情况。 b a s h 以人类可读的格式显示 d f − h 只显示文件系统类型 d f − T 6. d u 命令:显示目录或文件的磁盘使用情况。 b a s h 显示当前目录下每个子目录的大小 d u − s h ∗ 递归显示目录及其子目录的大小 d u − h d i r e c t o r y / 7. f r e e 命令:显示内存使用情况。 b a s h 以人类可读的格式显示 f r e e − h 8. c a t / p r o c / c p u i n f o 命令:显示 C P U 信息。 b a s h c a t / p r o c / c p u i n f o 9. c a t / p r o c / m e m i n f o 命令:显示内存详细信息。 b a s h c a t / p r o c / m e m i n f o (二)进程管理命令 1. p s 命令:显示当前进程的状态。 b a s h 显示当前用户的进程 p s 显示所有进程 p s a u x 显示树形结构的进程关系 p s − e f − − f o r e s t 2. t o p 命令:实时监控系统进程和资源使用情况。 b a s h t o p 在 t o p 命令的界面中,可以使用以下快捷键: q :退出 h :显示帮助信息 M :按内存使用排序 P :按 C P U 使用排序 1 :显示所有 C P U 核心的使用情况 3. h t o p 命令:功能更强大的实时进程监控工具(需要先安装)。 b a s h h t o p 4. p k i l l 命令:根据进程名终止进程。 b a s h p k i l l p r o c e s s n a m e 5. k i l l 命令:根据进程 I D 终止进程。 b a s h 终止指定进程 k i l l P I D 强制终止进程 k i l l − 9 P I D 6. n i c e 命令:以指定优先级运行程序。 b a s h n i c e − n 10 p r o g r a m 7. r e n i c e 命令:修改已运行进程的优先级。 b a s h r e n i c e − n 10 P I D (三)网络信息与监控命令 1. i f c o n f i g 命令:显示或配置网络接口信息。 b a s h 显示所有网络接口信息 i f c o n f i g 显示指定网络接口信息 i f c o n f i g e t h 02. i p 命令:显示或配置网络接口信息( i f c o n f i g 的替代命令)。 b a s h 显示所有网络接口信息 i p a d d r 显示网络路由表 i p r o u t e 3. p i n g 命令:测试网络连接。 b a s h p i n g g o o g l e . c o m 4. t r a c e r o u t e 命令:跟踪数据包的路由路径。 b a s h t r a c e r o u t e g o o g l e . c o m 5. n e t s t a t 命令:显示网络连接、路由表和网络接口信息。 b a s h 显示所有网络连接 n e t s t a t − a 显示活动的 T C P 连接 n e t s t a t − t 显示监听的端口 n e t s t a t − l 显示 U D P 连接 n e t s t a t − u 显示进程 I D 和名称 n e t s t a t − p 持续显示网络连接信息 n e t s t a t − c 6. s s 命令:显示网络套接字信息( n e t s t a t 的替代命令)。 b a s h 显示所有网络连接 s s − a 显示监听的套接字 s s − l 显示 T C P 连接 s s − t 显示 U D P 连接 s s − u 7. c u r l 命令:发送 H T T P 请求,获取网页内容或传输文件。 b a s h 获取网页内容 c u r l h t t p s : / / w w w . e x a m p l e . c o m 下载文件 c u r l − O h t t p s : / / w w w . e x a m p l e . c o m / f i l e . z i p 显示详细的请求信息 c u r l − v h t t p s : / / w w w . e x a m p l e . c o m 8. w g e t 命令:下载文件。 b a s h 下载文件 w g e t h t t p s : / / w w w . e x a m p l e . c o m / f i l e . z i p 断点续传 w g e t − c h t t p s : / / w w w . e x a m p l e . c o m / l a r g e f i l e . z i p 六、软件包管理命令(一) D e b i a n / U b u n t u 系统的软件包管理 1. a p t 命令:高级包工具,用于管理 D e b i a n 和 U b u n t u 系统的软件包。 b a s h 更新可用软件包列表 s u d o a p t u p d a t e 升级已安装的软件包 s u d o a p t u p g r a d e 安装软件包 s u d o a p t i n s t a l l p a c k a g e n a m e 移除软件包 s u d o a p t r e m o v e p a c k a g e n a m e 完全移除软件包(包括配置文件) s u d o a p t p u r g e p a c k a g e n a m e 自动移除不再需要的依赖包 s u d o a p t a u t o r e m o v e 清理 A P T 缓存 s u d o a p t c l e a n 搜索软件包 a p t s e a r c h p a c k a g e n a m e 显示软件包信息 a p t s h o w p a c k a g e n a m e 2. d p k g 命令:直接管理 . d e b 格式的软件包。 b a s h 安装 . d e b 软件包 s u d o d p k g − i p a c k a g e . d e b 卸载软件包 s u d o d p k g − r p a c k a g e n a m e 完全卸载软件包(包括配置文件) s u d o d p k g − P p a c k a g e n a m e 显示软件包信息 d p k g − l p a c k a g e n a m e 检查软件包是否已安装 d p k g − s p a c k a g e n a m e (二) R e d H a t / C e n t O S 系统的软件包管理 1. y u m 命令: Y e l l o w d o g U p d a t e r , M o d i f i e d ,用于管理 R e d H a t 和 C e n t O S 系统的软件包。 b a s h 更新可用软件包列表 s u d o y u m u p d a t e 安装软件包 s u d o y u m i n s t a l l p a c k a g e n a m e 移除软件包 s u d o y u m r e m o v e p a c k a g e n a m e 搜索软件包 y u m s e a r c h p a c k a g e n a m e 显示软件包信息 y u m i n f o p a c k a g e n a m e 列出已安装的软件包 y u m l i s t i n s t a l l e d 2. r p m 命令:直接管理 . r p m 格式的软件包。 b a s h 安装 . r p m 软件包 s u d o r p m − i p a c k a g e . r p m 升级软件包 s u d o r p m − U p a c k a g e . r p m 卸载软件包 s u d o r p m − e p a c k a g e n a m e 验证软件包 r p m − V p a c k a g e n a m e 列出软件包文件 r p m − q l p a c k a g e n a m e 七、实战应用案例(一)文件批量处理假设需要将当前目录下所有的 . j p g 文件重命名为以日期为前缀的形式,并将它们移动到一个名为 p h o t o s 的子目录中。可以使用以下命令实现: b a s h 创建 p h o t o s 目录 m k d i r p h o t o s 获取当前日期 d a t e = SHELL (三)基本命令格式 Linux命令的基本格式如下: bash command [options] [arguments] 其中: command:是要执行的命令名称,如ls、cd、mkdir等。 [options]:是命令的选项,用于指定命令的执行方式。 选项通常以短横线(-)或双短横线(--)开头,例如-l、--help等。有些选项可以省略参数,有些选项需要指定参数。 [arguments]:是命令的参数,用于指定命令的操作对象。例如,ls命令的参数可以是文件名或目录名。 选项和参数都是可选的,有些命令可能不需要选项和参数,有些命令可能需要多个选项和参数。例如: bash ls -l /home/user 这个命令中,ls是命令名称,-l是选项,用于显示详细信息,/home/user是参数,指定要显示的目录。 (四)获取命令帮助 在Linux系统中,有多种方式可以获取命令的帮助信息: 1.使用--help选项:大多数命令都支持--help选项,使用该选项可以显示命令的简要帮助信息。例如: bash ls --help 2.使用man命令:man(manual)命令是Linux系统中最常用的获取帮助信息的工具,它可以显示命令的详细手册页。例如: bash man ls 使用man命令查看帮助信息时,可以使用以下快捷键进行导航: 空格键:向下翻一页 b:向上翻一页 q:退出帮助 3.使用info命令:info命令是GNU项目提供的帮助系统,它提供了比man命令更详细的帮助信息。例如: bash info ls 4.使用whatis命令:whatis命令可以显示命令的简短描述。例如: bash whatis ls 5.使用apropos命令:apropos命令可以根据关键字搜索相关的命令和帮助信息。例如: bash apropos file 三、文件与目录管理命令 (一)目录导航命令 1. pwd命令:显示当前工作目录的路径。 bash pwd 2. cd命令:切换当前工作目录。 bash 切换到指定目录 cd /home/user/Documents 切换到用户主目录 cd ~ 切换到上一级目录 cd .. 切换到前一个工作目录 cd 3. ls命令:列出目录内容。 bash 列出当前目录下的文件和目录 ls 列出指定目录下的文件和目录 ls /home/user 以长格式显示详细信息 ls -l 显示所有文件(包括隐藏文件) ls -a 递归显示子目录内容 ls -R 按文件大小排序(从大到小) ls -lS 按修改时间排序(最新的文件在前) ls -lt (二)文件与目录操作命令 1. mkdir命令:创建目录。 bash 创建单个目录 mkdir new_directory 创建多级目录 mkdir -p parent_directory/child_directory 2. rmdir命令:删除空目录。 bash rmdir empty_directory 3. rm命令:删除文件或目录。 bash 删除文件 rm file.txt 强制删除文件(不提示确认) rm -f file.txt 递归删除目录及其内容 rm -r directory 强制递归删除目录及其内容 rm -rf directory 4. touch命令:创建空文件或更新文件时间戳。 bash 创建空文件 touch new_file.txt 更新文件的访问和修改时间 touch existing_file.txt 5. cp命令:复制文件或目录。 bash 复制文件 cp source.txt destination.txt 复制目录及其内容 cp -r source_directory destination_directory 强制覆盖已存在的目标文件 cp -f source.txt destination.txt 6. mv命令:移动文件或目录,也可用于重命名文件或目录。 bash 移动文件 mv file.txt /home/user/Documents 重命名文件 mv old_name.txt new_name.txt 移动目录 mv directory /new_location (三)文件查看与编辑命令 1. cat命令:查看文件内容。 bash 查看文件内容 cat file.txt 显示行号 cat -n file.txt 2. more命令:分页查看文件内容。 bash more large_file.txt 在more命令的查看界面中,可以使用以下快捷键: 空格键:向下翻一页 Enter:向下翻一行 q:退出查看 3. less命令:分页查看文件内容,比more命令功能更强大。 bash less large_file.txt 在less命令的查看界面中,可以使用以下快捷键: 空格键:向下翻一页 b:向上翻一页 j:向下移动一行 k:向上移动一行 /pattern:向前搜索指定模式 ?pattern:向后搜索指定模式 n:重复上一次搜索 N:反向重复上一次搜索 q:退出查看 4. head命令:查看文件的前几行。 bash 查看文件的前10行 head file.txt 查看文件的前5行 head -n 5 file.txt 5. tail命令:查看文件的后几行。 bash 查看文件的后10行 tail file.txt 查看文件的后5行 tail -n 5 file.txt 实时监控文件追加的内容(常用于日志文件) tail -f log.txt 6. nano命令:简单的文本编辑器。 bash nano file.txt 在nano编辑器中,可以使用以下快捷键: Ctrl+O:保存文件 Ctrl+X:退出编辑器 Ctrl+W:搜索文本 Ctrl+K:剪切当前行 Ctrl+U:粘贴已剪切的内容 7. vim命令:功能强大的文本编辑器。 bash vim file.txt vim编辑器有三种模式:命令模式、插入模式和底行模式。 命令模式:默认模式,可以使用各种命令进行导航、复制、粘贴等操作。 插入模式:可以输入和编辑文本。进入插入模式的常用命令有:i(在当前光标前插入)、a(在当前光标后插入)、o(在当前行下一行插入新行)。 底行模式:可以执行保存、退出等命令。进入底行模式的命令是:。 在命令模式下,可以使用以下常用命令: h、j、k、l:分别向左、下、上、右移动光标 gg:移动到文件开头 G:移动到文件末尾 yy:复制当前行 p:粘贴复制的内容 dd:删除当前行 /pattern:向前搜索指定模式 ?pattern:向后搜索指定模式 n:重复上一次搜索 N:反向重复上一次搜索 在底行模式下,可以使用以下常用命令: :w:保存文件 :q:退出编辑器 :wq:保存并退出 :q!:不保存强制退出 四、文件搜索与查找命令 (一)grep命令 grep(Global Regular Expression Print)命令用于在文件中搜索指定的文本模式,并将匹配的行打印出来。 bash 在文件中搜索包含指定字符串的行 grep "pattern" file.txt 递归搜索目录中的所有文件 grep -r "pattern" directory/ 忽略大小写进行搜索 grep -i "pattern" file.txt 显示匹配行的行号 grep -n "pattern" file.txt 只显示匹配的文本,而不是整行 grep -o "pattern" file.txt 显示不匹配的行(取反) grep -v "pattern" file.txt 搜索多个文件 grep "pattern" file1.txt file2.txt 使用正则表达式进行搜索 grep -E "[0-9]+" file.txt (二)find命令 find命令用于在文件系统中搜索文件和目录。 bash 在当前目录及其子目录中搜索指定名称的文件 find . -name "filename.txt" 搜索指定目录中的文件 find /home/user -name "*.pdf" 忽略大小写进行搜索 find . -iname "filename.txt" 按文件类型搜索(d表示目录,f表示文件) find . -type d -name "directory" find . -type f -name "*.txt" 按文件大小搜索(+表示大于,-表示小于) find . -size +10M 大于10MB的文件 find . -size -100k 小于100KB的文件 按修改时间搜索(-mtime表示按天,-mmin表示按分钟) find . -mtime -7 最近7天内修改的文件 find . -mmin +60 超过1小时前修改的文件 按权限搜索 find . -perm 755 权限为755的文件或目录 删除搜索到的文件 find . -name "temp*.txt" -delete 对搜索到的文件执行其他命令 find . -name "*.txt" -exec cat {} \; (三)locate命令 locate命令用于快速查找文件,它通过搜索系统预建的文件索引数据库来查找文件,因此比find命令更快。但索引数据库不是实时更新的,需要定期使用updatedb命令更新。 bash 查找包含指定字符串的文件 locate filename 查找指定扩展名的文件 locate *.pdf 更新索引数据库 sudo updatedb (四)which命令 which命令用于查找可执行文件的位置。 bash which ls which python3 (五)whereis命令 whereis命令用于查找文件的二进制文件、源代码和帮助文档的位置。 bash whereis gcc 五、文件权限与用户管理命令 (一)文件权限概述 在Linux系统中,每个文件和目录都有三组权限:所有者(user)、所属组(group)和其他用户(others)。每组权限包括读(r)、写(w)和执行(x)三种权限。 读权限(r):允许查看文件内容或列出目录内容。 写权限(w):允许修改文件内容或在目录中创建、删除文件。 执行权限(x):允许执行文件或进入目录。 文件权限可以用数字表示: r:4 w:2 x:1 -:0 例如,权限rwxr-xr--可以表示为754。 (二)chmod命令 chmod命令用于修改文件或目录的权限。 bash 使用数字方式修改权限 chmod 755 file.txt 所有者具有rwx权限,所属组和其他用户具有rx权限 chmod 644 directory 所有者具有rw权限,所属组和其他用户具有r权限 使用符号方式修改权限 chmod u+x file.txt 给所有者添加执行权限 chmod g-w file.txt 移除所属组的写权限 chmod o+r file.txt 给其他用户添加读权限 chmod a+x file.txt 给所有用户添加执行权限 chmod u=rwx,g=rx,o=r file.txt 设置具体的权限 (三)chown命令 chown命令用于修改文件或目录的所有者和所属组。 bash 修改文件的所有者 chown new_owner file.txt 修改文件的所有者和所属组 chown new_owner:new_group file.txt 递归修改目录及其内容的所有者 chown -R new_owner directory/ 只修改所属组 chgrp new_group file.txt (四)用户与组管理命令 1. useradd命令:创建新用户。 bash sudo useradd new_user 2. passwd命令:设置或修改用户密码。 bash sudo passwd new_user 3. userdel命令:删除用户。 bash sudo userdel new_user 4. groupadd命令:创建新组。 bash sudo groupadd new_group 5. groupdel命令:删除组。 bash sudo groupdel new_group 6. usermod命令:修改用户属性。 bash 将用户添加到一个或多个组 sudo usermod -aG group1,group2 user 7. id命令:显示用户的身份信息。 bash id user 8. whoami命令:显示当前用户的用户名。 bash whoami 9. su命令:切换用户。 bash 切换到root用户 su 切换到其他用户 su other_user 10. sudo命令:以超级用户权限执行命令。 bash sudo apt update 五、系统信息与监控命令 ( 一)系统信息查看命令 1. uname命令:显示系统信息。 bash 显示内核名称 uname 显示详细的系统信息 uname -a 2. hostname命令:显示或设置主机名。 bash 显示主机名 hostname 设置主机名(需要root权限) sudo hostname new_hostname 3. date命令:显示或设置系统日期和时间。 bash 显示当前日期和时间 date 设置系统日期和时间(需要root权限) sudo date -s "2023-01-01 12:00:00" 4. uptime命令:显示系统运行时间和负载信息。 bash uptime 5. df命令:显示磁盘空间使用情况。 bash 以人类可读的格式显示 df -h 只显示文件系统类型 df -T 6. du命令:显示目录或文件的磁盘使用情况。 bash 显示当前目录下每个子目录的大小 du -sh * 递归显示目录及其子目录的大小 du -h directory/ 7. free命令:显示内存使用情况。 bash 以人类可读的格式显示 free -h 8. cat /proc/cpuinfo命令:显示CPU信息。 bash cat /proc/cpuinfo 9. cat /proc/meminfo命令:显示内存详细信息。 bash cat /proc/meminfo (二)进程管理命令 1. ps命令:显示当前进程的状态。 bash 显示当前用户的进程 ps 显示所有进程 ps aux 显示树形结构的进程关系 ps -ef --forest 2. top命令:实时监控系统进程和资源使用情况。 bash top 在top命令的界面中,可以使用以下快捷键: q:退出 h:显示帮助信息 M:按内存使用排序 P:按CPU使用排序 1:显示所有CPU核心的使用情况 3. htop命令:功能更强大的实时进程监控工具(需要先安装)。 bash htop 4. pkill命令:根据进程名终止进程。 bash pkill process_name 5. kill命令:根据进程ID终止进程。 bash 终止指定进程 kill PID 强制终止进程 kill -9 PID 6. nice命令:以指定优先级运行程序。 bash nice -n 10 program 7. renice命令:修改已运行进程的优先级。 bash renice -n 10 PID (三)网络信息与监控命令 1. ifconfig命令:显示或配置网络接口信息。 bash 显示所有网络接口信息 ifconfig 显示指定网络接口信息 ifconfig eth0 2. ip命令:显示或配置网络接口信息(ifconfig的替代命令)。 bash 显示所有网络接口信息 ip addr 显示网络路由表 ip route 3. ping命令:测试网络连接。 bash ping google.com 4. traceroute命令:跟踪数据包的路由路径。 bash traceroute google.com 5. netstat命令:显示网络连接、路由表和网络接口信息。 bash 显示所有网络连接 netstat -a 显示活动的TCP连接 netstat -t 显示监听的端口 netstat -l 显示UDP连接 netstat -u 显示进程ID和名称 netstat -p 持续显示网络连接信息 netstat -c 6. ss命令:显示网络套接字信息(netstat的替代命令)。 bash 显示所有网络连接 ss -a 显示监听的套接字 ss -l 显示TCP连接 ss -t 显示UDP连接 ss -u 7. curl命令:发送HTTP请求,获取网页内容或传输文件。 bash 获取网页内容 curl https://www.example.com 下载文件 curl -O https://www.example.com/file.zip 显示详细的请求信息 curl -v https://www.example.com 8. wget命令:下载文件。 bash 下载文件 wget https://www.example.com/file.zip 断点续传 wget -c https://www.example.com/large_file.zip 六、软件包管理命令 (一)Debian/Ubuntu系统的软件包管理 1. apt命令:高级包工具,用于管理Debian和Ubuntu系统的软件包。 bash 更新可用软件包列表 sudo apt update 升级已安装的软件包 sudo apt upgrade 安装软件包 sudo apt install package_name 移除软件包 sudo apt remove package_name 完全移除软件包(包括配置文件) sudo apt purge package_name 自动移除不再需要的依赖包 sudo apt autoremove 清理APT缓存 sudo apt clean 搜索软件包 apt search package_name 显示软件包信息 apt show package_name 2. dpkg命令:直接管理.deb格式的软件包。 bash 安装.deb软件包 sudo dpkg -i package.deb 卸载软件包 sudo dpkg -r package_name 完全卸载软件包(包括配置文件) sudo dpkg -P package_name 显示软件包信息 dpkg -l package_name 检查软件包是否已安装 dpkg -s package_name (二)Red Hat/CentOS系统的软件包管理 1. yum命令:Yellowdog Updater, Modified,用于管理Red Hat和CentOS系统的软件包。 bash 更新可用软件包列表 sudo yum update 安装软件包 sudo yum install package_name 移除软件包 sudo yum remove package_name 搜索软件包 yum search package_name 显示软件包信息 yum info package_name 列出已安装的软件包 yum list installed 2. rpm命令:直接管理.rpm格式的软件包。 bash 安装.rpm软件包 sudo rpm -i package.rpm 升级软件包 sudo rpm -U package.rpm 卸载软件包 sudo rpm -e package_name 验证软件包 rpm -V package_name 列出软件包文件 rpm -ql package_name 七、实战应用案例 (一)文件批量处理 假设需要将当前目录下所有的.jpg文件重命名为以日期为前缀的形式,并将它们移动到一个名为photos的子目录中。可以使用以下命令实现: bash 创建photos目录 mkdir photos 获取当前日期 date= SHELL(三)基本命令格式Linux命令的基本格式如下:bashcommand[options][arguments]其中:command:是要执行的命令名称,如lscdmkdir等。[options]:是命令的选项,用于指定命令的执行方式。选项通常以短横线()或双短横线()开头,例如lhelp等。有些选项可以省略参数,有些选项需要指定参数。[arguments]:是命令的参数,用于指定命令的操作对象。例如,ls命令的参数可以是文件名或目录名。选项和参数都是可选的,有些命令可能不需要选项和参数,有些命令可能需要多个选项和参数。例如:bashlsl/home/user这个命令中,ls是命令名称,l是选项,用于显示详细信息,/home/user是参数,指定要显示的目录。(四)获取命令帮助在Linux系统中,有多种方式可以获取命令的帮助信息:1.使用help选项:大多数命令都支持help选项,使用该选项可以显示命令的简要帮助信息。例如:bashlshelp2.使用man命令:manmanual)命令是Linux系统中最常用的获取帮助信息的工具,它可以显示命令的详细手册页。例如:bashmanls使用man命令查看帮助信息时,可以使用以下快捷键进行导航:空格键:向下翻一页b:向上翻一页q:退出帮助3.使用info命令:info命令是GNU项目提供的帮助系统,它提供了比man命令更详细的帮助信息。例如:bashinfols4.使用whatis命令:whatis命令可以显示命令的简短描述。例如:bashwhatisls5.使用apropos命令:apropos命令可以根据关键字搜索相关的命令和帮助信息。例如:bashaproposfile三、文件与目录管理命令(一)目录导航命令1.pwd命令:显示当前工作目录的路径。bashpwd2.cd命令:切换当前工作目录。bash切换到指定目录cd/home/user/Documents切换到用户主目录cd 切换到上一级目录cd..切换到前一个工作目录cd3.ls命令:列出目录内容。bash列出当前目录下的文件和目录ls列出指定目录下的文件和目录ls/home/user以长格式显示详细信息lsl显示所有文件(包括隐藏文件)lsa递归显示子目录内容lsR按文件大小排序(从大到小)lslS按修改时间排序(最新的文件在前)lslt(二)文件与目录操作命令1.mkdir命令:创建目录。bash创建单个目录mkdirnewdirectory创建多级目录mkdirpparentdirectory/childdirectory2.rmdir命令:删除空目录。bashrmdiremptydirectory3.rm命令:删除文件或目录。bash删除文件rmfile.txt强制删除文件(不提示确认)rmffile.txt递归删除目录及其内容rmrdirectory强制递归删除目录及其内容rmrfdirectory4.touch命令:创建空文件或更新文件时间戳。bash创建空文件touchnewfile.txt更新文件的访问和修改时间touchexistingfile.txt5.cp命令:复制文件或目录。bash复制文件cpsource.txtdestination.txt复制目录及其内容cprsourcedirectorydestinationdirectory强制覆盖已存在的目标文件cpfsource.txtdestination.txt6.mv命令:移动文件或目录,也可用于重命名文件或目录。bash移动文件mvfile.txt/home/user/Documents重命名文件mvoldname.txtnewname.txt移动目录mvdirectory/newlocation(三)文件查看与编辑命令1.cat命令:查看文件内容。bash查看文件内容catfile.txt显示行号catnfile.txt2.more命令:分页查看文件内容。bashmorelargefile.txtmore命令的查看界面中,可以使用以下快捷键:空格键:向下翻一页Enter:向下翻一行q:退出查看3.less命令:分页查看文件内容,比more命令功能更强大。bashlesslargefile.txtless命令的查看界面中,可以使用以下快捷键:空格键:向下翻一页b:向上翻一页j:向下移动一行k:向上移动一行/pattern:向前搜索指定模式?pattern:向后搜索指定模式n:重复上一次搜索N:反向重复上一次搜索q:退出查看4.head命令:查看文件的前几行。bash查看文件的前10headfile.txt查看文件的前5headn5file.txt5.tail命令:查看文件的后几行。bash查看文件的后10tailfile.txt查看文件的后5tailn5file.txt实时监控文件追加的内容(常用于日志文件)tailflog.txt6.nano命令:简单的文本编辑器。bashnanofile.txtnano编辑器中,可以使用以下快捷键:Ctrl+O:保存文件Ctrl+X:退出编辑器Ctrl+W:搜索文本Ctrl+K:剪切当前行Ctrl+U:粘贴已剪切的内容7.vim命令:功能强大的文本编辑器。bashvimfile.txtvim编辑器有三种模式:命令模式、插入模式和底行模式。命令模式:默认模式,可以使用各种命令进行导航、复制、粘贴等操作。插入模式:可以输入和编辑文本。进入插入模式的常用命令有:i(在当前光标前插入)、a(在当前光标后插入)、o(在当前行下一行插入新行)。底行模式:可以执行保存、退出等命令。进入底行模式的命令是:。在命令模式下,可以使用以下常用命令:hjkl:分别向左、下、上、右移动光标gg:移动到文件开头G:移动到文件末尾yy:复制当前行p:粘贴复制的内容dd:删除当前行/pattern:向前搜索指定模式?pattern:向后搜索指定模式n:重复上一次搜索N:反向重复上一次搜索在底行模式下,可以使用以下常用命令::w:保存文件:q:退出编辑器:wq:保存并退出:q!:不保存强制退出四、文件搜索与查找命令(一)grep命令grepGlobalRegularExpressionPrint)命令用于在文件中搜索指定的文本模式,并将匹配的行打印出来。bash在文件中搜索包含指定字符串的行grep"pattern"file.txt递归搜索目录中的所有文件grepr"pattern"directory/忽略大小写进行搜索grepi"pattern"file.txt显示匹配行的行号grepn"pattern"file.txt只显示匹配的文本,而不是整行grepo"pattern"file.txt显示不匹配的行(取反)grepv"pattern"file.txt搜索多个文件grep"pattern"file1.txtfile2.txt使用正则表达式进行搜索grepE"[09]+"file.txt(二)find命令find命令用于在文件系统中搜索文件和目录。bash在当前目录及其子目录中搜索指定名称的文件find.name"filename.txt"搜索指定目录中的文件find/home/username".pdf"忽略大小写进行搜索find.iname"filename.txt"按文件类型搜索(d表示目录,f表示文件)find.typedname"directory"find.typefname".txt"按文件大小搜索(+表示大于,表示小于)find.size+10M大于10MB的文件find.size100k小于100KB的文件按修改时间搜索(mtime表示按天,mmin表示按分钟)find.mtime7最近7天内修改的文件find.mmin+60超过1小时前修改的文件按权限搜索find.perm755权限为755的文件或目录删除搜索到的文件find.name"temp.txt"delete对搜索到的文件执行其他命令find.name".txt"execcat(三)locate命令locate命令用于快速查找文件,它通过搜索系统预建的文件索引数据库来查找文件,因此比find命令更快。但索引数据库不是实时更新的,需要定期使用updatedb命令更新。bash查找包含指定字符串的文件locatefilename查找指定扩展名的文件locate.pdf更新索引数据库sudoupdatedb(四)which命令which命令用于查找可执行文件的位置。bashwhichlswhichpython3(五)whereis命令whereis命令用于查找文件的二进制文件、源代码和帮助文档的位置。bashwhereisgcc五、文件权限与用户管理命令(一)文件权限概述在Linux系统中,每个文件和目录都有三组权限:所有者(user)、所属组(group)和其他用户(others)。每组权限包括读(r)、写(w)和执行(x)三种权限。读权限(r):允许查看文件内容或列出目录内容。写权限(w):允许修改文件内容或在目录中创建、删除文件。执行权限(x):允许执行文件或进入目录。文件权限可以用数字表示:r4w2x10例如,权限rwxrxr可以表示为754。(二)chmod命令chmod命令用于修改文件或目录的权限。bash使用数字方式修改权限chmod755file.txt所有者具有rwx权限,所属组和其他用户具有rx权限chmod644directory所有者具有rw权限,所属组和其他用户具有r权限使用符号方式修改权限chmodu+xfile.txt给所有者添加执行权限chmodgwfile.txt移除所属组的写权限chmodo+rfile.txt给其他用户添加读权限chmoda+xfile.txt给所有用户添加执行权限chmodu=rwx,g=rx,o=rfile.txt设置具体的权限(三)chown命令chown命令用于修改文件或目录的所有者和所属组。bash修改文件的所有者chownnewownerfile.txt修改文件的所有者和所属组chownnewowner:newgroupfile.txt递归修改目录及其内容的所有者chownRnewownerdirectory/只修改所属组chgrpnewgroupfile.txt(四)用户与组管理命令1.useradd命令:创建新用户。bashsudouseraddnewuser2.passwd命令:设置或修改用户密码。bashsudopasswdnewuser3.userdel命令:删除用户。bashsudouserdelnewuser4.groupadd命令:创建新组。bashsudogroupaddnewgroup5.groupdel命令:删除组。bashsudogroupdelnewgroup6.usermod命令:修改用户属性。bash将用户添加到一个或多个组sudousermodaGgroup1,group2user7.id命令:显示用户的身份信息。bashiduser8.whoami命令:显示当前用户的用户名。bashwhoami9.su命令:切换用户。bash切换到root用户su切换到其他用户suotheruser10.sudo命令:以超级用户权限执行命令。bashsudoaptupdate五、系统信息与监控命令(一)系统信息查看命令1.uname命令:显示系统信息。bash显示内核名称uname显示详细的系统信息unamea2.hostname命令:显示或设置主机名。bash显示主机名hostname设置主机名(需要root权限)sudohostnamenewhostname3.date命令:显示或设置系统日期和时间。bash显示当前日期和时间date设置系统日期和时间(需要root权限)sudodates"2023010112:00:00"4.uptime命令:显示系统运行时间和负载信息。bashuptime5.df命令:显示磁盘空间使用情况。bash以人类可读的格式显示dfh只显示文件系统类型dfT6.du命令:显示目录或文件的磁盘使用情况。bash显示当前目录下每个子目录的大小dush递归显示目录及其子目录的大小duhdirectory/7.free命令:显示内存使用情况。bash以人类可读的格式显示freeh8.cat/proc/cpuinfo命令:显示CPU信息。bashcat/proc/cpuinfo9.cat/proc/meminfo命令:显示内存详细信息。bashcat/proc/meminfo(二)进程管理命令1.ps命令:显示当前进程的状态。bash显示当前用户的进程ps显示所有进程psaux显示树形结构的进程关系psefforest2.top命令:实时监控系统进程和资源使用情况。bashtoptop命令的界面中,可以使用以下快捷键:q:退出h:显示帮助信息M:按内存使用排序P:按CPU使用排序1:显示所有CPU核心的使用情况3.htop命令:功能更强大的实时进程监控工具(需要先安装)。bashhtop4.pkill命令:根据进程名终止进程。bashpkillprocessname5.kill命令:根据进程ID终止进程。bash终止指定进程killPID强制终止进程kill9PID6.nice命令:以指定优先级运行程序。bashnicen10program7.renice命令:修改已运行进程的优先级。bashrenicen10PID(三)网络信息与监控命令1.ifconfig命令:显示或配置网络接口信息。bash显示所有网络接口信息ifconfig显示指定网络接口信息ifconfigeth02.ip命令:显示或配置网络接口信息(ifconfig的替代命令)。bash显示所有网络接口信息ipaddr显示网络路由表iproute3.ping命令:测试网络连接。bashpinggoogle.com4.traceroute命令:跟踪数据包的路由路径。bashtraceroutegoogle.com5.netstat命令:显示网络连接、路由表和网络接口信息。bash显示所有网络连接netstata显示活动的TCP连接netstatt显示监听的端口netstatl显示UDP连接netstatu显示进程ID和名称netstatp持续显示网络连接信息netstatc6.ss命令:显示网络套接字信息(netstat的替代命令)。bash显示所有网络连接ssa显示监听的套接字ssl显示TCP连接sst显示UDP连接ssu7.curl命令:发送HTTP请求,获取网页内容或传输文件。bash获取网页内容curlhttps://www.example.com下载文件curlOhttps://www.example.com/file.zip显示详细的请求信息curlvhttps://www.example.com8.wget命令:下载文件。bash下载文件wgethttps://www.example.com/file.zip断点续传wgetchttps://www.example.com/largefile.zip六、软件包管理命令(一)Debian/Ubuntu系统的软件包管理1.apt命令:高级包工具,用于管理DebianUbuntu系统的软件包。bash更新可用软件包列表sudoaptupdate升级已安装的软件包sudoaptupgrade安装软件包sudoaptinstallpackagename移除软件包sudoaptremovepackagename完全移除软件包(包括配置文件)sudoaptpurgepackagename自动移除不再需要的依赖包sudoaptautoremove清理APT缓存sudoaptclean搜索软件包aptsearchpackagename显示软件包信息aptshowpackagename2.dpkg命令:直接管理.deb格式的软件包。bash安装.deb软件包sudodpkgipackage.deb卸载软件包sudodpkgrpackagename完全卸载软件包(包括配置文件)sudodpkgPpackagename显示软件包信息dpkglpackagename检查软件包是否已安装dpkgspackagename(二)RedHat/CentOS系统的软件包管理1.yum命令:YellowdogUpdater,Modified,用于管理RedHatCentOS系统的软件包。bash更新可用软件包列表sudoyumupdate安装软件包sudoyuminstallpackagename移除软件包sudoyumremovepackagename搜索软件包yumsearchpackagename显示软件包信息yuminfopackagename列出已安装的软件包yumlistinstalled2.rpm命令:直接管理.rpm格式的软件包。bash安装.rpm软件包sudorpmipackage.rpm升级软件包sudorpmUpackage.rpm卸载软件包sudorpmepackagename验证软件包rpmVpackagename列出软件包文件rpmqlpackagename七、实战应用案例(一)文件批量处理假设需要将当前目录下所有的.jpg文件重命名为以日期为前缀的形式,并将它们移动到一个名为photos的子目录中。可以使用以下命令实现:bash创建photos目录mkdirphotos获取当前日期date=(date +%Y%m%d) 批量重命名并移动文件 for file in *.jpg; do new_name=“KaTeX parse error: Expected group after '_' at position 7: {date}_̲{file}” mv “ f i l e " " p h o t o s / file" "photos/ file""photos/new_name” echo “已将 $file 重命名为 n e w n a m e 并移动到 p h o t o s 目录 " d o n e (二)系统监控脚本编写一个简单的系统监控脚本,定期检查系统的 C P U 、内存和磁盘使用情况,并将结果保存到日志文件中。 b a s h ! / b i n / b a s h 系统监控脚本 L O G F I L E = " / v a r / l o g / s y s t e m m o n i t o r . l o g " I N T E R V A L = 300 检查间隔(秒) w h i l e t r u e ; d o 获取当前时间 t i m e s t a m p = new_name 并移动到 photos 目录" done (二)系统监控脚本 编写一个简单的系统监控脚本,定期检查系统的CPU、内存和磁盘使用情况,并将结果保存到日志文件中。 bash !/bin/bash 系统监控脚本 LOG_FILE="/var/log/system_monitor.log" INTERVAL=300 检查间隔(秒) while true; do 获取当前时间 timestamp= newname并移动到photos目录"done(二)系统监控脚本编写一个简单的系统监控脚本,定期检查系统的CPU、内存和磁盘使用情况,并将结果保存到日志文件中。bash!/bin/bash系统监控脚本LOGFILE="/var/log/systemmonitor.log"INTERVAL=300检查间隔(秒)whiletrue;do获取当前时间timestamp=(date +”%Y-%m-%d %H:%M:%S") 获取系统信息 cpu_usage=$(top -bn1 | grep “Cpu(s)” | awk '{print $2 + KaTeX parse error: Expected 'EOF', got '}' at position 2: 4}̲') mem_usage=(free | grep Mem | awk '{print $3/KaTeX parse error: Expected 'EOF', got '}' at position 10: 2 * 100.0}̲') disk_usage=(df -h / | awk 'NR==2 {print KaTeX parse error: Expected 'EOF', got '}' at position 2: 5}̲') 记录到日志文件 ech…timestamp CPU: ${cpu_usage}%, Memory: ${mem_usage}%, Disk: ${disk_usage}" >> $LOG_FILE 等待指定的间隔时间 sleep I N T E R V A L d o n e (三)远程服务器备份使用 r s y n c 命令定期备份远程服务器上的重要数据到本地。 b a s h ! / b i n / b a s h 远程服务器备份脚本 R E M O T E U S E R = " u s e r " R E M O T E H O S T = " s e r v e r . e x a m p l e . c o m " R E M O T E D I R = " / p a t h / t o / b a c k u p " L O C A L D I R = " / p a t h / t o / l o c a l / b a c k u p " L O G F I L E = " / v a r / l o g / b a c k u p . l o g " 记录开始时间 e c h o " INTERVAL done (三)远程服务器备份 使用rsync命令定期备份远程服务器上的重要数据到本地。 bash !/bin/bash 远程服务器备份脚本 REMOTE_USER="user" REMOTE_HOST="server.example.com" REMOTE_DIR="/path/to/backup" LOCAL_DIR="/path/to/local/backup" LOG_FILE="/var/log/backup.log" 记录开始时间 echo " INTERVALdone(三)远程服务器备份使用rsync命令定期备份远程服务器上的重要数据到本地。bash!/bin/bash远程服务器备份脚本REMOTEUSER="user"REMOTEHOST="server.example.com"REMOTEDIR="/path/to/backup"LOCALDIR="/path/to/local/backup"LOGFILE="/var/log/backup.log"记录开始时间echo"(date +“%Y-%m-%d %H:%M:%S”) 开始备份…" >> $LOG_FILE 使用rsync进行备份 rsync -avz --delete --progress R E M O T E U S E R @ {REMOTE_USER}@ REMOTEUSER@{REMOTE_HOST}😒{REMOTE_DIR}/ ${LOCAL_DIR}/ >> $LOG_FILE 2>&1 检查备份是否成功 if [ ? − e q 0 ] ; t h e n e c h o " ? -eq 0 ]; then echo " ?eq0];thenecho"(date +“%Y-%m-%d %H:%M:%S”) 备份完成" >> L O G F I L E e l s e e c h o " LOG_FILE else echo " LOGFILEelseecho"(date +“%Y-%m-%d %H:%M:%S”) 备份失败" >> $LOG_FILE fi (
四)Web服务器日志分析 分析Apache或Nginx服务器的访问日志,统计访问量最高的页面和IP地址。 bash !/bin/bash Web服务器日志分析脚本 LOG_FILE=“/var/log/apache2/access.log” OUTPUT_DIR=“/var/www/html/analytics” 创建输出目录 mkdir -p $OUTPUT_DIR 统计访问量最高的10个页面 echo “访问量最高的10个页面:” > $OUTPUT_DIR/pages.txt cat $LOG_FILE | awk ‘{print $7}’ | sort | uniq -c | sort -nr | head -n 10 >> $OUTPUT_DIR/pages.txt 统计访问量最高的10个IP地址 echo “访问量最高的10个IP地址:” > $OUTPUT_DIR/ips.txt cat $LOG_FILE | awk ‘{print $1}’ | sort | uniq -c | sort -nr | head -n 10 >> $OUTPUT_DIR/ips.txt 统计每天的访问量 echo “每天的访问量:” > $OUTPUT_DIR/daily.txt cat $LOG_FILE | awk ‘{print $4}’ | cut -d: -f1 | tr -d ‘[’ | sort | uniq -c | sort -n >> $OUTPUT_DIR/daily.txt
八、学习资源推荐
(一)书籍推荐 1. 《鸟哥的Linux私房菜》:适合Linux初学者,内容全面,讲解详细。 2. 《Linux命令行与shell脚本编程大全》:深入介绍Linux命令行和shell脚本编程。 3. 《Advanced Programming in the UNIX Environment》:经典的UNIX/Linux编程书籍,适合有一定基础的开发者。
(二)在线教程 1. 菜鸟教程:提供Linux基础教程和命令大全。 2. Linux Documentation Project:提供丰富的Linux文档和教程。 3. IBM Developer:提供Linux系统管理和编程教程。
(三)社区与论坛 1. Stack Overflow:程序员问答社区,有大量关于Linux的问题和解答。 2. Reddit的Linux板块:讨论Linux相关话题的社区。 3. Linux中国:国内的Linux技术社区,提供Linux新闻、教程和资源。
(四)实践平台 1. Codecademy:提供交互式的命令行学习环境。 2. Linux Journey:提供Linux基础知识和实践练习。 3. Katacoda:提供基于浏览器的Linux实践环境,无需安装。
九、总结
Linux命令是Linux系统的核心,掌握常用的Linux命令对于Linux系统的使用和管理至关重要。本教程介绍了Linux系统的基础知识、命令行基础、文件与目录管理、文件搜索与查找、文件权限与用户管理、系统信息与监控、软件包管理等方面的内容,并提供了实战应用案例和学习资源推荐。 通过学习本教程,你应该能够掌握Linux系统的基本操作和常用命令,能够独立完成文件管理、系统配置、网络管理等任务。要进一步提高Linux技能,建议多进行实践操作,尝试解决实际问题,并阅读相关的书籍和文档。Linux系统的学习是一个长期的过程,需要不断积累和实践。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值