Linux命令大全(超详细理解每个命令)
ls 命令是Linux下最常用的指令之一。ls命令为英文单词 list 的缩写,正如英文单词 list 的意思,其功能是列出指定目录下的内容及其相关属性信息。
默认状态下,ls命令会列出当前目录的内容。而带上参数后,我们可以用ls做更多的事情。作为最基础同时又是使用频率很高的命令,我们很有必要搞清楚ls命令的用法,那么接下来一起看看吧!
语法格式: ls [选项] [文件]
常用参数:
| 参数名 | 解释 |
|---|---|
| -a | 显示所有文件及目录 (包括以“.”开头的隐藏文件) |
| -l | 使用长格式列出文件及目录信息 |
| -r | 将文件以相反次序显示(默认依英文字母次序) |
| -t | 根据最后的修改时间排序 |
| -A | 同 -a ,但不列出 “.” (当前目录) 及 “…” (父目录) |
| -S | 根据文件大小排序 |
| -R | 递归列出所有子目录 |
参考实例
列出所有文件(包括隐藏文件):
[root@admin~]# ls -a
列出文件的详细信息:
[root@admin~]# ls -l
([root@admin~]# ll简写)
列出根目录(/)下的所有目录:
[root@admin~]# ls /
列出当前工作目录下所有名称是 “s” 开头的文件 :
[root@admin~]# ls -ltr s*
列出 /bin 目录下的所有目录及文件的详细信息 :
[root@admin~]# ls -lR /bin
列出当前工作目录下所有文件及目录并以文件的大小进行排序 :
[root@admin~]# ls -AS
cp命令可以理解为英文单词copy的缩写,其功能为复制文件或目录。
cp命令可以将多个文件复制到一个具体的文件名或一个已经存在的目录下,也可以同时复制多个文件到一个指定的目录中。
语法格式:cp [参数] [文件]
常用参数:
| 参数名 | 解释 |
|---|---|
| -f | 若目标文件已存在,则会直接覆盖原文件 |
| -i | 若目标文件已存在,则会询问是否覆盖 |
| -p | 保留源文件或目录的所有属性 |
| -r | 递归复制文件和目录 |
| -d | 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录 |
| -l | 对源文件建立硬连接,而非复制文件 |
| -s | 对源文件建立符号连接,而非复制文件 |
| -b | 覆盖已存在的文件目标前将目标文件备份 |
| -v | 详细显示cp命令执行的操作过程 |
| -a | 等价于“dpr”选项 |
参考实例
复制目录:
[root@admin~]# cp -R dir1 dir2/
将文件test1改名为test2:
[root@admin~]# cp -f test1 test2
复制多个文件:
[root@admin~]# cp -r file1 file2 file3 dir
交互式地将目录 /usr/linuxcool 中的所有.c文件复制到目录 dir 中:
[root@admin~]# cp -r /usr/linuxcool/*.c dir
复制test目录下的file.txt文件到test1目录下
[root@localhost~]# cp /tmp/test/file.txt /tmp/test1
移动test目录下的file.txt文件到test1目录下
[root@localhost~]# mv test/file.txt test1
mkdir命令是“make directories”的缩写,用来创建目录。
注意:默认状态下,如果要创建的目录已经存在,则提示已存在,而不会继续创建目录。 所以在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。 mkdir命令还可以同时创建多个目录,是不是很强大呢?
语法格式 : mkdir [参数] [目录]
常用参数:
| 参数名 | 解释 |
|---|---|
| -p | 递归创建多级目录 |
| -m | 建立目录的同时设置目录的权限 |
| -z | 设置安全上下文 |
| -v | 显示目录的创建过程 |
| -R | 强制创建目录 |
参考实例
[root@admin~]# mkdir dir[root@admin~]# mkdir -m 700 /usr/linuxcool/dir[root@admin~]# mkdir dir1 dir2 dir3[root@admin~]# mkdir -p linuxcool/dir[root@admin~]# mkdir a{1..5}[root@admin~]# mkdir -R /tmp/h//d/b/dmv命令是“move”单词的缩写,其功能大致和英文含义一样,可以移动文件或对其改名。
这是一个使用频率超高的文件管理命令,我们需要特别留意它与复制的区别:mv与cp的结果不同。mv命令好像文件“搬家”,文件名称发生改变,但个数并未增加。而cp命令是对文件进行复制操作,文件个数是有增加的。
语法格式:mv [参数]
常用参数:
| 参数名 | 解释 |
|---|---|
| -i | 若存在同名文件,则向用户询问是否覆盖 |
| -f | 覆盖已有文件时,不进行任何提示 |
| -b | 当文件存在时,覆盖前为其创建一个备份 |
| -u | 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作 |
参考实例
[root@admin~]# mv file_1 file_2[root@admin~]# mv file /dir[root@admin~]# mv /dir1 /dir2[root@admin~]# mv /dir1/* .pwd命令是“print working directory”中每个单词的首字母缩写,其功能正如所示单词一样,为打印工作目录,即显示当前工作目录的绝对路径。
在实际工作中,我们经常会在不同目录之间进行切换,为了防止“迷路”,我们可以使用pwd命令快速查看当前我们所在的目录路径。
语法格式: pwd [参数]
常用参数:
| 参数名 | 解释 |
|---|---|
| -L | 显示逻辑路径 |
参考实例
[root@admin~]# pwd/home/admin[root@localhost~]# head -2 file.txtmore命令用于将内容较长的文本文件内容(不能在一屏显示完)进行分屏显示,并且支持在显示时定位关键字。而对于内容较少的文本文件内容则推荐使用cat命令查看。
常用参数:
| 参数名 | 解释 |
|---|---|
| -num | 指定每屏显示的行数 |
| -l | more在通常情况下把 ^L 当作特殊字符, 遇到这个字符就会暂停,-l选项可以阻止这种特性 |
| -f | 计算实际的行数,而非自动换行的行数 |
| -p | 先清除屏幕再显示文本文件的剩余内容 |
| -c | 与-p相似,不滚屏,先显示内容再清除旧内容 |
| -s | 多个空行压缩成一行显示 |
| -u | 禁止下划线 |
| +/pattern | 在每个文档显示前搜寻该字(pattern),然后从该字串之后开始显示 |
| +num | 从第 num 行开始显示 |
命令内部操作:
[root@admin~]# more -dc file[root@admin~]# more -c -10 file[root@admin~]# more -p -5 file[root@admin~]# more -s file[root@admin~]# more +20 file浏览文字档案的内容,用less命令显示文件时,PageUp键向上翻页,PageDown键向下翻页,要退出less程序,应按Q键。
less的作用与more十分相似,不同点为less命令允许用户向前或向后浏览文件,而more命令只能向前浏览 。
常用参数:
| 参数名 | 解释 |
|---|---|
| -b | 置缓冲区的大小 |
| -e | 当文件显示结束后,自动离开 |
| -f | 强迫打开特殊文件,例如外围设备代号、目录和二进制文件 |
| -g | 只标志最后搜索的关键词 |
| -i | 忽略搜索时的大小写 |
| -m | 显示类似more命令的百分比 |
| -N | 显示每行的行号 |
| -o | 将less 输出的内容在指定文件中保存起来 |
| -Q | 不使用警告音 |
| -s | 显示连续空行为一行 |
| -S | 在单行显示较长的内容,而不换行显示 |
| -x | 将TAB字符显示为指定个数的空格字符 |
命令内部操作:
[root@admin~]# less test.php[root@admin~]# ps -ef |less[root@admin~]# history | less22 scp -r tomcat6.0.32 root@192.168.120.203:/opt/soft 23 cd ..
24 scp -r web root@192.168.120.203:/opt/
25 cd soft
……省略……
[root@admin~]# less log2018.log log2019.log[root@admin~]# less file1:e file2Linux系统中有很多个用于查看文件内容的命令,每个命令又都有自己的特点,比如这个cat命令就是用于查看内容较少的纯文本文件的。cat这个命令也很好记,因为cat在英语中是“猫”的意思,小猫咪是不是给您一种娇小、可爱的感觉呢?
注意:当文件内容较大时,文本内容会在屏幕上快速闪动(滚屏),用户往往看不清所显示的具体内容。因此对于较长文件内容可以按Ctrl+S键,停止滚屏;以及Ctrl+Q键可以恢复滚屏;而按Ctrl+C(中断)键则可以终止该命令的执行。或者对于大文件,干脆用more命令吧!
**语法格式:**cat [参数] [文件]
常用参数:
| 参数名 | 解释 |
|---|---|
| -n | 显示行数(空行也编号) |
| -s | 显示行数(多个空行算一个编号) |
| -b | 显示行数(空行不编号) |
| -E | 每行结束处显示$符号 |
| -T | 将TAB字符显示为 ^I符号 |
| -v | 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外 |
| -e | 等价于”-vE”组合 |
| -t | 等价于”-vT”组合 |
| -A | 等价于 -vET组合 |
| –help | 显示帮助信息 |
| –version | 显示版本信息 |
参考实例
[root@admin~]# cat filename.txt[root@admin~]# cat -n filename.txt[root@admin~]# cat -n linuxcool.log > linuxprobe.log[root@admin~]# cat /dev/null > /root/filename.txt[root@admin~]# cat > filename.txt <<EOFHello, World
Linux!
EOF
[root@linuxcool ~]# cat /dev/fd0 > fdisk.isoecho命令用于在终端设备上输出字符串或变量提取后的值,这是在Linux系统中最常用的几个命令之一,但操作却非常简单。
人们一般使用在变量前加上 符 号 的 方 式 提 取 出 变 量 的 值 , 例 如 : 符号的方式提取出变量的值,例如: 符号的方式提取出变量的值,例如:PATH,然后再用echo命令予以输出。或者直接使用echo命令输出一段字符串到屏幕上,起到给用户提示的作用。
语法格式: echo [参数] [字符串]
常用参数:
| 参数名 | 解释 |
|---|---|
| -n | 不输出结尾的换行符 |
| -e “\a” | 发出警告音 |
| -e “\b” | 删除前面的一个字符 |
| -e “\c” | 结尾不加换行符 |
| -e “\f” | 换行,光标扔停留在原来的坐标位置 |
| -e “\n” | 换行,光标移至行首 |
| -e “\r” | 光标移至行首,但不换行 |
| -E | 禁止反斜杠转移,与-e参数功能相反 |
| —version | 查看版本信息 |
| –help | 查看帮助信息 |
参考实例
[root@admin~]# echo ’admin.com‘[root@admin~]# echo $PATH[root@admin~]# echo \$PATH[root@admin~]# echo "It is a test" > admin[root@admin~]# echo `date[root@admin~]# echo -e "a\nb\nc"[root@admin~]# echo -e "123\b456"rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。 rm也是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。
语法格式: rm [参数] [文件]
常用参数:
| 参数名 | 解释 |
|---|---|
| -f | 忽略不存在的文件,不会出现警告信息 |
| -i | 删除前会询问用户是否操作 |
| -r/R | 递归删除 |
| -v | 显示指令的详细执行过程 |
参考实例
[root@admin~]# rm -i test.txt.bz2[root@admin~]# rm -f test.txt.bz2[root@admin~]# mkdir /data/log[root@admin~]# rm -rf /data/log[root@admin~]# rm -rf *[root@admin~]# rm -rf /*tail用于显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。
语法格式:tail [参数]
常用参数:
| 参数名 | 解释 |
|---|---|
| –retry | 即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用 |
| -c或——bytes= | 输出文件尾部的N(N为整数)个字节内容 |
| -f<name/descriptor> --follow: | 显示文件最新追加的内容 |
| -F | 与选项“-follow=name”和“–retry”连用时功能相同 |
| -n< N>或——line=< N> | 输出文件的尾部N(N位数字)行内容 |
| –pid=<进程号> | 与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令 |
| -f | 循环读取 |
| -q | 不显示文件名信息 |
| -v | 显示文件名信息 |
| –help | 显示指令的帮助信息 |
| –version | 显示指令的版本信息 |
参考实例
[root@admin~ ] tail file[root@admin~ ] tail +20 file[root@admin~ ] tail -c 10 file[root@admin~ ] tail -f 10 file[root@admin~ ] tail --helpgrep是“global search regular expression and print out the line”的简称,意思是全面搜索正则表达式,并将其打印出来。这个命令可以结合正则表达式使用,它也是linux使用最为广泛的命令。
grep命令的选项用于对搜索过程的补充,而其命令的模式十分灵活,可以是变量、字符串、正则表达式。需要注意的是:一当模式中包含了空格,务必要用双引号将其引起来。
linux系统支持三种形式的grep命令,大儿子就是grep,标准,模仿的代表。二儿子兴趣爱好多-egrep,简称扩展grep命令,其实和grep -E等价,支持基本和扩展的正则表达式。小儿子跑的最快-fgrep,简称快速grep命令,其实和grep -F等价,不支持正则表达式,按照字符串表面意思进行匹配。
语法格式: grep [参数]
常用参数:
| 参数名 | 解释 |
|---|---|
| -i | 搜索时,忽略大小写 |
| -c | 只输出匹配行的数量 |
| -l | 只列出符合匹配的文件名,不列出具体的匹配行 |
| -n | 列出所有的匹配行,显示行号 |
| -h | 查询多文件时不显示文件名 |
| -s | 不显示不存在、没有匹配文本的错误信息 |
| -v | 显示不包含匹配文本的所有行 |
| -w | 匹配整词 |
| -x | 匹配整行 |
| -r | 递归搜索 |
| -q | 禁止输出任何结果,已退出状态表示搜索是否成功 |
| -b | 打印匹配行距文件头部的偏移量,以字节为单位 |
| -o | 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位 |
参考实例
支持多文件查询并支持使用通配符:
[root@admin~]# grep zwx file_* /etc/hosts
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
file_2:zwx
file_4:dkfjlzwxejfkje
file_4:zwx djfkdjf
file_4:zwxedkfgj
输出匹配字符串行的数量:
[root@admin~]$ grep -c zwx file_*
file_1:2
file_2:1
file_3:0
列出所有的匹配行,并显示行号:
[root@admin~]# grep -n zwx file_*
file_1:1:zwx
file_1:4:zwx
file_1:10:zwxddkjflkdjfdlkfjlsdkj
file_2:2:zwx
file_4:3:dkfjlzwxejfkje
file_4:4:zwx djfkdjf
file_4:5:zwxedkfgj
显示不包含模式的所有行:
[root@admin~]# grep -vc zwx file_*
file_1:7
file_2:4
file_3:5
file_4:2
不再显示文件名:
[root@admin~]# grep -h zwx file_*
zwx
zwx
zwxddkjflkdjfdlkfjlsdkj
zwx
dkfjlzwxejfkje
zwx djfkdjf
zwxedkfgj
只列出符合匹配的文件名,不列出具体匹配的行:
[root@admin~]# grep -l zwx file_*
file_1
file_2
file_4
不显示不存在或无匹配的文本信息:
[root@admin~]# grep -s zwx file1 file_1
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
[root@admin~]# grep zwx file1 file_1
grep: file1: No such file or directory
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
递归搜索,不仅搜索当前目录,还搜索子目录:
[root@admin~]# grep -r zwx file_2 *
file_2:zwx
anaconda-ks.cfg:user --name=zwx --gecos=“zwx”
file_1:zwx
file_1:zwx
file_1:zwxddkjflkdjfdlkfjlsdkj
file_2:zwx
file_4:dkfjlzwxejfkje
file_4:zwx djfkdjf
file_4:zwxedkfgj
initial-setup-ks.cfg:user --name=zwx --gecos=“zwx”
匹配整词,以字面意思去解释他,相当于精确匹配:
[root@admin~]# grep zw* file_1
zwx
zwx
zdkfjeld
zw
ze
zwxddkjflkdjfdlkfjlsdkj
[root@linuxcool ~]# grep -w zw* file_1
zw
匹配整行,文件中的整行与模式匹配时,才打印出来:
[root@admin~]# grep -x zwx file_*
file_1:zwx
file_1:zwx
file_2:zwx
不输出任何结果,已退出状态表示结果:
[root@admin~]# grep -q zwx file_1
[root@admin~]# echo $?
0
[root@admin~]# grep -q zwx file_5
[root@admin~]# echo $?
1
[root@admin~]# grep -q zwx file5
grep: file5: No such file or directory
[root@admin~]# echo $?
2
查找一个文件中的空行和非空行:
[root@admin~]# grep -c ^$ file_1
4
[root@admin~]# grep -c ^[^$] file_1
15
匹配任意或重复字符用“.”或“*”符号来实现:
[root@admin~]# grep ^z.x file_1
zwx
zwx
zwxddkjflkdjfdlkfjlsdkj
[root@admin~]# grep ^z* file_6
zwx
dfkjd
zzdfjkd
zz dfdww
haha
使用指令touch时,如果指定的文件不存在,则将创建一个新的 空白文件
使用指令touch时,如果指定的文件存在,则变更文件的日期属 性
[root@localhost~]# touch file.txt[root@localhost~]# touch file{1..5}.txtvi是Linux系统上的第一个全屏模式编辑器,它用法简单,而且 所占空间不大,操作灵活无比。
[root@localhost~]# vi filename[root@localhost~]# vi +n filename[root@localhost~]# vi + filename[root@localhost~]# vi -r filenamevi在命令模式下的参数
i保存退出命令(末行模式用于保存内容、查找替换、设置行号等 功能性操作)
| 参数名 | 解释 |
|---|---|
| :q : | 退出 |
| :wq | 保存并退出 |
| :w | 保存编辑内容 |
| :q! | 强制退出 |
| :wq! | 强制保存并退出 |
| :set number或:set nu | 显示行号 |
| :set nonumber或:set nonu | 取消显示行号 |
复制粘贴 (命令模式下)
剪切与删除(命令模式下)
快捷操作(命令模式下)
搜索
替换
撤销
其它命令
rpm命令是Red-Hat Package Manager(RPM软件包管理器)的缩写, 该命令用于管理Linux 下软件包的软件。在 Linux 操作系统下,几乎所有的软件均可以通过RPM 进行安装、卸载及管理等操作。
概括的说,rpm命令包含了五种基本功能:安装、卸载、升级、查询和验证
语法格式:rpm [参数] [软件包]
常用参数:
| 参数名 | 解释 |
|---|---|
| -a | 查询所有的软件包 |
| -b或-t | 设置包装套件的完成阶段,并指定套件档的文件名称; |
| -c | 只列出组态配置文件,本参数需配合”-l”参数使用 |
| -d | 只列出文本文件,本参数需配合”-l”参数使用 |
| -e或–erase | 卸载软件包 |
| -f | 查询文件或命令属于哪个软件包 |
| -h或–hash | 安装软件包时列出标记 |
| -i | 显示软件包的相关信息 |
| –install | 安装软件包 |
| -l | 显示软件包的文件列表 |
| -p | 查询指定的rpm软件包 |
| -q | 查询软件包 |
| -R | 显示软件包的依赖关系 |
| -s | 显示文件状态,本参数需配合”-l”参数使用 |
| -U或–upgrade | 升级软件包 |
| -v | 显示命令执行过程 |
| -vv | 详细显示指令执行过程 |
参考实例
[root@admin~]# rpm -ivh packge.rpm[root@admin~]# rpm --force -ivh package.rpm[root@admin~]# rpm -qa[root@admin~]# rpm -ql ls[root@admin~]# rpm -e package.rpm[root@admin~]# rpm -U file.rpmfind命令可以根据给定的路径和表达式查找的文件或目录。find参数选项很多,并且支持正则,功能强大。和管道结合使用可以实现复杂的功能,是系统管理者和普通用户必须掌握的命令。
find如不加任何参数,表示查找当前路径下的所有文件和目录,如果服务器负载比较高尽量不要在高峰期使用find命令,find命令模糊搜索还是比较消耗系统资源的。
语法格式:find [参数] [路径] [查找和搜索范围]
常用参数:
| 参数名 | 解释 |
|---|---|
| -name | 按名称查找 |
| -size | 按大小查找 |
| -user | 按属性查找 |
| -type | 按类型查找 |
| -iname | 忽略大小写 |
参考实例
[root@admin~]# find /etc -name "*.conf[root@admin~]# find /etc -size +1M[root@admin~]# find $HOME -print[root@admin~]# find .[root@admin~]# find /home -name "*.txt"[root@admin~]# find /var/log -iname "*.log"[root@admin~]# find . -type f -atime +7[root@admin~]# find . -type f -amin +10[root@admin~]# find /home ! -name "*.txt"uname命令的英文全称即“Unix name”。
用于显示系统相关信息,比如主机名、内核版本号、硬件架构等。
如果未指定任何选项,其效果相当于执行”uname -s”命令,即显示系统内核的名字。
语法格式:uname [参数]
常用参数:
| 参数名 | 解释 |
|---|---|
| -a | 显示系统所有相关信息 |
| -m | 显示计算机硬件架构 |
| -n | 显示主机名称 |
| -r | 显示内核发行版本号 |
| -s | 显示内核名称 |
| -v | 显示内核版本 |
| -p | 显示主机处理器类型 |
| -o | 显示操作系统名称 |
| -i | 显示硬件平台 |
参考实例
[root@admin~]# uname -a[root@admin~]# uname -n[root@admin~]# uname -r[root@admin~]# uname -iuseradd命令 用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
在Slackware中,adduser指令是个script程序,利用交谈的方式取得输入的用户帐号资料,然后再交由真正建立帐号的useradd命令建立新用户,如此可方便管理员建立用户帐号。在Red Hat Linux中, adduser命令 则是useradd命令的符号连接,两者实际上是同一个指令。
语法
useradd(选项)(参数)
| 参数名 | 解释 |
|---|---|
| -c<备注> | 加上备注文字。备注文字会保存在passwd的备注栏位中; |
| -d<登入目录> | 指定用户登入时的启始目录; |
| -D | 变更预设值; |
| -e<有效期限> | 指定帐号的有效期限; |
| -f<缓冲天数> | 指定在密码过期后多少天即关闭该帐号; |
| -g<群组> | 指定用户所属的群组; |
| -G<群组> | 指定用户所属的附加群组; |
| -m | 自动建立用户的登入目录; |
| -M | 不要自动建立用户的登入目录; |
| -n | 取消建立以用户名称为名的群组; |
| -r | 建立系统帐号; |
| -s | 指定用户登入后所使用的shell; |
| -u | 指定用户id。 |
实例
[root@admin~]# useradd –g sales jack –G company,employees[root@admin~]# useradd caojh -u 544usermod命令 用于修改用户的基本信息。usermod 命令不允许你改变正在线上的使用者帐号名称。当 usermod 命令用来改变user id,必须确认这名user没在电脑上执行任何程序。你需手动更改使用者的 crontab 档。也需手动更改使用者的 at 工作档。采用 NIS server 须在server上更动相关的NIS设定。
语法
usermod(选项)(参数)
选项
| 参数名 | 解释 |
|---|---|
| -c<备注> | 修改用户帐号的备注文字; |
| -d<登入目录> | 修改用户登入时的目录,只是修改/etc/passwd中用户的家目录配置信息,不会自动创建新的家目录,通常和-m一起使用; |
| -m<移动用户家目录> | 移动用户家目录到新的位置,不能单独使用,一般与-d一起使用。 |
| -e<有效期限> | 修改帐号的有效期限; |
| -f<缓冲天数> | 修改在密码过期后多少天即关闭该帐号; |
| -g<群组> | 修改用户所属的群组; |
| -G<群组> | 修改用户所属的附加群组; |
| -l<帐号名称> | 修改用户帐号名称; |
| -L | 锁定用户密码,使密码无效; |
| -s | 修改用户登入后所使用的shell; |
| -u | 修改用户ID; |
| -U | 解除密码锁定。 |
参数
登录名:指定要修改信息的用户登录名。
实例
usermod -G staff newuser2usermod -l newuser1 newuserusermod -L newuser1usermod -U newuser1apk add shadow # 安装 shadow 包, usermod 命令包含在 usermod 中usermod -aG group user # 添加用户到用户组中修改用户家目录:
[root@node-1 ~]# useradd lutixiaya
[root@node-1 ~]# ls /home
lutixiaya
[root@node-1 ~]# usermod -md /data/new_home lutixiaya
[root@node-1 ~]# ls /home/
[root@node-1 ~]# ls /data/
new_home
userdel命令 用于删除给定的用户,以及与用户相关的文件。若不加选项,则仅删除用户帐号,而不删除相关文件。
语法
userdel(选项)(参数)
选项
| 参数名 | 解释 |
|---|---|
| -f | 强制删除用户,即使用户当前已登录; |
| -r | 删除用户的同时,删除与用户相关的所有文件。 |
参数
用户名:要删除的用户名。
实例
userdel命令很简单,比如我们现在有个用户linuxde,其家目录位于/var目录中,现在我们来删除这个用户:
[root@node-1 ~]# userdel linuxde # 删除用户linuxde,但不删除其家目录及文件;
[root@node-1 ~]# userdel -r linuxde # 删除用户linuxde,其家目录及文件一并删除;
请不要轻易用-r选项;他会删除用户的同时删除用户所有的文件和目录,切记如果用户目录下有重要的文件,在删除前请备份。
其实也有最简单的办法,但这种办法有点不安全,也就是直接在/etc/passwd中删除您想要删除用户的记录;但最好不要这样做,/etc/passwd是极为重要的文件,可能您一不小心会操作失误。
usernetctl命令在用于被允许时操作指定的网络接口。在使用上和”ifup”、”ifon”命令有些类似。
语法格式:usernetctl [参数] [网络接口]
常用参数:
| 参数名 | 解释 |
|---|---|
| up | 激活网络接口 |
| down | 禁用网络接口 |
| report | 报告网络接口 |
参考实例
[root@admin~]# usernetctl enp1s0 up[root@admin~]# usernetctl enp1s0 down[root@admin~]# usernetctl enp1s0 report语法
chage [选项] 用户名
选项
| 参数名 | 解释 |
|---|---|
| -m | 密码可更改的最小天数。为零时代表任何时候都可以更改密码。 |
| -M | 密码保持有效的最大天数。 |
| -w | 用户密码到期前,提前收到警告信息的天数。 |
| -E | 帐号到期的日期。过了这天,此帐号将不可用。 |
| -d | 上一次更改的日期。 |
| -i | 停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。 |
| -l | 例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。 |
实例
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@admin~]# chage -l root
最近一次密码修改时间 : 3月 12, 2013
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
[root@admin~]# chage -M 60 root[root@admin~]# chage -l root最近一次密码修改时间 : 3月 12, 2013
密码过期时间 : 5月 11, 2013
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :60
在密码过期之前警告的天数 :9
[root@admin~]# chage -I 5 root
[root@admin~]# chage -l root
最近一次密码修改时间 : 3月 12, 2013
密码过期时间 : 5月 11, 2013
密码失效时间 : 5月 16, 2013
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :60
在密码过期之前警告的天数 :9
从上述命令可以看到,在密码过期后5天,密码自动失效,这个用户将无法登陆系统了。
语法
chattr(选项)
选项
| 参数名 | 解释 |
|---|---|
| a | 让文件或目录仅供附加用途; |
| b | 不更新文件或目录的最后存取时间; |
| c | 将文件或目录压缩后存放; |
| d | 将文件或目录排除在倾倒操作之外; |
| i | 不得任意更动文件或目录; |
| s | 保密性删除文件或目录; |
| S | 即时更新文件或目录; |
| u | 预防意外删除。 |
| -R | 递归处理,将指令目录下的所有文件及子目录一并处理; |
| -v<版本编号> | 设置文件或目录版本; |
| -V | 显示指令执行过程; |
| +<属性> | 开启文件或目录的该项属性; |
| -<属性> | 关闭文件或目录的该项属性; |
| =<属性> | 指定文件或目录的该项属性。 |
实例
[root@admin~]# chattr +i /etc/fstab[root@admin~]# chattr +a /data1/user_act.logchown命令 改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。用户可以是用户或者是用户D,用户组可以是组名或组id。文件名可以使由空格分开的文件列表,在文件名中可以包含通配符。
只有文件主和超级用户才可以便用该命令。
语法
chown(选项)(参数)
选项
| 参数名 | 解释 |
|---|---|
| -c或——changes | 效果类似“-v”参数,但仅回报更改的部分; |
| -f或–quite或——silent | 不显示错误信息; |
| -h或–no-dereference | 只对符号连接的文件作修改,而不更改其他任何相关文件; |
| -R或——recursive | 递归处理,将指定目录下的所有文件及子目录一并处理; |
| -v或——version | 显示指令执行过程; |
| –dereference | 效果和“-h”参数相同; |
| –help | 在线帮助 |
| –version | 显示版本信息。 |
参数
用户:组:指定所有者和所属工作组。当省略“:组”,仅改变文件所有者;
文件:指定要改变所有者和工作组的文件列表。支持多个文件和目标,支持shell通配符。
实例
[root@admin~]# chown -R liu /usr/meng[root@admin~]# chown -R linuxcool:linuxcoolgroup *hgrp是英语单词“change group”的缩写,命令的作用和其中文释义一样,为用于变更文件或目录的所属群组。
语法格式: chgrp [参数] [目录]
常用参数:
| 参数名 | 解释 |
|---|---|
| -c | 效果类似”-v”参数,但仅回报更改的部分 |
| -f | 不显示错误信息 |
| -h | 对符号连接的文件作修改,而不更动其他任何相关文件 |
| -R | 递归处理,将指定目录下的所有文件及子目录一并处理 |
| -v | 显示指令执行过程 |
| –reference | 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同 |
参考实例
[root@admin~]# chgrp -v linuxcool file[root@admin~]# chgrp --reference=file_1 file_2[root@admin~]# chgrp -R cool /usr/linuxcoolchmod命令的英文原意是“change the permissions mode of a file”,我们简称为“change mode”,意为用来改变文件或目录权限的命令,但是只有文件的属主和超级用户root才能执行这个命令。有两种模式,一种是采用权限字母和操作符表达式;另一种是采用数字。
语法格式: chmod [参数] [文件]
常用参数:
| 参数名 | 解释 |
|---|---|
| -c | 若该文件权限确实已经更改,才显示其更改动作 |
| -f | 若该文件权限无法被更改也不显示错误讯息 |
| -v | 显示权限变更的详细资料 |
| -R | 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更) |
参考实例
[root@admin~]# chmod a+r file.txt[root@admin~]# chmod -R a+r *[root@admin~]# chmod u+x file.txt[root@admin~]# chmod 777 file.txtgroupmod命令用于更改群组的识别码或名称时。不过大家还是要注意,用户名不要随意修改,组名和 GID 也不要随意修改,因为非常容易导致管理员逻辑混乱。如果非要修改用户名或组名,则建议大家先删除旧的,再建立新的。
语法格式:groupmod [参数]
常用参数:
| 参数名 | 解释 |
|---|---|
| -g | 设置欲使用的群组识别码 |
| -o | 重复使用群组识别码 |
| -n | 设置欲使用的群组名称 |
参考实例
[root@admin~]# groupmod -n root admin[root@localhosthome]# groupmod -g 603 user1[root@localhosthome]# groupmod -n user5 user1groupadd命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。
语法格式:groupadd [参数]
常用参数:
| 参数名 | 解释 |
|---|---|
| -g | 指定新建工作组的id |
| -r | 创建系统工作组,系统工作组的组ID小于500 |
| -K | 覆盖配置文件“/ect/login.defs” |
| -o | 允许添加组ID号不唯一的工作组 |
参考实例
[root@admin~]# groupadd -g 1005 admin[root@admin~]# groupadd -r -g 368 admingroupdel命令用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。
userdel修改系统账户文件,删除与 GROUP 相关的所有项目。给出的组名必须存在。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。
语法格式:groupdel [参数] [群组名称]
常用参数:
-h 显示帮助信息
-R 在chroot_dir目录中应用更改并使用chroot_dir目录中的配置文件
参考实例
使用groupdel命令删除linuxcool工作组:
[root@linuxcool ~]# groupdel linuxcool
查看linuxcool组是否删除成功:
[root@linuxcool ~]# more /etc/group|grep linuxcool
通过查看/etc/group配置文件里面不存在linuxcool组,说明已经被删除了。
df命令的英文全称即“Disk Free”,顾名思义功能是用于显示系统上可使用的磁盘空间。默认显示单位为KB,建议使用“df -h”的参数组合,根据磁盘容量自动变换合适的单位,更利于阅读。
日常普遍用该命令可以查看磁盘被占用了多少空间、还剩多少空间等信息。
语法格式: df [参数] [指定文件]
常用参数:
| 参数名 | 解释 |
|---|---|
| -a | 显示所有系统文件 |
| -B <块大小> | 指定显示时的块大小 |
| -h | 以容易阅读的方式显示 |
| -H | 以1000字节为换算单位来显示 |
| -i | 显示索引字节信息 |
| -k | 指定块大小为1KB |
| -l | 只显示本地文件系统 |
| -t | <文件系统类型> 只显示指定类型的文件系统 |
| -T | 输出时显示文件系统类型 |
| – -sync | 在取得磁盘使用信息前,先执行sync命令 |
参考实例
[root@admin~]# df文件系统 1K-块 已用 可用 已用% 挂载点
devtmpfs 1980612 0 1980612 0% /dev
tmpfs 1994756 0 1994756 0% /dev/shm
tmpfs 1994756 1040 1993716 1% /run
tmpfs 1994756 0 1994756 0% /sys/fs/cgroup
/dev/mapper/fedora_linuxhell-root 15718400 2040836 13677564 13% /
tmpfs 1994756 4 1994752 1% /tmp
/dev/sda1 999320 128264 802244 14% /boot
tmpfs 398948 0 398948 0% /run/user/0
[root@admin~]# df -h文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 1.9G 0 1.9G 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 2.0G 1.1M 2.0G 1% /run
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/mapper/fedora_linuxhell-root 15G 2.0G 14G 13% /
tmpfs 2.0G 4.0K 2.0G 1% /tmp
/dev/sda1 976M 126M 784M 14% /boot
tmpfs 390M 0 390M 0% /run/user/0
[root@admin~]# df /etc/dhcp文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/fedora_linuxcool-root 15718400 2040836 13677564 13% /
显示文件类型为ext4的磁盘使用情况:
[root@admin~]# df -t ext4
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/sda1 999320 128264 802244 14% /boot
lsblk命令的英文是“list block”,即用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。
lsblk命令包含在util-linux-ng包中,现在该包改名为util-linux。
语法格式:lsblk [参数]
常用参数:
| 参数名 | 解释 |
|---|---|
| -a | 显示所有设备 |
| -b | 以bytes方式显示设备大小 |
| -d | 不显示 slaves 或 holders |
| -D | print discard capabilities |
| -e | 排除设备 |
| -f | 显示文件系统信息 |
| -h | 显示帮助信息 |
| -i | use ascii characters only |
| -m | 显示权限信息 |
| -l | 使用列表格式显示 |
| -n | 不显示标题 |
| -o | 输出列 |
| -P | 使用key=”value”格式显示 |
| -r | 使用原始格式显示 |
| -t | 显示拓扑结构信息 |
参考实例
[root@admin~ ]# lsblklsblk NAME MAJ:MIN rm SIZE RO type mountpoint
sda 8:0 0 232.9G 0 disk
├─sda1 8:1 0 46.6G 0 part /
├─sda2 8:2 0 1K 0 part
├─sda5 8:5 0 190M 0 part /boot
├─sda6 8:6 0 3.7G 0 part [SWAP]
├─sda7 8:7 0 93.1G 0 part /data
└─sda8 8:8 0 89.2G 0 part /personal
sr0 11:0 1 1024M 0 rom
[root@admin~]# lsblk -a[root@admin~]# lsblk -m[root@admin~]# lsblk -S[root@admin~]# lsblk -nltftp命令用于传输文件。ftp让用户得以下载存放于远端主机的文件,也能将文件上传到远端主机放置。
tftp是简单的文字模式ftp程序,它所使用的指令和ftp类似。
语法格式:tftp [参数]
常用参数:
| 参数名 | 解释 |
|---|---|
| connect | 连接到远程tftp服务器 |
| mode | 文件传输模式 |
| put | 上传文件 |
| get | 下载文件 |
| quit | 退出 |
| verbose | 显示详细的处理信息 |
| trace | 显示包路径 |
| status | 显示当前状态信息 |
| binary | 二进制传输模式 |
| ascii ascii | 传送模式 |
| rexmt | 设置包传输的超时时间 |
| timeout | 设置重传的超时时间 |
| help | 帮助信息 |
| ? | 帮助信息 |
参考实例
[root@linuxcool ~]# tftp 218.28.188.288tftp> get file
getting from 218.28.188.288 to /dir
Recived 168236 bytes in 1.5 seconds[112157 bit/s]
tftp> quitcurl命令是一个利用URL规则在shell终端命令行下工作的文件传输工具;它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。
作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征;做网页处理流程和数据检索自动化。
语法格式:curl [参数] [网址]
常用参数:
| 参数名 | 解释 |
|---|---|
| -O | 把输出写到该文件中,保留远程文件的文件名 |
| -u | 通过服务端配置的用户名和密码授权访问 |
参考实例
[root@admin~]# curl https://www.linuxcool.com/abc.txt --silent -O[root@admin~]# curl -u root https://www.linuxprobe.com/ Enter host password for user 'root':
tpwho命令用于显示当前所有以FTP登入的用户会话信息。
执行该命令可得知当前用FTP登入系统的用户有哪些人,以及他们正在进行的操作。
语法格式:ftpwho [参数]
常用参数:
| 参数名 | 解释 |
|---|---|
| -h | 显示帮助信息 |
| -v | 详细模式,输出更多信息 |
参考实例
[root@admin~]# ftpwho[root@admin~]# ftpwho -v[root@admin~]# ftpwho -h语法格式: ssh [参数] [远程主机]
常用参数:
| 参数名 | 解释 |
|---|---|
| -1 | 强制使用ssh协议版本1 |
| -2 | 强制使用ssh协议版本2 |
| -4 | 强制使用IPv4地址 |
| -6 | 强制使用IPv6地址 |
| -A | 开启认证代理连接转发功能 |
| -a | 关闭认证代理连接转发功能 |
| -b<IP地址> | 使用本机指定的地址作为对位连接的源IP地址 |
| -C | 请求压缩所有数据 |
| -F<配置文件> | 指定ssh指令的配置文件,默认的配置文件为“/etc/ssh/ssh_config” |
| -f | 后台执行ssh指令 |
| -g | 允许远程主机连接本机的转发端口 |
| -i<身份文件> | 指定身份文件(即私钥文件) |
| -l<登录名> | 指定连接远程服务器的登录用户名 |
| -N | 不执行远程指令 |
| -o<选项> | 指定配置选项 |
| -p<端口> | 指定远程服务器上的端口 |
| -q 静默模式, | 所有的警告和诊断信息被禁止输出 |
| -X | 开启X11转发功能 |
| -x | 关闭X11转发功能 |
| -y | 开启信任X11转发功能 |
参考实例
[root@linuxcool ~]# ssh 202.102.240.88[root@linuxcool ~]# ssh -l test 202.102.220.88[root@linuxcool ~]# ssh 202.102.220.88 /sbin/fdisk -l[root@linuxcool ~]# ssh -1[root@linuxcool ~]# ssh -Anetstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。
从整体上看,netstat的输出结果可以分为两个部分:一个是Active Internet connections,称为有源TCP连接,其中”Recv-Q”和”Send-Q”指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到;另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
语法格式:netstat [参数]
常用参数:
| 参数名 | 解释 |
|---|---|
| -a | 显示所有连线中的Socket |
| -p | 显示正在使用Socket的程序识别码和程序名称 |
| -u | 显示UDP传输协议的连线状况 |
| -i | 显示网络界面信息表单 |
| -n | 直接使用IP地址,不通过域名服务器 |
参考实例
[root@linuxcool ~]# netstat -a[root@linuxcool ~]# netstat -nu[root@linuxcool ~]# netstat -apuActive Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 0.0.0.0:bootpc 0.0.0.0:* 4000/dhclient
udp 0 0 localhost:323 0.0.0.0:* 3725/chronyd
udp6 0 0 localhost:323 [::]:* 3725/chronyd
[root@linuxcool ~]# netstat -iKernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 0 181864 0 0 0 141278 0 0 0 BMRU
lo 16436 0 3362 0 0 0 3362 0 0 0 LRU
[root@linuxcool ~]# netstat -gIPv6/IPv4 Group Memberships Interface
RefCnt Group
--------------- ------ ---------------------
lo 1 ALL-SYSTEMS.MCAST.NET
eth0 1 ALL-SYSTEMS.MCAST.NET lo 1 ff02::1
eth0 1 ff02::1:ff0a:b0c eth0 1 ff02::1
查看主机名称
[root@localhosthome]# hostname
临时修改主机名(重启后失效)
[root@localhosthome]# hostname mytest
永久性修改主机名
配置文件路径/etc/sysconfig/network
[root@localhosthome]# vi network
ping命令一般用于检测网络通与不通或者网络连接速度的命令,也叫时延,其 值越大,速度越慢
Linux系统下的ping命令与Windows系统下的ping命令稍有不同。Windows 下运行ping命令一般会发出4个请求就结束运行该命令。
而Linux下不会自动终止,此时需要我们按CTR+C终止
常用参数:
| 参数名 | 解释 |
|---|---|
| -d | 使用Socket的SO_DEBUG功能 |
| -c | 指定发送报文的次数 |
| -i | 指定收发信息的间隔时间 |
| -I | 使用指定的网络接口送出数据包 |
| -l | 设置在送出要求信息之前,先行发出的数据包 |
| -n | 只输出数值 |
| -p | 设置填满数据包的范本样式 |
| -q | 不显示指令执行过程 |
| -R | 记录路由过程 |
| -s | 设置数据包的大小 |
| -t | 设置存活数值TTL的大小 |
| -v | 详细显示指令的执行过程 |
示例
查看本机的连通性
[root@localhosthome]# ping 127.0.0.1
查看百度是否连通
[root@localhosthome]# ping www.baidu.com
连续ping4次查看
[root@localhosthome]# ping -c 4 www.baidu.com
sensors命令用于检测服务器内部降温系统是否健康,可以监控主板,CPU的工作电压,风扇转速、温度等数据 。
语法格式:sensors
参考实例
检测cpu工作电压,温度等:
[root@linuxcool ~]# sensors
coretemp-isa-0000
Core 0: +48.0°C (high = +87.0°C, crit = +97.0°C)
Core 1: +46.0°C (high = +87.0°C, crit = +97.0°C)
Core 2: +47.0°C (high = +87.0°C, crit = +97.0°C)
Core 3: +46.0°C (high = +87.0°C, crit = +97.0°C)
lspci命令用于显示当前主机的所有PCI总线信息,以及所有已连接的PCI设备信息。 现在主流设备如网卡储存等都采用PCI总线
语法格式:lspci [参数]
常用参数:
| 参数名 | 解释 |
|---|---|
| -n | 以数字方式显示PCI厂商和设备代码 |
| -t | 以树状结构显示PCI设备的层次关系 |
| -b | 以总线为中心的视图 |
| -s | 仅显示指定总线插槽的设备和功能块信息 |
| -i | 指定PCI编号列表文件,不使用默认文件 |
| -m | 以机器可读方式显示PCI设备信息 |
参考实例
[root@linuxcool ~]# lspci[root@linuxcool ~]# lspci -tzip程序将一个或多个压缩文件与有关文件的信息(名称、路径、日期、上次修改的时间、保护和检查信息以验证文件完整性)一起放入一个压缩存档中。可以使用一个命令将整个目录结构打包到zip存档中。
对于文本文件来说,压缩比为2:1和3:1是常见的。zip只有一种压缩方法(通缩),并且可以在不压缩的情况下存储文件。(如果添加了bzip 2支持,zip也可以使用bzip 2压缩,但这些条目需要一个合理的现代解压缩来解压缩。当选择bzip 2压缩时,它将通货紧缩替换为默认方法。)zip会自动为每个要压缩的文件选择更好的两个文件(通缩或存储,如果选择bzip2,则选择bzip2或Store)。
语法格式: zip [参数] [文件]
常用参数:
| 参数名 | 解释 |
|---|---|
| -q | 不显示指令执行过程 |
| -r | 递归处理,将指定目录下的所有文件和子目录一并处理 |
| -z | 替压缩文件加上注释 |
| -v | 显示指令执行过程或显示版本信息 |
| -n<字尾字符串> | 不压缩具有特定字尾字符串的文件 |
参考实例
[root@admin~]# zip -q -r html.zip /home/html[root@admin~]# zip -dv cp.zip a.c[root@admin~]# zip -r mydata.zip mydata[root@admin~]# zip -r abc123.zip abc 123.txt[root@admin~]# zip -r log.zip ./logsunzip命令是用于.zip格式文件的解压缩工具 ,unzip命令将列出、测试或从zip格式存档中提取文件,这些文件通常位于MS-DOS系统上。
默认行为(就是没有选项)是从指定的ZIP存档中提取所有的文件到当前目录(及其下面的子目录)。一个配套程序zip(1L)创建ZIP存档;这两个程序都与PKWARE的PKZIP和PKUNZIP为MS-DOS创建的存档文件兼容,但许多情况下,程序选项或默认行为是不同的。
语法格式:unzip [参数] [文件]
常用参数:
| 参数名 | 解释 |
|---|---|
| -l | 显示压缩文件内所包含的文件 |
| -v | 执行时显示详细的信息 |
| -c | 将解压缩的结果显示到屏幕上,并对字符做适当的转换 |
| -n | 解压缩时不要覆盖原有的文件 |
| -j | 不处理压缩文件中原有的目录路径 |
参考实例
[root@admin~]# unzip mydata.zip -d mydatabak[root@admin~]# unzip wwwroot.zip[root@admin~]# unzip abc\*.zip[root@admin~]# unzip -v wwwroot.zip[root@admin~]# unzip -t wwwroot.zipgzip命令的英文是“GNUzip”,是常用来压缩文件的工具,gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。
gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。
语法格式:gzip [参数]
常用参数:
| 参数名 | 解释 |
|---|---|
| -a | 使用ASCII文字模式 |
| -d | 解开压缩文件 |
| -f | 强行压缩文件 |
| -l | 列出压缩文件的相关信息 |
| -c | 把压缩后的文件输出到标准输出设备,不去更动原始文件 |
| -r | 递归处理,将指定目录下的所有文件及子目录一并处理 |
| -q | 不显示警告信息 |
| -num | (1-9压缩比例越来越高)-1或–fas指定的数字num调整压缩的速度t表示最快压缩方法(低压缩比),-9或–best表示最慢压缩方法(高压缩比) |
参考实例
[root@rancher-v2.2.0~]# gzip *[root@rancher-v2.2.0~]# gzip -dv *[root@rancher-v2.2.0~]# gzip -dr rancher.gz[root@rancher-v2.2.0]# gzip -l *[root@rancher-v2.2.0]# gzip -1 b.txtzipinfo命令的全称为“zip information”,该命令用于列出压缩文件信息。执行zipinfo指令可得知zip压缩文件的详细信息。
语法格式:zipinfo [参数]
常用参数:
| 参数名 | 解释 |
|---|---|
| -1 | 只列出文件名称 |
| -2 | 此参数的效果和指定”-1″参数类似,但可搭配”-h”,”-t”和”-z”参数使用 |
| -h | 只列出压缩文件的文件名称 |
| -l | 此参数的效果和指定”-m”参数类似,但会列出原始文件的大小而非每个文件的压缩率 |
| -m | 此参数的效果和指定”-s”参数类似,但多会列出每个文件的压缩率 |
| -M | 若信息内容超过一个画面,则采用类似more指令的方式列出信息 |
| -s | 用类似执行”ls -l”指令的效果列出压缩文件内容 |
| -t | 只列出压缩文件内所包含的文件数目,压缩前后的文件大小及压缩率 |
| -T | 将压缩文件内每个文件的日期时间用年,月,日,时,分,秒的顺序列出 |
| -v | 详细显示压缩文件内每一个文件的信息 |
| -x<范本样式> | 不列出符合条件的文件的信息 |
| -z | 如果压缩文件内含有注释,就将注释显示出来 |
参考实例
[root@admin~]# zipinfo file.zip[root@admin~]# zipinfo -v file.zip[root@admin~]# zipinfo -h file.zip[root@linuxcool ~]# zipinfo -l file[root@linuxcool ~]# zipinfo -T file | sort –nr -k 7 | sed 15qgunzip命令用于解压文件,它是个使用广泛的解压缩程序,它用于解开被gzip压缩过的文件,这些压缩文件预设最后的扩展名为”.gz”。事实上gunzip就是gzip的硬连接,因此不论是压缩或解压缩,都可通过gzip命令单独完成。
语法格式:gunzip [参数]
常用参数:
| 参数名 | 解释 |
|---|---|
| -a或–ascii | 使用ASCII文字模式 |
| -c或–stdout或–to-stdout | 把解压后的文件输出到标准输出设备 |
| -f或-force | 强行解开压缩文件,不理会文件名称或硬连接是否存在以及该文件是否为符号连接 |
| -h或–help | 在线帮助。 |
| -l或–list | 列出压缩文件的相关信息 |
| -L或–license | 显示版本与版权信息 |
| -n或–no-name | 解压缩时,若压缩文件内含有远来的文件名称及时间戳记,则将其忽略不予处理 |
| -N或–name | 解压缩时, 若压缩文件内含有原来的文件名称及时间戳记,则将其回存到解开的文件上 |
| -q或–quiet 不 | 显示警告信息 |
| -r或–recursive | 递归处理,将指定目录下的所有文件及子目录一并处理 |
| -S<压缩字尾字符串>或–suffix<压缩字尾字符串> | 更改压缩字尾字符串 |
| -t或–test | 测试压缩文件是否正确无误 |
| -v或–verbose | 显示指令执行过程 |
| -V或–version | 显示版本信息 |
参考实例
[root@admin~]# gunzip ab.gz[root@admin~]# gunzip -v 1.gz[root@admin~]# gunzip -v -S "mygz" 1.mygz将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件
tar [选项…] [FILE]…
| 参数名 | 解释 |
|---|---|
| -c或–create | 建立新的备份文件 |
| -t或–list | 列出备份文件的内容 |
| -x或–extract或–get | 从备份文件中还原文件 |
| -z或–gzip或–ungzip | 通过gzip指令处理备份文件 |
| -v或–verbose | 显示指令执行过程 |
| -f<备份文件>或–file=<备份文件> | 指定备份文件 |
[root@admin~]# tar -czvf test.tar.gz a.c[root@admin~]# tar -tzvf test.tar.gz[root@admin~]# tar -xzvf test.tar.gz[root@admin~]# tar -cf archive.tar foo bar[root@admin~]# tar -tvf archive.tar[root@admin~]# tar -xf archive.tar[root@admin~]# tar -cf all.tar *.jpg[root@admin~]# tar -rf all.tar *.gif[root@admin~]# tar -uf all.tar logo.gif[root@admin~]# tar -tf all.tar我有一个字符串input="maybe(thisis|thatwas)some((nice|ugly)(day|night)|(strange(weather|time)))"Ruby中解析该字符串的最佳方法是什么?我的意思是脚本应该能够像这样构建句子:maybethisissomeuglynightmaybethatwassomenicenightmaybethiswassomestrangetime等等,你明白了......我应该一个字符一个字符地读取字符串并构建一个带有堆栈的状态机来存储括号值以供以后计算,还是有更好的方法?也许为此目的准备了一个开箱即用的库?
大约一年前,我决定确保每个包含非唯一文本的Flash通知都将从模块中的方法中获取文本。我这样做的最初原因是为了避免一遍又一遍地输入相同的字符串。如果我想更改措辞,我可以在一个地方轻松完成,而且一遍又一遍地重复同一件事而出现拼写错误的可能性也会降低。我最终得到的是这样的:moduleMessagesdefformat_error_messages(errors)errors.map{|attribute,message|"Error:#{attribute.to_s.titleize}#{message}."}enddeferror_message_could_not_find(obje
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我想用ruby编写一个小的命令行实用程序并将其作为gem分发。我知道安装后,Guard、Sass和Thor等某些gem可以从命令行自行运行。为了让gem像二进制文件一样可用,我需要在我的gemspec中指定什么。 最佳答案 Gem::Specification.newdo|s|...s.executable='name_of_executable'...endhttp://docs.rubygems.org/read/chapter/20 关于ruby-在Ruby中编写命令行实用程序
我正在使用ruby1.9解析以下带有MacRoman字符的csv文件#encoding:ISO-8859-1#csv_parse.csvName,main-dialogue"Marceu","Giveittohimóhe,hiswife."我做了以下解析。require'csv'input_string=File.read("../csv_parse.rb").force_encoding("ISO-8859-1").encode("UTF-8")#=>"Name,main-dialogue\r\n\"Marceu\",\"Giveittohim\x97he,hiswife.\"\
简而言之错误:NOTE:Gem::SourceIndex#add_specisdeprecated,useSpecification.add_spec.Itwillberemovedonorafter2011-11-01.Gem::SourceIndex#add_speccalledfrom/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:91./opt/local/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/rails/gem_dependency.rb:275:in`==':und
嗨~大家好,这里是可莉!今天给大家带来的是7个C语言的经典基础代码~那一起往下看下去把【程序一】打印100到200之间的素数#includeintmain(){ inti; for(i=100;i 【程序二】输出乘法口诀表#includeintmain(){inti;for(i=1;i 【程序三】判断1000年---2000年之间的闰年#includeintmain(){intyear;for(year=1000;year 【程序四】给定两个整形变量的值,将两个值的内容进行交换。这里提供两种方法来进行交换,第一种为创建临时变量来进行交换,第二种是不创建临时变量而直接进行交换。1.创建临时变量来
我从Ubuntu服务器上的RVM转移到rbenv。当我使用RVM时,使用bundle没有问题。转移到rbenv后,我在Jenkins的执行shell中收到“找不到命令”错误。我内爆并删除了RVM,并从~/.bashrc'中删除了所有与RVM相关的行。使用后我仍然收到此错误:rvmimploderm~/.rvm-rfrm~/.rvmrcgeminstallbundlerecho'exportPATH="$HOME/.rbenv/bin:$PATH"'>>~/.bashrcecho'eval"$(rbenvinit-)"'>>~/.bashrc.~/.bashrcrbenvversions
我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("
我有一个问题。我想从另一个ruby脚本运行一个ruby脚本并捕获它的输出信息,同时让它也输出到屏幕。亚军#!/usr/bin/envrubyprint"Enteryourpassword:"password=gets.chompputs"Hereisyourpassword:#{password}"我运行的脚本文件:开始.rboutput=`runner`putsoutput.match(/Hereisyour(password:.*)/).captures[0].to_s正如您在此处看到的那样,存在问题。在start.rb的第一行,屏幕是空的。我在运行程序中看不到“输入您的密