查看“【Linux 常用命令】”的源代码
←
【Linux 常用命令】
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:Linux]] == 系统版本 == # 查看系统的发行版本: #: <syntaxhighlight lang="bash" highlight=""> cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) </syntaxhighlight> # 查看系统的内核版本: #: <syntaxhighlight lang="bash" highlight=""> uname -r 5.2.8-1.el7.elrepo.x86_64 </syntaxhighlight> == systemctl == '''systemctl''' 是 CentOS 7 的服务管理工具中主要的工具,它融合之前 service 和 chkconfig 的功能于一体。 常用命令: : <syntaxhighlight lang="bash" highlight=""> # 启动一个服务: systemctl start firewalld.service # 关闭一个服务: systemctl stop firewalld.service # 重启一个服务: systemctl restart firewalld.service # 显示一个服务的状态: systemctl status firewalld.service # 在开机时启用一个服务: systemctl enable firewalld.service # 在开机时禁用一个服务: systemctl disable firewalld.service # 查看服务是否开机启动: systemctl is-enabled firewalld.service # 查看已启动的服务列表: systemctl list-unit-files|grep enabled # 查看启动失败的服务列表: systemctl --failed </syntaxhighlight> == 防火墙 == # firewalld 的基本使用: #: <syntaxhighlight lang="bash" highlight=""> # 启动 systemctl start firewalld # 关闭 systemctl stop firewalld # 查看状态 systemctl status firewalld # 开机禁用 systemctl disable firewalld # 开机启用 systemctl enable firewalld </syntaxhighlight> #*(“firewalld”或“firewalld.service”) # 配置 firewalld-cmd: #: <syntaxhighlight lang="bash" highlight="8,11,17"> # 查看版本: firewall-cmd --version # 查看帮助: firewall-cmd --help # 显示状态: firewall-cmd --state # 重新载入防火墙配置 firewall-cmd --reload # 添加端口 firewall-cmd --zone=public --add-port=80/tcp --permanent # 删除端口 firewall-cmd --zone= public --remove-port=80/tcp --permanent # 查看端口 firewall-cmd --zone= public --query-port=80/tcp # 查看所有打开的端口: firewall-cmd --zone=public --list-ports # 查看区域信息: firewall-cmd --get-active-zones # 查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0 # 拒绝所有包: firewall-cmd --panic-on # 取消拒绝状态: firewall-cmd --panic-off # 查看是否拒绝: firewall-cmd --query-panic </syntaxhighlight> #* “--permanent”:永久生效,没有此参数重启后失效。 == 文件(夹)命令 == 文件夹常用的命令:查看信息('''ls''')、复制('''cp''')、移动('''mv''')、删除('''rm''')、创建/修改文件('''touch''') === ls === ls 用于查看文件(夹)的信息 默认显示的只有:非隐藏文件的文件名、以文件名进行排序及文件名代表的颜色显示 选项与参数: : <syntaxhighlight lang="bash" highlight=""> [root@study ~]# ls [-aAdfFhilnrRSt] 文件名或目录名称.. [root@study ~]# ls [--color={never,auto,always}] 文件名或目录名称.. [root@study ~]# ls [--full-time] 文件名或目录名称.. 选项与参数: -a :全部的文件,连同隐藏文件( 开头为 . 的文件) 一起列出来(常用) -A :全部的文件,连同隐藏文件,但不包括 . 与 .. 这两个目录 -d :仅列出目录本身,而不是列出目录内的文件数据(常用) -f :直接列出结果,而不进行排序 (ls 默认会以文件名排序!) -F :根据文件、目录等信息,给予附加数据结构,例如: *:代表可可执行文件; /:代表目录; =:代表 socket 文件; |:代表 FIFO 文件; -h :将文件大小以人类较易读的方式(例如 GB, KB 等等)列出来; -i :列出 inode 号码,inode 的意义下一章将会介绍; -l :长数据串行出,包含文件的属性与权限等等数据;(常用) -n :列出 UID 与 GID 而非使用者与群组的名称 (UID与GID会在帐号管理提到!) -r :将排序结果反向输出,例如:原本文件名由小到大,反向则为由大到小; -R :连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来; -S :以文件大小大小排序,而不是用文件名排序; -t :依时间排序,而不是用文件名。 --color=never :不要依据文件特性给予颜色显示; --color=always :显示颜色 --color=auto :让系统自行依据设置来判断是否给予颜色 --full-time :以完整时间模式 (包含年、月、日、时、分) 输出 --time={atime,ctime} :输出 access 时间或改变权限属性时间(ctime)而非内容变更时间(modification time) </syntaxhighlight> === cp === cp 这个指令除了单纯的复制之外,还可以创建链接文件(“快捷方式”),比对两文件的新旧而予以更新,以及复制整个目录等等的功能。 选项与参数: : <syntaxhighlight lang="bash" highlight=""> [root@study ~]# cp [-adfilprsu] 来源文件(source) 目标文件(destination) [root@study ~]# cp [options] source1 source2 source3 .... directory 选项与参数: -a :相当于 -dr --preserve=all 的意思,至于 dr 请参考下列说明;(常用) -d :若来源文件为链接文件的属性(link file),则复制链接文件属性而非文件本身; -f :为强制(force)的意思,若目标文件已经存在且无法打开,则移除后再尝试一次; -i :若目标文件(destination)已经存在时,在覆盖时会先询问动作的进行(常用) -l :进行硬式链接(hard link)的链接文件创建,而非复制文件本身; -p :连同文件的属性(权限、用户、时间)一起复制过去,而非使用默认属性(备份常用); -r :递回持续复制,用于目录的复制行为;(常用) -s :复制成为符号链接文件 (symbolic link),亦即“捷径”文件; -u :destination 比 source 旧才更新 destination,或 destination 不存在的情况下才复制。 --preserve=all :除了 -p 的权限相关参数外,还加入 SELinux 的属性, links, xattr 等也复制了。 最后需要注意的,如果来源文件有两个以上,则最后一个目的文件一定要是“目录”才行! </syntaxhighlight> * 不同身份者执行这个指令会有不同的结果产生,尤其是那个“-a”,“-p”的选项,对于不同身份来说,差异则非常的大。 * 由于 cp 有种种的文件属性与权限的特性,所以,在复制时,你必须要清楚的了解到: ** 是否需要完整的保留来源文件的信息? ** 来源文件是否为链接文件 (symbolic link file)? ** 来源文件是否为特殊的文件,例如 FIFO, socket 等? ** 来源文件是否为目录? === mv === mv 用于移动文件与目录,或更名 选项与参数: : <syntaxhighlight lang="bash" highlight=""> [root@study ~]# mv [-fiu] source destination [root@study ~]# mv [options] source1 source2 source3 .... directory 选项与参数: -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖; -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖! -u :若目标文件已经存在,且 source 比较新,才会更新 (update) </syntaxhighlight> === rm === rm 用于移除文件或目录 选项与参数: : <syntaxhighlight lang="bash" highlight=""> [root@study ~]# rm [-fir] 文件或目录 选项与参数: -f :就是 force 的意思,忽略不存在的文件,不会出现警告讯息; -i :互动模式,在删除前会询问使用者是否动作 -r :递回删除啊!最常用在目录的删除了!【这是非常危险的选项!!!】 </syntaxhighlight> # 删除某个文件外的其他文件: #: <syntaxhighlight lang="bash" highlight=""> yes | rm -rf `ls | grep -v ".well-known "` </syntaxhighlight> === touch === 选项与参数: : <syntaxhighlight lang="bash" highlight=""> </syntaxhighlight> == 通道命令 == == 压缩/解压 == Linux 下常见的压缩包格式有 5 种: zip、tar.gz、tar.bz2、tar.xz、tar.Z; * 其中:tar 是种打包格式,gz / bz2 后缀才是指代压缩方式(gzip / bzip2); * 压缩率一般来说:tar.bz2 > tar.gz > zip > tar;压缩率越高,压缩以及解压的时间也就越长。 === 支持的格式 === {| class="wikitable" ! 格式 !! 命令 |- ! colspan="2" | 常用格式 |- | '''.zip''' | <syntaxhighlight lang="bash" highlight=""> 解压:unzip FileName.zip 压缩:zip FileName.zip DirName </syntaxhighlight> |- | '''.tar ''' | <syntaxhighlight lang="bash" highlight=""> 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName </syntaxhighlight> * 注意:tar 是打包,不是压缩 |- | '''.gz''' | <syntaxhighlight lang="bash" highlight=""> 解压1:gunzip FileName.gz 解压2:gzip -d FileName.gz 压缩:gzip FileName </syntaxhighlight> |- | '''.tar.gz'''和'''.tgz''' | <syntaxhighlight lang="bash" highlight=""> 解压:tar zxvf FileName.tar.gz 压缩:tar zcvf FileName.tar.gz DirName </syntaxhighlight> |- | '''.bz2''' | <syntaxhighlight lang="bash" highlight=""> 解压1:bzip2 -d FileName.bz2 解压2:bunzip2 FileName.bz2 压缩: bzip2 -z FileName </syntaxhighlight> |- | '''.tar.bz2''' | <syntaxhighlight lang="bash" highlight=""> 解压:tar jxvf FileName.tar.bz2 压缩:tar jcvf FileName.tar.bz2 DirName </syntaxhighlight> |- | '''.bz''' | <syntaxhighlight lang="bash" highlight=""> 解压1:bzip2 -d FileName.bz 解压2:bunzip2 FileName.bz </syntaxhighlight> |- | '''.tar.bz''' | <syntaxhighlight lang="bash" highlight=""> 解压:tar jxvf FileName.tar.bz </syntaxhighlight> |- | '''.Z''' | <syntaxhighlight lang="bash" highlight=""> 解压:uncompress FileName.Z 压缩:compress FileName </syntaxhighlight> |- | '''.tar.Z''' | <syntaxhighlight lang="bash" highlight=""> 解压:tar Zxvf FileName.tar.Z 压缩:tar Zcvf FileName.tar.Z DirName </syntaxhighlight> * 注意:“Z”是大写; |- ! colspan="2" | 其他格式 |- | '''.rar''' | <syntaxhighlight lang="bash" highlight=""> 解压:rar x FileName.rar 压缩:rar a FileName.rar DirName </syntaxhighlight> |- | '''.lha''' | <syntaxhighlight lang="bash" highlight=""> 解压:lha -e FileName.lha 压缩:lha -a FileName.lha FileName </syntaxhighlight> |- | '''.rpm''' | <syntaxhighlight lang="bash" highlight=""> 解包:rpm2cpio FileName.rpm | cpio -div </syntaxhighlight> |- | '''.deb''' | <syntaxhighlight lang="bash" highlight=""> 解包:ar p FileName.deb data.tar.gz | tar zxf - </syntaxhighlight> |} === tar === 常用参数说明: {| class="wikitable" style="width:50%;" ! style="width:3%;" | ! style="width:20%;" | 参数 ! style="width:77%;" | 描述 |- | rowspan="5" | 操作类型 | '''-c''' || 建立压缩档案 |- | '''-x''' || 解压 |- | -t || 查看内容 <syntaxhighlight lang="bash" highlight=""> # 查看test包中有哪些文件,但不解压 tar -tvf test.tar </syntaxhighlight> |- | -r || 向压缩归档文件末尾追加文件 <syntaxhighlight lang="bash" highlight=""> # 在test.tar包中增加文件 tar -rf test.tar testfile </syntaxhighlight> * 只针对tar包 |- | -u || 更新原压缩包中的文件 <syntaxhighlight lang="bash" highlight=""> # 更新压缩包中的test文件 tar -uf test.tar --add-file=test </syntaxhighlight> |- | rowspan="3" | 文件格式 | '''-z''' || 有 gzip 属性的(g'''z'''ip 格式,以“.tar.gz”/“.tgz”为扩展名) |- | '''-j''' || 有 bzip2 属性的(以“.tar.bz2”/“.tar.bz”为扩展名) |- | -Z || 有 compress 属性的(以“.Z”为扩展名) |- | rowspan="3" | 其他参数 | '''-v''' || 显示详细过程 |- | '''-f''' || 指定档案名字 * 这个参数是'''必须的'''; * 这个参数'''必须是最后一个参数''',后面只能接档案名。 |- | -O || 将文件解开到标准输出 |- | rowspan="6" | 可选参数 |- | --add-file || 向包中添加文件 <syntaxhighlight lang="bash" highlight=""> # 更新压缩包中的test文件 tar -uf test.tar --add-file=test </syntaxhighlight> * 只针对tar包 |- | --delete || 删除包中文件 <syntaxhighlight lang="bash" highlight=""> # 从test.tar中删除test1文件 tar --delete -f test.tar test1 </syntaxhighlight> |- | --exclude || 排除文件 <syntaxhighlight lang="bash" highlight=""> #打包test目录下所有文件,排除以.log结尾的文件 tar -zcvf test.tar.gz --exclude=test/*.log test/* </syntaxhighlight> |- | --remove-files || 移除源文件 <syntaxhighlight lang="bash" highlight=""> # 压缩后删除源文件 tar -zcvf test.tar.gz test.log --remove-files </syntaxhighlight> |- | --strip-components || 去除目录 <syntaxhighlight lang="bash" highlight=""> # 解压时去掉一层目录 tar -xvf test.tar.gz --strip-components=1 </syntaxhighlight> |} * 关于 tar 的详细命令可以使用以下命令获取: *: <syntaxhighlight lang="bash" highlight=""> tar --help </syntaxhighlight> * 事实上, 从 1.15 版本开始 '''tar 解压时可以自动识别压缩的格式''',故不需人为区分压缩格式就能正确解压: *: <syntaxhighlight lang="bash" highlight=""> tar -xvf filename.tar.gz tar -xvf filename.tar.bz2 tar -xvf filename.tar.xz tar -xvf filename.tar.Z </syntaxhighlight> === zip/unzip === zip 和 unzip 命令主要用于处理zip包。 参数说明: {| class="wikitable" style="width:50%;" ! style="width:20%;" | 参数 ! style="width:80%;" | 描述 |- ! colspan="2" | 压缩 |- | -d || 从压缩文件内删除指定的文件。 |- | -f || 此参数的效果和指定"-u"参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。 |- | -j || 只保存文件名称及其内容,而不存放任何目录名称。 |- | '''-r''' || '''递归处理''',将指定目录下的所有文件和子目录一并处理。 |- | -u || 更换较新的文件到压缩文件内。 |- | '''-v''' || 显示指令执行过程或显示版本信息。 |- | -y || 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。 |- | - <压缩效率> || 压缩效率是一个介于 '''1-9''' 的数值。 |- ! colspan="2" | 解压 |- | '''-l''' || 显示压缩文件内所包含的文件 |- | -j || 只保存文件名称及其内容,而不存放任何目录名称。 |- | -o || 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该 |- | '''-v''' || 显示指令执行过程或显示版本信息。 |- | '''-d''' || '''指定解压目录''',目录不存在会创建 |} 示例: # 压缩: #: <syntaxhighlight lang="bash" highlight=""> #打包test目录下的文件 zip -r test.zip test/ #打包test目录下文件,且压缩包不带test目录 zip -rj test.zip test/ # 指定压缩率打包文件:数值(1-9)越大,压缩率越高,耗时越长 zip -r8 test.zip test/* # 打包符号链接文件 zip -ry test.zip test # 向压缩包中增加或更新文件test2 zip -u test.zip test2 # 压缩时加密,密码为66666 zip -r test.zip test1 test -P 66666 # 删除压缩包的特定文件 test zip -d test.zip test </syntaxhighlight> # 解压: #: <syntaxhighlight lang="bash" highlight=""> # 查看压缩包中的文件信息 # 1、可以看到压缩包中的文件名,日期等信息 unzip -l test.zip # 2、查看更多信息,例如crc校验信息等 unzip -v test.zip # 解压压缩包,到dir目录 unzip -o test.zip -d dir # 解压包中指定的文件(如果不知道需要解压的文件名,可先查看包中的文件) # 1、解压包中的 1.log 文件到 dir 目录 unzip -o test.zip "1.log" -d dir # 2、解压包中所有的 log 文件 unzip -o tet.zip "*.log" -d dir # 解压时去掉目录结构 zip -oj test.zip -d ./temp # 解压jar包 unzip -o java.jar -d dir </syntaxhighlight> === gzip === tar命令带有 -z 参数,并且打包成 tar.gz 文件时,便调用 gzip 进行了压缩。 * gzip对文本的压缩率约有 60%~70%,压缩包文件常以 gz 为后缀。 参数说明: {| class="wikitable" ! 参数 !! 描述 |- | -k || 保留源文件 |- | -d || 解开压缩文件 |- | -r || 递归处理,将指定目录下的所有文件及子目录一并处理 |- | -v || 显示指令执行过程 |} 示例: <syntaxhighlight lang="bash" highlight=""> # 使用 -k 参数保留源文件 # 1、对当前目录下所有文件进行压缩,每个文件一个gz包 gzip -k ./* # 2、递归压缩 gzip -rkv ./* # 解压 gzip -dv test.gz </syntaxhighlight> === bzip2 === tar 命令使用 '''-j''' 参数将文件打包为 tar.bz2 时,便调用了 bzip2 进行压缩。 * bzip2 压缩或解压后,'''会将源文件删除'''。 示例:如果需要保留源文件,可使用 '''-k''' 参数 <syntaxhighlight lang="bash" highlight=""> # 压缩test文件 bzip2 -zk test # 解压 bzip2 -dk test.bz2 </syntaxhighlight> === rar/unrar === rar 和 unrar 命令并非 linux 发行版自带命令,需要另外安装。 示例: <syntaxhighlight lang="bash" highlight=""> # 压缩:将test文件压缩为test.tar rar a test.tar test # 解压 test.tar rar e test.rar # 解压 test.tar unrar x test.rar </syntaxhighlight> == 其他命令 == {| class="wikitable" ! 命令 !! 说明 |- | start X | 进入图形界面 |- | shutdown -h now | 立即关机 # poweroff 关机(poweroff -f 强制关机) |- | shutdown -r now | 立即重启 |- | logout | 注销 |- | man 命令 | 显示命令的用法 |- | history | 显示命令历史记录 # history 5:显示最近使用的5个历史命令 执行历史命令: # !5:执行历史编号为5的命令 # !ls:执行最后一次以ls开头的命令 |- | env | 显示当前系统的环境变量 |- | | |} * “tab”键:双击命令提示,单机补全(当前目录下有的)文件名称。 === 超级管理员 === 当前用户下使用超级管理员(root): <syntaxhighlight lang="bash"> su - root </syntaxhighlight> === 关机 === # shutdown -h now # poweroff Note: # 用poweroff,三个机器(问题与系统无关,centos、Debian、suse)都出现了 #: <syntaxhighlight lang="bash"> “System has not been booted with systemd as init system (PID 1). Can't operate.” </syntaxhighlight> #: 需要“sudo poweroff -f”才能关键 === 清屏 === 在windows的DOS操作界面里面,清屏的命令是cls,那么在linux 里面的清屏命令是什么呢? # '''clear''':这个命令将会刷新屏幕,本质上只是'''让终端显示页向后翻了一页''',如果向上滚动屏幕还可以看到之前的操作信息。 # '''Ctrl+l'''(小写的L):这是一个清屏的快捷键,工作中用得最多的一种清屏方式。【效果同 '''clear'''】。 # '''reset''':这个命令将'''完全刷新终端屏幕''',之前的终端输入操作信息将都会被清空,这样虽然比较清爽,但整个命令过程速度有点慢,使用较少。 #* 值得一提的是 reset 命令在你的终端控制错乱时非常有用。 #*: 如:“输入字符不出现在光标的位置的情况。还有当你敲击回车键时,新提示符并没有出现在新行上,而是出现在老提示符的前面”。此时reset命令就能用来修正这些问题。 # '''printf "\033c"''':这个命令它才是'''真正的清空了终端屏幕''',它的功能跟 DOS 里 CMD.EXE 提供的 CLS 效果很相似。 ==== 关于“printf "\033c"” ==== 这个命令究竟是做什么的?它的工作原理是什么? <pre> \033 == \x1B == 27 == ESC </pre> 即这个命令变成了 <ESC>c,它是 VT-XXX 中表示“Full Reset (RIS)”的转义码。<br/> 它的另一种实现方式也可以这样: : 键盘上:“Ctrl+v--->Esc-->输入c再回加”。 #(现今我们使用的所有的终端都是VT兼容的) # 但如果你发现自己使用的是一个非常奇怪的终端(如putty),那这个命令可能用不了。 * printf 是 bash 里内置的命令,内置命令的优先级比其它可执行文件要高。 ==== 为命令设置快捷方式 ==== 在 PATH 路径下,如 /usr/bin/ 目录下。新建一个名为 '''cls''' 的文件,加上执行权限,写入如入内容: <syntaxhighlight lang="bash"> [root@iZbp168 bin]# vim cls #!/bin/bash # printf "\033c" </syntaxhighlight> 这样每次需要清屏的时候,只需要输入cls命令就可以了。
返回至“
【Linux 常用命令】
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息