还剩48页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
常用命令教学课件Linux欢迎学习常用命令教学课件,本课程专为初学者与实用进阶者量身定Linux制,全面覆盖多个高频核心命令通过本课程,您将从基础入门,逐60Linux步掌握文件管理、文本处理、用户权限、进程控制等实用命令技能无论您是运维工程师、开发人员,还是对感兴趣的爱好者,本课程都将Linux为您提供全面且实用的命令行操作指南,让您在世界中得心应手Linux与命令行简介Linux什么是命令行的优势Linux是一个开源的类操作系统,由芬兰程序员相比图形界面,命令行操作效率更高,占用系统资源更少它支Linux UnixLinus在年创建它是基于设计思想的自由、开源持批处理、脚本自动化,适合远程管理服务器通过命令行,用Torvalds1991UNIX软件,现已成为服务器、嵌入式系统和个人计算机的主流操作系户可以精确控制系统各个方面,执行复杂的数据处理任务统之一是系统的命令解释器,它接收用户命令,并调用相应常见使用场景包括文件管理、系统管理、网络配置、软Shell LinuxBash的程序执行这些命令常见的包括、等,其中件安装、进程控制、文本处理等掌握命令行是每位用户Shell BashZsh Linux()是大多数发行版的默认的必备技能Bash BourneAgain SHellLinuxShell常见与终端基础Shell常用类型终端快捷键Shell最常见的中断当前命令bash BourneAgain Shell•Ctrl+C,大多数发行版的默认选Shell Linux退出当前•Ctrl+D Shell择,兼容性强,功能丰富清屏,相当于命令•Ctrl+L clear更现代的,提供强zsh ZShell Shell光标移到行首行尾•Ctrl+A/E/大的自动补全、拼写纠正和主题定制功删除光标前所有字符•Ctrl+U能,是后的默认macOS Catalina键命令或文件名自动补全•TabShell最初的sh BourneShell Unix,简单但功能有限,通常用于兼Shell容性脚本终端操作基础命令结构通常为命令名选项参数,选项前通常带有或符号多条命令可[][]---以用分号分隔在同一行执行,也可以用(前一命令成功才执行后一命令)或;||(前一命令失败才执行后一命令)连接与帮助系统man命令基础man是的缩写,用于查看命令的详细手册使用格式命令名,例如手册分为多个部分(节),包括命令说明、语法、选项man manualLinux man[]man ls详解、示例等参数--help几乎所有命令都支持选项,提供简明的帮助信息例如会显示命令的基本用法和选项列表这比更简洁,适合快速查询特定选Linux--help ls--help ls man项实例演示使用查看命令的完整手册,包括所有可用选项和详细说明使用了解文本搜索工具的高级用法,如正则表达式支持在页面中,man lslsmangrep grepman可使用空格翻页,退出,关键词搜索q/查看当前目录与导航命令命令pwd cd用于pwd PrintWorking cdChange Directory显示当前工作目录在文件系统中切换工作目录Directory的完整路径这在多层目录操基本用法目录路径如cd[]作时特别有用,帮助您随时确果不指定路径,默认切换到用认当前位置例如,执行户主目录是最常用的导pwd cd后可能显示航命令,掌握它是高效操作的关键/home/username/projects Linux命令ls列出当前目录中的文件和子目录默认情况下,它不显示隐藏ls List文件(以开头的文件)是查看目录内容的基本工具,与和.ls cdpwd一起构成了文件系统导航的基础组合命令详解ls长列表格式ls-lls-l以长格式列出文件和目录的详细信息,包括权限、所有者、组、文件大小、修改时间和名称每个文件占一行,方便查看文件属性例如-rw-r--r--1user group4096Jan1510:30document.txt显示隐藏文件ls-als-a显示所有文件,包括隐藏文件(以.开头的文件和目录)在Linux中,许多配置文件是隐藏的,如.bashrc、.ssh目录等使用-a选项可以看到这些重要文件与ls-h ls-Rls-h以人类可读格式显示文件大小,如KB、MB、GB,而不是默认的字节数ls-R递归显示子目录中的内容,适用于查看目录树结构这些选项可以组合使用,如ls-lha命令及快捷路径cd路径类型绝对路径与相对路径的区别与应用特殊路径符号点号、双点号和波浪号的含义历史导航使用快速切换目录cd-在中,路径表示方式分为两种绝对路径从根目录开始,完整指定位置,如;相对路径则相对于当前位置,不以Linux//home/user/documents/开头,如documents/files提供了几个特殊路径符号简化导航点表示当前目录,双点表示上一级目录,波浪号表示当前用户的主目录例如,表示Linux...~cd../projects切换到上一级目录下的子目录projects命令可以在最近使用的两个目录之间快速切换,非常适合在频繁访问的两个目录间来回操作,提高工作效率cd-命令实用技巧pwd基本用法物理路径直接输入显示完整工作路径显示真实物理路径而非符号链接pwd pwd-P环境变量脚本应用也可获取当前路径在脚本中使用获取当前目录echo$PWD$pwd命令虽然简单,但在日常操作和脚本编程中非常实用当使用多层嵌套目录或远程登录服务器时,可以帮助您快速确认当前位置,避免误pwd pwd操作在脚本编程中,经常需要获取脚本自身所在目录,以便访问相对位置的其他文件通过可以将当前路径保存到变量中,后续使用shell DIR=$pwd即可引用$DIR目录与文件的创建命令mkdir()用于创建新目录基本语法选项目录名常用选mkdir MakeDirectory mkdir[]项include:创建多级目录,如•mkdir-p mkdir-p a/b/c设置目录权限,如•mkdir-m mkdir-m755dirname命令rmdir()用于删除空目录基本语法选项目录名主要rmdir RemoveDirectory rmdir[]特点只能删除空目录,有内容的目录需使用•rm-r删除多级空目录,如•rmdir-p rmdir-p a/b/c命令touch用于创建空文件或更新文件时间戳基本语法选项文件名常见用touch touch[]法创建一个空文件•touch file.txt只更改访问时间•touch-a只更改修改时间•touch-m文件内容查看命令命令命令cat more/less head/tail()命和命令都提供显示文件开头部cat concatenatemore lesshead令一次性显示文件全部分页查看功能,适合大分,默认行;显10tail内容适合查看短小文文件浏览比示文件结尾部分,默认less more件,不适合大文件常功能更强大,支持前后行选项可指定行10-n用选项显示行号,滚动和搜索在中数可实时监控-n-less tail-f显示非打印字符使按可搜索,退出,空文件变化,常用于日志A/q用示例格翻页使用示例跟踪使用示例cat head,,/etc/hosts cat-n less/var/log/syslog-n20file.txt tail-fscript.sh access.log文件复制移动重命名基本用法cp源文件目标文件复制单个文件cp-递归复制cp-r复制整个目录及其内容命令操作mv移动文件或目录,也用于重命名命令()用于复制文件或目录基本格式为选项源文件目标文件常用选项包括交互式复制(覆盖前提示),保留源文件属性,显cp copycp[]-i-p-v示复制过程例如,会将文件复制到目录并保留其权限和时间戳cp-p document.txt backup/backup用于递归复制目录,包括其中的所有文件和子目录例如,会将整个目录及其内容复制到目录下cp-r cp-r projects/backup/projects backup命令()既可用于移动文件目录,也可用于重命名格式为选项源文件目标文件例如,重命名文件;mv move/mv[]mv old.txt new.txt mv将文件移动到指定目录操作在同一文件系统内不会复制数据,只修改文件系统条目,因此非常快速document.txt~/documents/mv文件与目录删除基本用法常用选项安全删除建议rm rm()命令用于删除文件或目递归删除目录及其内容为避免误删文件,可采取以下措施rm Remove•rm-r录,是中最常用也最危险的命令之Linux强制删除,不提示•rm-f创建使删除默认提示•alias rm=rm-i一基本语法为选项文件名删rm[]交互式删除,每个文件都会询•rm-i确认除单个文件直接使用,无需rm filename问使用命令先列出要删除的文件进特殊选项•find详细模式,显示删除过程•rm-v行确认需要特别注意的是,中删除操作默Linux关键数据定期备份删除目录必须使用选项,如•-r rm-r认不提示确认,且没有回收站机制,一组合使用选项如为强制避免使用等危险命令dirname rm-rf•rm-rf/旦删除通常无法恢复因此在使用命rm递归删除,此操作极其危险,尤其是与考虑使用等提供回收站功能令时应格外谨慎,特别是当以用户•trash-cliroot通配符一起使用时的工具身份操作时查找文件与目录命令find是中最强大的文件查找工具,可基于名称、大小、修改时间等条件搜索基本语法find Linux路径选项表达式常见用法find[][][]按名称查找•find/home-name*.txt按类型查找(查找目录)•find.-type d按时间查找(天内修改的文件)•find/var-mtime-77按大小查找(大于的文件)•find/usr-size+10M10MB命令locate通过预先建立的文件数据库快速查找文件,速度比快但可能不是最新状态使用locate find前可能需要先运行更新数据库基本语法选项文件名updatedb locate[]基本查找•locate bashrc忽略大小写•locate-i FILENAME与命令which whereis用于在环境变量指定的路径中查找可执行文件,显示命令的完整路径which PATH则查找命令的二进制文件、源码和手册页位置whereis(查找解释器路径)•which pythonpython(查找的二进制文件和手册页)•whereis grepgrep文本搜索与过滤是中最强大的文本搜索工具,用于在文件中查找匹配指定模式的行基本语法选项模式文件支持正则表达式,可grep Linuxgrep[][...]grep以进行复杂的模式匹配常用选项包括忽略大小写、递归搜索目录、显示行号、反向匹配(不包含模式的行)、显示匹配行前后的内容例如,-i-r-n-v-A/-B/-C grep会在日志目录中递归搜索所有包含的行-r error/var/log/error在实际应用中,经常与管道符结合使用,如查找月份修改的文件,或查找所有错误请求grep ls-l|grep Jan1cat access.log|grep404404这使成为日志分析、代码审查和文本处理的关键工具grep文本内容批量处理流编辑器文本处理sed awk是一个强大的文是一种处理文本的编程语言,特sed StreamEditor awk本流编辑工具,可以对文本进行替别适合处理列数据它默认以空格作换、删除、插入和转换操作基本语为字段分隔符,可通过等引用$1,$2法选项命令文件常见用各列基本语法模式动作文sed[]awk{}例包括替换文本件常见用例包括提取特定列sed s/old/new/g awk、删除特定行、根据条件筛file.txt sed5d{print$1,$3}data.txt、打印特定范围的行选行、计算file.txt sed-n awk$3100data.txt等非常适合处总和或平均值10,20p file.txt sedawk{sum+=$2}END理大文件,因为它逐行处理而不加载等{print sum}data.txt整个文件到内存与命令cut uniq命令用于从文件的每一行中提取特定部分,基于字节、字符或字段基本语法cut分隔符字段列表文件如提取用户名和cut-d-f cut-d:-f1,7/etc/passwd shelluniq命令用于去除重复行,通常与配合使用这些简单但强大的sort sort file.txt|uniq工具可以高效处理、日志等结构化文本CSV文本统计与分析32核心功能对比方式wc diffwc命令可统计行数、字数和字节数常用输出格式普通和上下文1排序类型sort支持数字、字母和月份排序wc WordCount命令是文本计数的标准工具,使用wc filename可以同时显示行数、单词数和字节数使用-l只统计行数,-w只统计单词数,-c只统计字节数例如,wc-l*.txt可以统计所有txt文件的总行数,常用于代码量统计或日志分析diff命令用于比较两个文件的不同,输出格式为需要进行的修改基本语法diff[选项]文件1文件2使用-u选项可得到更易读的上下文格式输出diff在代码审查、配置文件管理中非常有用sort命令用于对文本行进行排序,uniq命令用于删除重复行(通常需要先排序)sort-n按数值排序,sort-r逆序排序,sort-k2按第二列排序sort与uniq结合可以实现唯一值统计,如sort file.txt|uniq-c统计每行出现的次数文件压缩与归档打包tar创建归档文件,不压缩压缩gzip将归档文件压缩tar解包与解压还原压缩和归档的文件命令用于将多个文件打包成一个归档文件基本语法选项归档文件源文件常用选tar tar[][][]项创建新归档,提取归档,列出归档内容,指定归档文件名例如,c xtftar-cf archive.tar将两个文件打包成file1file2archive.tar用于压缩解压缩文件将生成压缩文件,将gzip/gunzip/gzip file.tar file.tar.gz gunzipfile.tar.gz解压回命令也可以通过选项直接处理压缩,如file.tar tarz gziptar-czf archive.tar.gz directory/创建压缩归档,解压缩归档tar-xzf archive.tar.gz其他常用压缩格式包括(使用选项)和(使用选项)例如,bzip2j xzJ tar-cjf archive.tar.bz2创建压缩归档这些工具在备份、软件分发和日志管理中广泛应用directory/bzip2权限管理基础更改属主属组chown命令用于更改文件或目录的所有者和所属chown组基本语法选项所有者组文件常chown[][:]见用法更改读写执行权限chmod更改文件所有者•chown userfile命令用于修改文件或目录的权限可以chmod同时更改所有者和组•chown user:group file使用符号模式(如给文件所有chmod u+x file递归更改目录及内•chown-R userdirectory者添加执行权限)或数字模式(如chmod755容设置所有者可读可写可执行,组用户和其他file用户可读可执行)常用权限组合设置默认权限umask文件常用权限()•644-rw-r--r--命令设置新创建文件和目录的默认权限它umask脚本或目录常用权限()•755-rwxr-xr-x指定从最大可能权限中需要删除的权限(掩码私密文件常用权限()•600-rw-------值)例如新目录权限为,新文件为•umask022755644新目录权限为,新文件为•umask077700600在中设置可以永久更改默认权限.bashrc umask权限案例实践文件权限实战文件权限分为三组所有者、所属组和其他用户,每组有读r=
4、写w=2和执行x=1三种权限创建一个只有所有者可读写、组成员可读、其他人无权限的配置文件touch config.inichmod640config.ini对于关键脚本,确保只有所有者有执行权限chmod700backup.sh目录权限实战目录权限含义与文件略有不同读r允许列出内容,写w允许创建/删除文件,执行x允许访问内部文件创建一个共享目录,组内可读写,其他用户只读mkdir sharedchmod775shared对私密目录设置严格权限mkdir privatechmod700private级联权限影响使用-R选项递归设置权限时要谨慎,因为文件和目录的权限需求通常不同例如,设置网站目录权限find/var/www-type d-exec chmod755{}\;find/var/www-type f-exec chmod644{}\;这确保目录可执行(允许访问),而文件只需读取权限用户与组管理命令功能常用选项示例创建新用户创建家目录useradd-m useradd-m-s指定-s shell/bin/bash john指定组-g删除用户删除家目录userdel-r userdel-r john修改用户属性添加附加组usermod-G usermod-G sudo锁定账户-L john创建新组指定groupadd-g GIDgroupadddevelopers删除组groupdel groupdeldevelopers设置用户密码锁定passwd-l passwdjohn解锁-u以超级用户执行命指定用户sudo-u sudo apt update令列出权限-l进程管理基础命令命令、与命令ps topjobs bgfg()命令用于查看当前系提供系统进程的动态实时视图,默认每这组命令用于管理终端中的后台任务ps ProcessStatus top3统中运行的进程状态基本语法选秒更新一次显示、内存使用率和进程ps[CPU列出当前终端的后台任务•jobs项不加选项时只显示当前终端的进程列表,按使用率排序]CPU将编号为的任务放到后台运行•bg%n n常用选项组合交互式命令将编号为的后台任务调到前台•fg%n n显示所有进程详细信息(退出•ps auxBSD•q相关操作风格)杀死进程(需要输入)•k PID命令在后台运行命令,如显示所有进程详细信息•find/-•ps-ef调整进程优先级•r(风格)name*.log SystemV按内存使用排序•M暂停当前前台任务并放入后台显示指定用户的进程•Ctrl+Z•ps-u username按使用排序•P CPU输出中,是进程,是进程所有PID IDUSER者,和显示资源占用,%CPU%MEM显示命令名称COMMAND终止与控制进程命令命令kill killall命令用于向进程发送信号,最常用根据进程名称而非终止进kill killallPID于终止进程基本语法选项程,可同时终止同名的多个进程基kill[]默认发送信号,请求本语法选项进程名例PID TERM15killall[]进程正常终止使用可发送如,终止所有浏kill-9PID killallfirefox Firefox信号,强制终止进程(不给进程览器进程常用选项交互式确KILL-i清理的机会,仅在进程无响应时使认,指定用户,忽略大小写该-u-I用)可列出所有可用信号常命令在需要快速终止同一应用的多个kill-l见信号包括重新加载、实例时特别有用,比如关闭所有不响1HUP正常终止、强制终应的浏览器标签页15TERM9KILL止命令nohup用于运行命令并使其免疫于挂起信号,即使终端关闭也能继续运行基本语nohup法命令参数输出默认重定向到文件例如,nohup[]nohup.out启动一个长时间运行的脚本,并在关闭终端后继续执行这nohup./longscript.sh对服务器上运行长时间任务非常有用,可以防止连接断开导致任务终止SSH与命令回溯history文件系统状态查看命令命令df dudf(Disk Free)显示文件系统磁盘空间使用情du(Disk Usage)统计目录或文件的磁盘使用况基本语法df[选项]默认显示所有已挂载量基本语法du[选项][目录或文件]的文件系统,单位为KB•du-h人类可读格式•df-h以人类可读格式显示(KB、MB、GB)•du-s只显示总计•df-T显示文件系统类型•du-a显示所有文件(不只是目录)•df-i显示inode使用情况•du--max-depth=n指定显示的目录深度例如,df-h/home显示/home分区的空间使用例如,du-sh/*显示根目录下各主要目录的大情况此命令常用于监控磁盘空间,防止磁盘满小,帮助找出占用空间最多的目录导致系统问题命令mountmount命令用于挂载文件系统,unmount用于卸载不带参数的mount显示当前挂载的所有文件系统•mount/dev/sdb1/mnt将设备挂载到指定目录•mount-t typedevice dir指定文件系统类型•umount/mnt卸载挂载点永久挂载需要修改/etc/fstab文件正确使用挂载命令对于管理外部存储设备至关重要系统信息查询命令unameuname(Unix Name)命令显示系统信息不带选项时仅显示内核名称常用选项uname-a显示所有信息,包括内核名称、主机名、内核版本、处理器架构等;uname-r仅显示内核版本;uname-m显示机器硬件架构此命令对于确定运行的确切系统版本非常有用,尤其是在编译软件或排查兼容性问题时命令lsb_releaselsb_release命令提供Linux发行版的具体信息lsb_release-a显示所有信息,包括发行版名称、版本号、代号等例如,在Ubuntu系统上,此命令可显示是哪个Ubuntu版本(如
20.04LTS)这对于按照特定发行版的指南安装软件或排查问题时非常有价值,因为不同发行版之间可能存在差异内存使用查询free命令显示系统内存使用情况,包括物理内存和交换空间free-h以人类可读格式显示(MB、GB)free-s3连续每3秒更新一次显示cat/proc/meminfo提供更详细的内存相关信息这些命令对于监控系统资源使用情况,诊断性能问题和内存泄漏非常重要网络命令基础命令ping用于测试网络连通性,向目标主机发送回显请求基本语法选项ping ICMPping[]主机常用选项指定发送包数量,指定间隔秒数,设置超时时间例如-c-i-W发送个数据包并停止命令返回的往返时间ping-c4www.example.com4ping RTT是评估网络延迟的重要指标命令ifconfig/ip显示或配置网络接口,但在较新的系统中已被命令替代不带参数ifconfig ipifconfig显示所有活动接口信息提供类似功能这些命令可以查看地址、ip addrshow IP地址、接收发送的数据包数量等信息配置临时地址MAC/IP ifconfigeth0或
192.
168.
1.100netmask
255.
255.
255.0ip addradd
192.
168.
1.100/24dev eth0命令netstat/ss和命令用于显示网络连接、路由表、接口统计等显示所有netstat ssnetstat-tuln和监听端口,提供类似功能但性能更好常用选项显示所有连TCP UDPss-tuln-a接,仅,仅,显示数字地址,显示关联的进程这些命令对于诊断-t TCP-u UDP-n-p网络问题和检查是否有可疑的开放端口非常有用远程连接工具远程登录密钥管理SSH SSH基本连接与认证方式生成与配置安全密钥同步文件传输Rsync SCP高效增量文件同步工具安全复制本地与远程文件SSH SecureShell是加密远程登录的标准工具基本语法ssh[选项]用户名@主机例如ssh user@
192.
168.
1.100或ssh-p2222user@example.com(指定端口)首次连接时会提示接受主机密钥可以在~/.ssh/config中配置常用连接,简化命令SSH密钥认证比密码更安全使用ssh-keygen生成密钥对,ssh-copy-id user@host将公钥复制到远程服务器配置好后可以无密码登录,提高安全性和便利性SCP SecureCopy用于在本地和远程主机之间安全传输文件语法scp[选项]源文件目标位置例如scp file.txt user@host:/path/或scp user@host:/path/file.txt local/Rsync提供更高效的文件同步,只传输变化的部分,例如rsync-avz source/user@host:/destination/计划任务基础crontabcrontab用于设置周期性执行的任务每个用户都有自己的crontab文件crontab条目格式为分时日月周命令时间字段可以使用数字、范围(如1-5)、列表(如1,3,5)、通配符*(表示所有值)或步长(如*/5表示每5单位)管理命令crontab常用crontab管理命令•crontab-e编辑当前用户的crontab•crontab-l查看当前用户的crontab•crontab-r删除当前用户的crontab•crontab-u user-e编辑指定用户的crontab(需要root权限)命令atat命令用于设置一次性定时任务,指定未来某个时间点执行基本语法at时间使用示例•at now+5minutes5分钟后执行•at14:30今天14:30执行•at10:00tomorrow明天10:00执行输入命令后按Ctrl+D结束使用atq查看队列,atrm删除任务定义与查看变量环境变量基础查看环境变量命令重要环境变量环境变量存储系统和用户程序使用的信显示所有环境变量常见的重要环境变量包括•env息,分为系统级(对所有用户有效)和功能与类似,但有更•printenv env定义命令搜索路径•PATH用户级(仅对当前用户有效)变量可多选项当前用户主目录路径以是永久的(在配置文件中设置)或临•HOME显示特定环境•printenv VARIABLE时的(仅在当前会话有效)当前用户名•USER变量的值当前程序路径•SHELL shell定义变量的基本语法VARIABLE=value•echo$VARIABLE显示特定变量的值系统语言和区域设置(注意等号两边不能有空格)使用变•LANG量时需要加$符号,如echo$VARIABLE显示所有变量(包括环境变量•EDITOR默认文本编辑器•set要将变量导出为环境变量,使用export和变量)命令历史记录数量shell•HISTSIZE命令或先定义export VARIABLE=value再导出VARIABLE=value;exportVARIABLE输出应用echo/printf命令是中最基本的输出命令,用于在终端显示文本或变量值基本语法选项字符串默认情况下,在输出后会添加换行echo Shellecho[][]echo符常用选项不添加尾随换行符,解释转义字符例如,会输出和分别在两行-n-e echo-e Hello\nWorld HelloWorld转义序列是的强大功能,使用选项启用后,可以使用换行、制表符、退格等彩色输出也是通过转义序列实现,如echo-e\n\t\b echo-e显示红色文本变量的输出也非常简单\033[31mRed Text\033[0m echoCurrent user:$USER命令提供更强的格式化能力,语法类似语言的函数格式参数列表例如,会格printf Cprintf printfprintf Name:%-10s Age:%03d\n Tom25式化输出名字和年龄默认不添加换行符,需要显式添加对于精确控制输出格式的场景,比更适合printf\n printfecho输入输出重定向标准输出重定向使用和将命令输出转向文件标准输入重定向使用从文件读取而非键盘输入管道操作使用将命令输出作为另一命令输入|输出重定向可以将命令结果写入文件而非显示在屏幕上使用将输出写入文件(覆盖已有内容),如;使用追加到文件末尾,如lsfiles.txtecho New数字可以指定特定的文件描述符表示标准输出,表示错误输出例如,可以只捕获错误信息linelog.txt12command2errors.log command将标准输出和错误输出都重定向到同一文件output.txt21输入重定向使用符号,从文件获取输入而非键盘例如,对文件内容进行排序可以创建,允许多行输入直到遇到指sortunsorted.txthere document定的结束标记例如,会创建一个脚本文件,直到输入为止catEOFscript.sh EOF管道符是最强大的重定向操作,它将一个命令的输出直接作为另一个命令的输入例如,列出所有文本文件,|ls-l|grep.txt catfile.txt|grep error|wc-统计文件中包含的行数管道可以串联多个命令,构建强大的数据处理流水线l error管道命令场景表达文本过滤场景管道最常见的用途是过滤文本内容例如,查找特定进程ps aux|grep nginx这个命令将ps的完整输出通过管道传递给grep,只显示包含nginx的行类似地,ls-l/etc|grep Feb可以找出二月份修改的配置文件多重过滤可以通过串联管道实现cat access.log|grep404|grep-v favicon.ico这个命令首先查找所有404错误,然后排除与favicon.ico相关的行,帮助分析有意义的错误数据处理场景管道可以构建强大的数据处理流程例如,统计独立IP访问量cat access.log|awk{print$1}|sort|uniq|wc-l这个命令链从日志中提取IP地址字段,排序后去重,最后计算总行数又如,查找最大的5个文件du-h/var|sort-hr|head-n5这组合使用du命令获取目录大小,通过管道传递给sort进行逆序排序,再使用head只显示前5行结果命令组合场景复杂的系统管理任务常需要多个命令协作例如,杀死所有Firefox进程ps aux|grepfirefox|grep-v grep|awk{print$2}|xargs kill这个命令链首先列出所有进程,过滤出Firefox相关进程(排除grep本身),提取PID列,然后传递给kill命令执行终止操作另一个例子是批量重命名文件ls*.jpg|sed s/\.jpg$/_small.jpg/|xargs-I{}echo mv{}{}.new这个管道将匹配所有jpg文件,通过sed生成新文件名,然后构建重命名命令编辑器入门基本用法vimvim是强大的文本编辑器,具有多种模式按i进入插入模式开始编辑文本;按Esc返回命令模式;在命令模式下,x删除字符,dd删除整行,yy复制行,p粘贴,/文本搜索,:w保存,:q退出,:wq保存并退出,:q!不保存强制退出vim的学习曲线较陡,但掌握后效率极高,特别适合远程服务器文本编辑编辑器nanonano是对初学者友好的简易编辑器,操作类似图形界面打开文件nano filename底部显示常用快捷键,如^O(Ctrl+O)保存,^X(Ctrl+X)退出,^W搜索,^K剪切行,^U粘贴nano没有模式切换,直接输入即可编辑,操作简单直观,是快速编辑配置文件的好选择简介emacsemacs是功能极其丰富的编辑器,甚至可以视为一个操作环境基本操作C-x C-f打开文件,C-x C-s保存,C-x C-c退出emacs支持语法高亮、代码补全、版本控制等高级功能,具有极高的可定制性和扩展性,适合长期文本工作和编程与vim一样,掌握emacs需要时间,但回报丰厚软硬链接链接概念软链接特性硬链接特性文件系统中有两种链接硬链接软链接(符号链接)类似中的快捷硬链接是指向文件索引节点的目录Linux hardWindows inode和软链接链接允方式,指向另一个文件或目录的路径使用项,与原文件共享相同的数据块使用link soft/symbolic linkln许在不同位置引用同一个文件,或者创建创建软链接创建硬链接特点ln-s source_file link_name source_file link_name快捷方式指向其他文件目录特点/不能跨文件系统(必须在同一分区)•链接在系统管理、软件安装和版本控制等场可以跨文件系统•不能链接目录•景中非常有用例如,通过链接可以保持向可以链接到目录•与普通文件外观相同•后兼容性、实现系统路径的标准化、方便配显示时带有指向符号•l任何一个链接删除,文件内容仍然存在•置文件管理等源文件删除后,链接失效•共享同一个和数据块•inode有自己的和数据块,存储的是路径•inode例如创建一个ln/etc/hosts hosts_link文件的硬链接hosts例如创ln-s/var/log/messages log_link建一个指向系统日志的软链接文件名操作工具命令basenamebasename命令从路径中提取文件名部分,去除目录路径基本语法basename[选项]路径[后缀]如果指定后缀,basename还会移除匹配的后缀例如basename/usr/bin/sort返回sort;basename scripts/test.sh.sh返回test这在脚本中非常有用,尤其是需要处理文件名而不关心路径时命令dirnamedirname命令与basename相反,它提取路径的目录部分,去除文件名基本语法dirname路径例如dirname/usr/bin/sort返回/usr/bin;dirname a/b/c返回a/b在脚本中,dirname常用于确定脚本自身所在的目录,如DIR=$dirname$0,这样可以相对于脚本位置访问其他文件与配合xargs findxargs命令用于从标准输入构建和执行命令行它与find特别搭配,用于批量处理找到的文件基本语法命令1|xargs命令2例如find.-name*.log|xargs rm删除所有日志文件;find.-name*.jpg|xargs-I{}convert{}{}.png将所有JPG转换为PNG-I选项允许指定替换字符串,使命令更灵活快捷命令、别名bash命令用于创建命令别名,可以为复杂或常用的命令指定简短的替代名称基本语法别名命令例如,创建一个别名来显示详细的alias alias=alias ll=ls-la ll目录列表;将系统更新命令简化为一个词别名在当前会话有效,要永久保存需添加到文件alias update=sudo apt updatesudo apt upgrade~/.bashrc中命令用于删除已定义的别名基本语法别名例如,删除别名使用可以删除所有别名要暂时绕过别名使用原始命unalias unaliasunalias llll unalias-a令,可以在命令前加反斜杠或使用命令的完整路径,如或\ls/bin/ls实用别名案例(防止覆盖文件时不提示);(创建多级目录);(人类可读格式显示磁盘空间);alias cp=cp-i aliasmkdir=mkdir-p aliasdf=df-h alias(彩色显示匹配);(查看开放端口)这些别名大大提高了日常工作效率grep=grep--color=auto aliasports=netstat-tulanp历史命令管理技巧文件变量.bash_history HISTSIZE会将命令历史记录保存在环境变量控制命令历史的大小Bash HISTSIZE文件中默认情况下,(保存的命令数量)默认值通常为~/.bash_history命令历史在会话结束时写入此文件每可以通过查看当1000echo$HISTSIZE行代表一条执行过的命令,按时间顺序前值,通过增加export HISTSIZE=2000排列可以直接查看或编辑此文件历史容量类似地,控HISTFILESIZE,也可以使用制文件中保存的命令行cat~/.bash_history.bash_history命令访问其内容了解这个文件数这些设置可以添加到文history~/.bashrc的位置和格式有助于进行历史命令的高件中使其永久生效增加这些值对于经级管理和分析,比如批量删除特定类型常需要引用过去命令的用户特别有用的命令记录历史记录安全设置某些命令可能包含敏感信息(如密码),不应记录在历史中环境变量可HISTCONTROL以控制哪些命令被记录设置会使所有以空格开头的export HISTCONTROL=ignorespace命令不被记录设置可以避免记录重复命令export HISTCONTROL=ignoredups则允许指定不记录的命令模式HISTIGNORE exportHISTIGNORE=ls*:pwd:exit:clear这些安全措施对于在共享环境中工作的用户尤为重要、、命令who whoamiw命令功能常用选项输出示例whoami显示当前有效用户名无主要选项user1who显示当前登录用户信-a所有信息user1tty12023-01-息-b上次启动时间1509:30显示列标题-Hw显示已登录用户及其-h不显示标题user1tty109:30活动-s简短格式1:
150.12bash远程主机字段-f显示用户和组信息只显示用户id ID-uID uid=1000user1只显示组-gID gid=1000user1所有组-GID groups=...last显示登录历史记录-n数字显示行数user1tty1Mon Jan不显示主机名-R1509:30-10:4501:
15、超级用户操作su sudo命令使用susu(Substitute User)命令用于切换到另一个用户身份不带参数时默认切换到root用户基本语法su[选项][用户名]常用选项-l或-(连字符)提供完整的登录环境,包括设置HOME、SHELL等环境变量例如su-root或su-使用su时需要输入目标用户密码su执行后会打开一个新的shell会话,退出使用exit命令授权执行sudosudo(Superuser Do)允许用户以另一个用户(通常是root)的权限执行命令,无需切换用户基本语法sudo[选项]命令sudo要求输入当前用户密码(不是root密码)常用选项-u指定用户,-l列出允许的命令例如sudo aptupdate或sudo-u postgrespsqlsudo比su更安全,因为它允许精细控制权限,且会记录使用日志配置安全sudosudo权限通过/etc/sudoers文件配置,应使用visudo命令编辑此文件以避免语法错误基本格式用户主机=可切换到的用户可执行的命令示例配置user ALL=ALLALL允许user执行任何命令;user ALL=ALL NOPASSWD:/bin/systemctl允许无需密码执行systemctl配置适当的sudo权限是服务器安全管理的重要一环系统时间管理命令基础设置系统时间datedate命令用于显示或设置系统时间不带参数时设置系统时间需要root权限语法date-s时显示当前日期和时间基本语法date[选项][+间字符串格式]•设置日期sudo date-s2023-01-15•显示当前时间date•设置时间sudo date-s10:30:00•指定格式显示date+%Y-%m-%d•同时设置日期和时间sudo date-s2023-%H:%M:%S01-1510:30:00•显示其他时区TZ=Asia/Shanghai date在联网环境中,推荐使用NTP自动同步sudo常用格式说明符%Y年份四位数,%m月份01-apt installntp或sudo timedatectlset-ntp true12,%d日期01-31,%H小时00-23,%M分钟(systemd系统)00-59,%S秒00-59日历命令calcal命令显示当月或指定月份的日历基本语法cal[选项][月][年]•显示当月日历cal•显示整年日历cal-y或cal2023•显示特定月份cal72023(2023年7月)•显示包含前后月份的三月日历cal-3cal命令在需要快速查看日期时非常方便,特别是在规划会议或计划时间相关任务时系统重启与关机定时关机shutdown安全计划系统关闭与重启系统重启reboot快速重新启动系统立即关机poweroff立即关闭系统电源命令是关闭系统的首选方式,它会安全地终止所有进程,卸载文件系统,并通知所有登录用户基本语法选项时间消息时间可以是具体shutdown shutdown[][]时刻(如),也可以是相对时间(如表示分钟后)常用选项关机,重启,取消例如,系统将在分钟后关机进行维护会12:30+1010-h-r-c shutdown-h+3030显示消息并在分钟后关机30命令用于立即重启系统,相当于这个命令会发送正常的终止信号给所有进程,与按下物理重启按钮不同,它是安全的重启方式在大多数reboot shutdown-r now现代系统中,、和命令实际上是的别名或链接Linux reboothalt poweroffsystemctl命令用于立即关闭系统电源,相当于命令会停止所有进程并停止,但可能不会切断电源(取决于系统配置)这些命令执行时poweroff shutdown-h nowhalt CPU都需要有足够的权限(一般是或通过)在生产环境中使用这些命令前,务必确保所有用户已保存工作并通知相关人员root sudo日志文件操作系统日志位置实时监控日志变化Linux系统日志主要存储在/var/log目录下,包含了系统和应用程序的运行记录重要的日志文件包括•/var/log/syslog或/var/log/messages通用系统消息tail-f命令是监控日志变化的利器,它会实时显示文件的新增内容•/var/log/auth.log或/var/log/secure认证相关信息•tail-f/var/log/syslog实时监控系统日志•/var/log/kern.log内核消息•tail-f-n100/var/log/apache2/error.log显示最后100行并监控•/var/log/dmesg系统启动消息•多文件监控tail-f/var/log/{syslog,auth.log}•/var/log/apache2/或/var/log/httpd/Web服务器日志•过滤监控tail-f/var/log/syslog|grep error123基本日志查看工具查看日志文件有多种方法•less/var/log/syslog分页查看•cat/var/log/auth.log|grep Failed过滤失败登录•head/tail查看日志开头/结尾•journalctl systemd系统的日志查看工具常用网络诊断命令命令命令命令traceroute nslookup dig命令用于跟踪数据包从本地计算()是一个()是一个traceroute nslookupName ServerLookup digDomain InformationGroper机到目标主机的路由路径,显示数据包经过用于查询记录的命令行工具它可以查更强大的查询工具,提供比更DNS DNSnslookup的每个网络节点(路由器)及其响应时间找域名对应的地址,或反向查找的域详细的信息基本语法选项服务IP IPdig[][@基本语法选项主机名或名基本语法选项主机名器域名记录类型traceroute[]IP nslookup[][|][][]IP]的工作原理是发送具有递增的输出包括查询头部、问题部分、答案traceroute TTLdig(生存时间)值的或数据包每个不带参数时,进入交互模式;带参部分、权威服务器、额外信息等完整响UDP ICMPnslookup DNS路由器收到数据包时将减,当变为数时直接执行查询例如应例如使TTL1TTL0nslookupdig@
8.
8.
8.8example.com A时,路由器返回超时消息,从而揭示会显示的地址;用服务器查询的ICMPgoogle.com google.com IPGoogle DNSexample.com A其位置查询邮件记录nslookup-type=MX example.com交换记录常用选项使用地址而非主机名(更常用选项简化输出只显示答案,-n IP+short快),使用探测(对防火墙更友在排查域名解析问题时特别有用,跟踪从根服务器开始的完整解析过-T TCPSYN nslookup+trace好),设置最大跳数例如可以帮助确认配置是否正确,以及检查程在管理和排错中是必不可少的-m tracerouteDNS digDNS域名是否已正确解析到预期的地址工具,特别适合专业网络管理员使用-n google.com IP安装包管理(以为例)Debian/Ubuntu更新软件源使用aptupdate刷新本地软件包列表,获取最新的软件包信息这一步不会安装任何软件,只是更新软件源的元数据例如sudo aptupdate定期执行此命令可确保系统获取最新的安全更新和软件版本信息升级已安装软件使用aptupgrade可将已安装的软件包升级到最新版本使用apt full-upgrade(或apt-get dist-upgrade)可更智能地处理依赖关系变化,必要时可移除过时的包例如sudo aptupgrade或sudo aptfull-upgrade建议在升级前先备份重要数据安装新软件使用apt install安装新软件包可同时指定多个包例如sudo apt install vimgit htopapt会自动处理所有依赖关系使用aptinstall--reinstall可重新安装已有软件apt search可搜索可用软件包,如apt searchtext editor卸载软件使用apt remove卸载软件但保留配置文件,使用apt purge完全移除软件及其配置例如sudo aptremove firefox或sudo aptpurge firefox使用aptautoremove可移除不再需要的依赖包,清理系统基础用法dpkgdpkg是Debian包管理的底层工具,用于直接安装.deb文件基本用法sudo dpkg-i package.deb安装本地.deb文件;dpkg-l列出所有已安装的包;dpkg-spackage查看特定包的状态;dpkg-L package列出包安装的所有文件当依赖关系出现问题时,可使用sudoapt--fix-broken install修复进阶命令与工具命令批处理命令输出分流按间隔运行命令xargs tee watch是一个强大的命令行工具,用于将标准输入命令读取标准输入,然后同时写入标准输出和命令定期执行指定的命令并全屏显示其输xargs teewatch转换为命令行参数它可以将多行输入转换为单指定的文件它的名称来源于型管道接头,象征出,便于监控命令结果随时间的变化基本语T行参数,或将长命令行分割成多个短命令执行,着数据流的分流基本语法选法选项默认每秒执行一command|tee[watch[]command2解决参数过长的问题基本用法项例如,既在屏幕上次选项可修改间隔,如每command1|]file ls-l|tee listing.txt-n watch-n5df-h5例如,显示目录列表,又将其保存到文件使用选项秒显示一次磁盘使用情况选项(差异模式)xargs command2find.-name*.txt|-a-d在所有找到的文本文件中搜可追加到文件而非覆盖,如会高亮显示变化的部分,如突xargs greppattern echonew line|teewatch-d free-m索模式允许自定义替换字符,如特别适合需要同时查看和记录命出显示内存使用变化非常适合监控系统xargs-I{}-a log.txt teewatch令输出的场景状态、进程活动或文件变化find.-name*.jpg|xargs-I{}cp{}backup/脚本初识shell脚本创建编写内容使用文本编辑器创建脚本文件添加shebang和命令序列执行脚本设置权限运行并测试脚本功能赋予脚本执行权限Shell脚本是包含一系列命令的文本文件,可以自动化执行重复任务创建第一个脚本很简单使用任意编辑器(如nano hello.sh)创建文件,首行添加shebang(#!/bin/bash)指明解释器,然后输入要执行的命令,如echo Hello,World!脚本创建后,需要赋予执行权限才能运行chmod+x hello.sh这个命令将脚本设为可执行文件不设置此权限,系统将把脚本视为普通文本文件而非可执行程序执行脚本有两种方式./hello.sh(使用相对路径,当前目录需在PATH中)或bash hello.sh(显式调用解释器)运行后,脚本中的命令会按顺序执行,就像您在命令行中手动输入一样这是自动化系统管理任务的基础,可以大大提高工作效率实战演示文件批量处理案例#!/bin/bash#批量文件处理示例脚本#
1.批量重命名将所有.txt文件重命名为.bakecho正在批量重命名文件...for filein*.txt;doif[-f$file];thenmv$file${file%.txt}.bakecho$file-${file%.txt}.bakfidone#
2.批量查找查找所有包含ERROR的日志文件echo-e\n查找包含ERROR的日志文件...grep-l ERROR*.log#
3.批量压缩将每个.bak文件单独压缩echo-e\n正在批量压缩文件...for filein*.bak;doif[-f$file];thengzip-c$file$file.gzecho压缩$file-$file.gzfidoneecho-e\n批处理完成!实战演示日志分析与过滤#!/bin/bash#日志分析与过滤示例#系统日志分析echo===最近10条系统错误===grep-i error/var/log/syslog|tail-10#Apache访问日志分析(IP统计)echo-e\n===访问量最高的5个IP地址===cat/var/log/apache2/access.log|awk{print$1}|sort|uniq-c|sort-nr|head-5#筛选404错误echo-e\n===最近的404错误请求===grep HTTP/
1.1\404/var/log/apache2/access.log|tail-5|awk{print$7,$9,$1}#按时间段过滤echo-e\n===特定时间段内的日志===sed-n/01\/Apr\/2023:10:00/,/01\/Apr\/2023:11:00/p/var/log/apache2/access.log|head-5#提取响应时间超过2秒的请求echo-e\n===响应时间超过2秒的请求===awk$NF
2.0{print$7,$NF}/var/log/apache2/access.log|head-5常用命令学习建议Linux多练习多查询脚本与命令组合学习命令最有效的方法是实际掌握基本命令后,学习如何将多个命Linux动手操作从基本命令开始,逐步掌令组合使用,利用管道、重定向和变握更复杂的用法遇到问题时,养成量创建强大的命令链开始编写简单查阅手册的习惯,而不是立即寻的脚本自动化日常任务,如备man shell求外部帮助尝试使用或份、日志分析或系统监控脚本编写man lsls--了解命令的全部功能创建测试过程会加深对各个命令的理解,并培help环境进行实验,如使用虚拟机或容养综合运用多个命令解决实际问题的器,可以在不影响实际系统的情况下能力参考开源项目中的脚本代码,自由尝试命令学习专业人士的最佳实践必背命令清单优先掌握以下高频核心命令文件操作(),文本处理(ls,cd,cp,mv,rm cat,grep,),系统信息(),用户管理(),sed,awk ps,top,free,df useradd,passwd,sudo网络工具(),包管理()这些命令构成了日常ping,ssh,wget apt/yum/dnf Linux操作的骨架,熟练掌握它们将显著提高工作效率逐步扩展到其他专业领域的命令,如性能优化、安全加固等课程总结与答疑60+10核心命令主要分类本课程覆盖的Linux高频实用命令数量文件管理、文本处理、系统管理等核心领域5应用场景从基础操作到系统管理的实际应用范围我们已经全面学习了Linux常用命令,从基本的文件和目录操作(如ls、cd、mkdir)到系统管理命令(如ps、top、systemctl),再到高级文本处理工具(如grep、sed、awk)通过这些命令,我们可以高效地管理Linux系统,执行日常维护任务,并解决各种技术挑战本课程重点强调了实践学习的重要性建议大家建立个人命令笔记,记录常用命令及其用法,逐步构建自己的知识库对于初学者,可以先专注于掌握基本命令,然后逐渐探索更复杂的用法对于进阶用户,尝试编写脚本自动化工作流程是提升技能的有效途径附带的常用命令速查表将帮助您在日常工作中快速查阅命令语法和选项最后,提醒大家Linux命令学习是一个持续的过程,不断实践和探索才能真正掌握这些强大工具的全部潜力。
个人认证
优秀文档
获得点赞 0