@SovietPower
2021-09-26T19:19:36.000000Z
字数 16935
阅读 1210
Linux
Linux完整学习笔记:https://zybuluo.com/SovietPower/note/1780166。
history、cd、exit
等。type
可判断一个命令为内部命令还是内部命令:type <command>
。如:
~$ type ls
ls 是“ls --color=auto”的别名
~$ type vi
vi 是 /usr/bin/vi
help
help
用于显示shell内建命令的简要帮助信息,帮助信息中显示有该命令的简要说明以及一些参数的使用以及说明。
用法:help <command>
。
对于外部命令,基本上都有一个参数<command> --help
,通过这个参数可以得到相应的简要帮助。
man
man
是外部命令,为Manual pages
的缩写,是Linux系统中在线软件文档的一种普遍的形式,其内容包括计算机程序(包括库和系统调用)、正式的标准和惯例,抽象的概念等。
用法:man <command>
。
可以使用man
命令查看其本身的使用说明,即:man man
。使用时可按h
查看说明,按q
退出。
作用:获得某个命令的说明和使用方式的详细介绍。
man工具是显示系统手册页中的内容,也就是一本电子版的字典,这些内容大多数都是对命令的解释信息,还有一些相关的描述,通过查看系统文档中的man
还可以得到程序的更多相关信息和 Linux 的更多特性。
更详细的内容见上方链接。
info
info
为外部命令,来自自由软件基金会的 GNU 项目,是 GNU 的超文本帮助系统,能够更完整的显示出 GNU 信息。man
和info
就像两个集合,它们有一个交集部分,但与man
相比,info
工具可显示更完整的 GNU 工具信息。
tar
tar
(tape archive)用来建立/还原备份文件的工具程序,它可以加入/解开备份文件内的文件。
命令格式:
-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件上面五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。
-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出上面五个参数根据需要在压缩或解压档案时可选(一个或多个)(与第一种命令顺序任意)。
-f: 使用档案名字。这个参数是最后一个参数,后面只能接文件名。
-f是必须的。
例子:
tar -cf all.tar *.jpg
:将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。
tar -rf all.tar *.gif
:将所有.gif的文件增加到all.tar的包里面去。-r是增加文件。
tar -uf all.tar logo.gif
:更新原来tar包all.tar中logo.gif文件,-u是更新文件。
tar -tf all.tar
:列出all.tar包中所有文件,-t是列出文件
tar -xf all.tar
:解出all.tar包中所有文件,-x是解压。
tar
压缩文件
基本格式:tar -c*f <des>.tar <src>
。其中<src>,<des>
可指明路径,<src>
可以是一个文件夹。
tar -cvf jpg.tar *.jpg
:将目录里所有jpg文件打包成tar.jpg
tar -czf jpg.tar.gz *.jpg
:将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz。
tar -cjf jpg.tar.bz2 *.jpg
:将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2。
tar -cZf jpg.tar.Z *.jpg
:将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z。
rar a jpg.rar *.jpg
:rar格式的压缩(使用rar for linux
)
zip jpg.zip *.jpg
:zip格式的压缩(使用zip for linux
)
tar
解压文件
基本格式:tar -x*f <name>.tar
。后可接-C Path
解压到指定位置。
tar -xvf <name>.tar
:解压tar
tar -xzvf <name>.tar.gz
:解压tar.gz
tar -xjvf <name>.tar.bz2
:解压 tar.bz2
tar -xZvf <name>.tar.Z
:解压tar.Z
unrar e <name>.rar
:解压rar(使用rar for linux
)
unzip <name>.zip
:解压zip(使用zip for linux
)
7z
p7zip压缩文件
基本格式:7z a -t7z -r <name>.7z /home/<name>/*
:a
表示添加文件/文件夹到压缩包。-t
指定压缩类型,一般定为7z。-r
表示递归所有子文件夹。<name>.7z
是压缩好后的压缩包名,/home/<name>/*
是要压缩的目录,*
表示该目录下所有的文件。
7z a <name>.7z a.jpg b.png
:将a.jpg和b.png压缩成一个7z包。
7z a <name>.7z *.jpg
:将所有.jpg的文件压缩成一个7z包。
7z a <name>.7z Path/a/
:将文件夹a压缩成一个7z包。
7z x <name>.7z
:解压<name>.7z
中的所有文件,x
是解压到压缩包名字命名的目录下。
7z e <name>.7z
:解压<name>.7z
中的所有文件,e
是解压到当前路径。
p7zip解压文件
7z x <name>.7z/rar -r -o./
:-r
表示递归所有子文件夹。-o
后直接接提取路径(./
即当前目录),不要加空格。x
表示解压到压缩包名字命名的目录下,可用e
解压到当前路径。
sudo dpkg -i a.deb
。cat
命令cat
(concatenate)命令用于连接文件并打印到标准输出设备上,即把档案串连接后传到基本输出(屏幕 或 用> fileName
传到另一个文件)。
语法:cat [-AbeEnstTuv] [--help] [--version] fileName
。
参数:
-n 或 --number
:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank
:和-n
相似,只不过对于空白行不编号。
-s 或 --squeeze-blank
:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting
:使用^
和M-
符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends
: 在每行结束处显示$
。
-T 或 --show-tabs``将 TAB 字符显示为
^I。
-A, --show-all
:等价于
-vET。
-e
:等价于
-vE。
-t
:等价于
-vT`。
用法:
1. cat <name>
:显示整个文件。
2. cat > <name>
:从键盘读入内容,创建一个文件<name>
(下一行开始输入文件内容,Ctrl+D
结束。若文件存在则覆盖)。
3. cat >> <name>
:从键盘读入内容,附加到一个文件之后(下一行开始输入文件内容,Ctrl+D
结束。若文件不存在则创建)。
cat
只能创建(覆盖)文件,或追加内容,不能直接编辑。
4. cat <file1> <file2> > <file3>
:将几个文件合并为一个文件。同上>
改为>>
可附加内容到<file3>
后面。
5. cat > <name> << abc
:从键盘读入内容,创建一个文件<name>
。但是输入可以以abc
作为标准输入结束(同Ctrl+D
效果),abc
可任意替换。>
同样可换为>>
。>
和<<
顺序任意。
例子:
cat -n file1 > file2
:把file1
的档案内容加上行号后输入file2
这个档案里
cat -b linuxfile1 linuxfile2 >> linuxfile3
:把file1
和file2
的档案内容加上行号(空白行不加)之后将内容附加到file3
里。
cat /dev/null > /etc/a.txt
:清空/etc/a.txt
档案内容。
/dev/null
:在类 Unix 系统中,/dev/null
称为空设备,是一个特殊的设备文件,它丢弃一切写入其中的数据(但报告写入操作可成功),读取它则会立即得到一个 EOF。
可以将/dev/null
看作"黑洞"。它等价于一个只写文件,但所有写入它的内容都会永远丢失。而尝试从它读取内容则什么也读不到。
用处:
禁止标准输出:cat $filename >/dev/null
,文件不会输出到标准输出。
禁止标准错误:2>/dev/null
,这样不会显示错误信息到标准输出(没了)。
具体:https://www.cnblogs.com/selectztl/p/9477988.html,https://blog.csdn.net/longgeaisisi/article/details/90519690。
chmod
命令chmod
(change mode)控制用户对文件的权限。
Linux/Unix的文件调用权限分为三级:文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。
只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。
语法:chmod [-cfvR] [--help] [--version] mode file...
参数:
mode
:权限设定字串,格式:[ugoa...][[+-=][rwxX]...][,...]
其中:
u
表示该文件的拥有者,g
表示与该文件的拥有者属于同一个群体(group)者,o
表示其他以外的人,a
表示这三者皆是。
+
表示增加权限、-
表示取消权限、=
表示唯一设定权限。
r
表示可读取,w
表示可写入,x
表示可执行,X
表示只有当该文件是个子目录或者该文件已经被设定过为可执行。其他参数:
-c
:若该文件权限确实已经更改,才显示其更改动作
-f
:若该文件权限无法被更改也不要显示错误讯息
-v
:显示权限变更的详细资料
-R
:对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
--version
:显示版本
chmod
命令后也可直接使用三位八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。使用ls -l
查看文件夹中文件的权限。
如:chmod ug=rwx,o=x file
和chmod 771 file
等价。
chmod 4755 filename
:可使此程序具有 root 的权限。
chown
命令chown
(change owner)用于设置文件所有者和文件关联组。
Linux/Unix 是多用户多任务操作系统,所有的文件都有拥有者。利用chown
可将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户ID,组可以是组名或者组ID,文件是以空格分开的要改变权限的文件列表,支持通配符。
只有超级用户和属于组的文件所有者才能用chown
变更文件关联组。非超级用户如需要设置关联组可能需要使用chgrp
命令。
语法:chown [-cfhvR] [--help] [--version] user[:group] file...
参数:
user
:新的文件拥有者的使用者ID
group
:新的文件拥有者的使用者组(group)
-c
:显示更改的部分的信息
-f
:忽略错误信息
-h
:修复符号链接
-v
:显示详细的处理信息
-R
:处理指定目录以及其子目录下的所有文件
--version
:显示版本
例子:
chown root /var/run/httpd.pid
:把/var/run/httpd.pid
的所有者设置为root。
chown a:groupb qwq.txt
:将文件qwq.txt
的拥有者设为a
,群体的使用者groupb
。
chown -R a:groupb *
:将当前前目录下的所有文件与子目录的拥有者全设成a
,群体的使用者groupb
。
cmp
命令cmp
比较两个文件是否不同。
当比较的两个文件完全一样时,不会显示任何信息。若有差异,会标出第一个不同字符和列数编号。若不指定文件名称或是文件名为"-",则cmp
会从标准输入设备读取数据。
语法:cmp [-clsv][-i <字符数目>][--help][第一个文件][第二个文件]
参数:
-c或--print-chars
:除了标明差异处的十进制字码之外,一并显示该字符所对应字符。
-i<字符数目>或--ignore-initial=<字符数目>
:指定一个数目。
-l或--verbose
:标示出所有不一样的地方。
-s或--quiet或--silent
:不显示错误信息。
cp
命令cp
(copy file)命令主要用于复制文件或目录。
语法:cp [options] source... dest
当dest
为目录时,文件名不变;dest
为文件名时,将复制后的source
命名为dest
(有些类似mv
)。
参数:
-a
:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
-d
:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f
:覆盖已经存在的目标文件而不给出提示。
-i
:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
-p
:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r
:若给出的源文件是一个目录文件(文件夹),此时将递归复制该目录下所有的子目录和文件(不加-r
会忽略文件夹)。
-l
:不复制文件,只是生成链接文件。
diff
命令diff
以逐行的方式,比较文本文件的异同。如果指定目录,则diff
会比较目录中相同文件名的文件,但不会比较其子目录。
具体见:https://www.runoob.com/linux/linux-comm-diff.html
dig
命令dig
(域信息搜索器)命令是查询 DNS 包括 NS 记录,A 记录,MX 记录等相关信息的工具。dig 执行 DNS 搜索,显示从受请求的域名服务器返回的答复。多数 DNS 管理员利用 dig 作为 DNS 问题的故障诊断,因为其灵活性好、易用、输出清楚。
find
命令find
在指定目录下查找满足指定条件的文件。
具体见:https://www.runoob.com/linux/linux-comm-find.html
free
命令free
用于显示内存状态。会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
语法:free [-bkmotV][-s <间隔秒数>]
参数:
-b
:以Byte为单位显示内存使用情况。
-k
:以KB为单位显示内存使用情况。
-m
:以MB为单位显示内存使用情况。
-h
:以合适的单位显示内存使用情况,最大为三位数,自动计算对应的单位值。单位有:B, K, M, G, T。
-o
:不显示缓冲区调节列。
-s<间隔秒数>
:持续观察内存使用状况(每隔指定秒观察一次)。
-t
:显示内存总和列。
grep
命令grep
用于查找文件里符合条件的字符串。如果发现某文件的内容符合所指定的范本样式,预设grep
指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为-
,则grep
指令会从标准输入设备读取数据;文件名为*
即所有文件。
grep
通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。
语法:
grep [-abcEFGhHilLnqrsvVwxy][-A<显示行数>][-B<显示列数>][-C<显示列数>][-d<进行动作>][-e<范本样式>][-f<范本文件>][--help][范本样式][文件或目录...]
常用参数:
-a 或 --text
:不忽略二进制的数据。
-A<显示行数> 或 --after-context=<显示行数>
:显示匹配行和 从匹配位置开始往后若干行的内容,其中<>
中指定行数(不计算显示符合样式的那一行)。
-b 或 --byte-offset
:在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数> 或 --before-context=<显示行数>
:显示匹配行和 从匹配位置开始往前若干行的内容,其中<>
中指定行数(不计算显示符合样式的那一行)。
-c 或 --count
:计算符合样式的列数。
-C<显示行数> 或 --context=或-<显示行数>
:显示匹配行和 从匹配位置开始往前和往后若干行的内容,其中<>
中指定行数(不计算显示符合样式的那一行)。
-d <动作> 或 --directories=<动作>
:当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。会递归所有子文件夹。
-e<范本样式> 或 --regexp=<范本样式>
:指定字符串做为查找文件内容的样式。
-E 或 --extended-regexp
:将样式为延伸的正则表达式来使用。
-f<规则文件> 或 --file=<规则文件>
:指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
-F 或 --fixed-regexp
:将样式视为固定字符串的列表。
-G 或 --basic-regexp
:将样式视为普通的表示法来使用。
-h 或 --no-filename
:在显示符合样式的那一行之前,不标示该行所属的文件名称。
-H 或 --with-filename
:在显示符合样式的那一行之前,表示该行所属的文件名称。
-i 或 --ignore-case
:忽略字符大小写的差别。
-l 或 --file-with-matches
:列出文件内容符合指定的样式的文件名称。
-L 或 --files-without-match
:列出文件内容不符合指定的样式的文件名称。
-n 或 --line-number
:在显示符合样式的那一行之前,标示出该行的列数编号。
-o 或 --only-matching
:只显示匹配PATTERN 部分。
-q 或 --quiet或--silent
:不显示任何信息。
-r 或 --recursive
:递归所有子文件夹。此参数的效果和指定"-d recurse"参数相同。
-s 或 --no-messages
:不显示错误信息。
-v 或 --invert-match
:显示不包含匹配文本的所有行。
-V 或 --version
:显示版本信息。
-w 或 --word-regexp
:只显示全字符合的列。
-x --line-regexp
:只显示全列符合的列。
-y
:此参数的效果和指定"-i"参数相同。
例子:
grep sqwq ab*
:查找文件名前缀有ab
的文件中,包含sqwq
字符串的文件。
grep -r qqw /etc/acpi
:以递归的方式查找/etc/acpi
下包含qqw
的文件。
grep -v svq *ab*
:反向查找:查找文件名中包含ab
的文件中不包含svq
的行。
规则表达式:
见https://www.cnblogs.com/peida/archive/2012/12/17/2821195.html。
ip
命令ip
命令与ifconfig
(不是ipconfig)命令类似,但比ifconfig
命令更加强大,是 Linux 加强版的的网络配置工具,用于代替ifconfig
命令。主要功能是用于显示或设置网络设备。
语法:ip [ OPTIONS ] OBJECT { COMMAND | help }
参数:
OBJECT 为常用对象,值可以是:
OBJECT={ link | addr | addrlabel | route | rule | neigh | ntable | tunnel | maddr | mroute | mrule | monitor | xfrm | token }
常用对象:
link
:网络设备
address
:设备上的协议(IP或IPv6)地址
addrlabel
:协议地址选择的标签配置
route
:路由表条目
rule
:路由策略数据库中的规则OPTIONS 为常用选项,值可以是:
OPTIONS={ -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] | -h[uman-readable] | -iec | -f[amily] { inet | inet6 | ipx | dnet | link } | -o[neline] | -t[imestamp] | -b[atch] [filename] | -rc[vbuf] [size] }
常用选项:
-V
:显示命令的版本信息
-s
:输出更详细的信息
-f
:强制使用指定的协议族
-4
:指定使用的网络层协议是IPv4协议
-6
:指定使用的网络层协议是IPv6协议
-0
:输出信息每条记录输出一行,即使内容较多也不换行显示
-r
:显示主机时,不使用IP地址,而使用主机的域名
ln
命令ln
(link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用ln
命令链接(link)它就可以,不必重复的占用磁盘空间。
语法:ln [参数][源文件或目录][目标文件或目录]
其中参数的格式为[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}] [--help] [--version] [--]
链接分为硬链接(hard link)与软链接(symbolic link)。具体见:https://www.runoob.com/linux/linux-comm-ln.html。
注意软链接的源文件目录要是绝对目录。
参数:
必要参数:
-b
:删除,覆盖以前建立的链接
-d
:允许超级用户制作目录的硬链接
-f
:强制执行
-i
:交互模式,文件存在则提示用户是否覆盖
-n
:把符号链接视为一般目录
-s
:软链接(符号链接)
-v
:显示详细的处理过程
可选参数:
-S
:"-S<字尾备份字符串> "或 "--suffix=<字尾备份字符串>"
-V
:"-V<备份方式>"或"--version-control=<备份方式>"
--help
:显示帮助信息
--version
:显示版本信息
ls
命令功能:列出非目录的文件项,然后是每一个目录中的“可显示”文件(可理解为ls命令将本目录向下展开两级)。
语法:ls [参数] [目录名]
(当前目录可忽略目录名)(目录名可以是文件,只显示它的信息)。
常用参数:
-a
:显示所有文件,包含隐藏文件
-A
:显示所有文件,包含隐藏文件,但不包含.及..
-l
:显示为long format(长格式),列出文件的详细信息,包括文件类型、权限、链接数、owner、group、大小,时间,名字
-R
:–recursive
,同时列出所有子目录层
-d
:–directory
,将目录像文件一样显示,而不是显示其下的文件。即不展开目录,只显示目录自身,一般与-l
配合使用以显示目录自身的属性信息(只显示当前目录的内容)
-1
:数字1,成列显示内容
-S
:以文件大小排序显示,默认从大到小 -r后,从小到大
-U
:按存放顺序排序显示
-X
:按扩展名的首字母来排序
-t
:按mtime排序(先显示时间最近的)。mtime:数据修改时间(写入,修改数据mtime改变,mtime改变ctime必改变)
-ul
:按atime排序(先显示时间最近的)。atime:访问时间
-ct
:按ctime排序(先显示时间最近的)。ctime:元数据修改时间(修改权限的时候只有ctime改变)
-r
:在以上三种排序后加r
,表示倒序排序。
(注意参数可同时使用)
通配符:见https://www.cnblogs.com/bailandecheng/p/9310407.html。
more
命令more
类似cat
,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似)。同样使用时也可按h
查看说明,按q
退出,同man
。
语法:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
。
参数:
-num
:一次显示的行数
-l
取消遇见特殊字元^L
送纸字元)时会暂停的功能
-d
:提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声
-f
:计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-p
:不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-c
:跟-p
相似,不同的是先显示内容再清除其他旧资料
-s
:当遇到有连续两行以上的空白行,就代换为一行的空白行
-u
:不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
+/pattern
:在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
+num
:从第 num 行开始显示
fileNames
:要显示内容的文档,可为复数个数常用操作指令:(按
h
即可查看)
多数命令可在前面加整数参数 k。方括号中为参数的默认值。星号*
表示参数将成为新的默认值。
<空格键>
:显示下 k 行文本[当前屏幕尺寸]
z
:显示下 k 行文本[当前屏幕尺寸]*
<回车键>
:显示下 k 行文本[1]*
d 或 ctrl-D
:滚动 k 行[当前滚动尺寸,初始值为 11]*
q 或 Q 或 <interrupt>
:退出 more
s
:跳过下面 k 行文本[1]
f
:跳过下面 k 屏文本[1]
b 或 ctrl-B
:跳过上面 k 屏文本 [1]
'
:转到上次搜索开始处
=
:显示当前行号
/<正则表达式>
:搜索正则表达式第 k 次出现处[1]
n
:搜索前一正则表达式第 k 次出现处[1]
v
:在当前行启动 /usr/bin/vi
ctrl-L
:重绘屏幕
:p
/:n
:转到前面/后面第 k 个文件[1]
:f
:显示当前文件名和行号
.
:重复前一命令
mkdir
命令mkdir
(make directory)命令用于创建目录。
语法:mkdir [-p] dirName...
(可同时创建多个子目录)
参数:
-p
:若不能确保目录名称存在,则若不存在可新建(可递归创建多级目录)。
-m
:建立目录的同时设置目录的权限
-z
:设置安全上下文
-v
:显示目录的创建过程
例子:
mkdir qvw
:在当前目录创建一个名为qvw的子目录。
mkdir -p a/name
:在当前目录下的 a 目录中,建立一个名为 name 的子目录。若 a 目录原本不存在,则建立一个(若不加-p
参数,且原本 a 目录不存在,则会错误)。
mv
命令mv
(move file)命令用来为文件或目录改名、或将文件或目录移入其它位置。
语法:mv [options] source... dest
参数:
-b
:当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
-i
:如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入y
表示直接覆盖,输入n
表示取消该操作。
-f
:如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
-n
:不要覆盖任何已存在的文件或目录。
-u
:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。
例子:
mv src des
有三种参数情况:
src
为文件,des
为文件:将源文件src
改名为des
,并将文件放到des
所在目录(未给出则为当前目录)。
src
为文件,des
为目录:将文件src
移动到目标目录des
中。
src
为目录,des
为目录:若目录des
存在,将src
移动到目录des
中目录
des不存在,则将源目录
src改名为
des`。
mv info/ logs
:将info
目录放入logs
目录中。但如果logs
目录不存在,则将info
改名为logs
。
mv /usr/runoob/* .
:将/usr/runoob
下的所有文件和目录移到当前目录下。
nice
命令nice
命令以更改过的优先序(指nice值)来运行程序,若未指定程序,则会输出目前的排程优先序。不指定数值则默认的 为 10。nice值范围为 -20(最高优先序)到 19(最低优先序)。
优先级 (priority) 为操作系统用来决定 CPU 分配的参数,Linux 使用回合制(round-robin)的演算法来做 CPU 排程,优先序越高,可能获得的 CPU 时间就越多。
注:nice 值不是优先级,但会影响优先级。
语法:nice [-n adjustment] [-adjustment] [--adjustment=adjustment] [--help] [--version] [command [arg...]]
参数:
-n adj, -adj, --adjustment=adj
:都是将原有优先序(初始时为0)增加adj
--help/version
:显示帮助/版本
例子:
nice vi &
:以默认的优先级10后台运行vi。
nice -n -20 vi &
:设置优先级为-20并后台运行vi。
ping
命令ping
命令用于检测主机。执行ping
指令会使用 ICMP 传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
语法:ping [-dfnqrRv][-c<完成次数>][-i<间隔秒数>][-I<网络界面>][-l<前置载入>][-p<范本样式>][-s<数据包大小>][-t<存活数值>][主机名称或IP地址]
常用参数:
-d
:使用Socket的SO_DEBUG功能。
-c <完成次数>
:设置完成要求回应的次数。
-f
:极限检测。
-i<间隔秒数>
:指定收发信息的间隔时间。
-I<网络界面>
:使用指定的网络接口送出数据包。
-l<前置载入>
:设置在送出要求信息之前,先行发出的数据包。
-n
:只输出数值。
-p<范本样式>
:设置填满数据包的范本样式。
-q
:不显示指令执行过程,开头和结尾的相关信息除外。
-r
:忽略普通的Routing Table,直接将数据包送到远端主机上。
-R
:记录路由过程。
-s<数据包大小>
:设置数据包的大小。
-t<存活数值>
:设置存活数值TTL的大小。
-v
:详细显示指令的执行过程。
-w <deadline>
:在 deadline 秒后退出。
-W <timeout>
:在等待 timeout 秒后开始执行。
ps
命令ps
(process status)用于显示当前进程的状态,类似于 windows 的任务管理器。
语法:ps [options] [--help]
常用参数:
l
:长格式输出
u
:按用户名和启动时间的顺序来显示进程
j
:用任务格式来显示进程
f
:用树形格式来显示进程
a
:显示所有用户的所有进程(包括其它用户)
x
:显示无控制终端的进程
r
:显示运行中的进程
ww
:避免详细参数被截断(显示更多的参数)
具体:https://www.cnblogs.com/kendoziyu/p/11143703.html
例子:
ps aux | grep qwq
:将含qwq的进程输出。
ps –A --sort cmd
:显示系统所有的应用程序,并根据程序命令进行排序。
ps -aux > ps001.txt
:把所有进程输出到ps001.txt文件。接more ps001.txt
即可分页查看。
reboot
命令reboot
命令用于重新启动计算机。
若系统的 runlevel 为 0 或 6 ,则重新开机,否则以 shutdown 指令(加上 -r 参数)来取代
语法。
语法:reboot [-n] [-w] [-d] [-f] [-i]
参数:
-n
:在重开机前不做将记忆体资料写回硬盘的动作
-w
:并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
-d
:不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
-f
:强迫重开机,不呼叫 shutdown 这个指令
-i
:在重开机之前先把所有网络相关的装置先停止
renice
命令renice
命令用于重新指定一个或多个行程(Process)的优先序(数量由参数决定)。
语法:renice priority [[-p] pid ...] [[-g] pgrp ...] [[-u] user ...]
参数:
-p pid
:重新指定 id 为 pid 的行程的优先序
-g pgrp
:重新指定行程群组(process group)中 id 为 pgrp 的行程 (一个或多个) 的优先序
-u user
:重新指定行程拥有者为 user 的行程的优先序
例子:
renice +1 987 -u ABC root -p 32
:将行程 id 为 987 及 32 的行程与行程拥有者为 ABC 及 root 的优先序号码改为+1。
rm
命令rm
(remove)命令用于删除一个文件或者目录。文件一旦通过rm命令删除,则无法恢复。
**语法:**
rm [options] name...`
参数:
-i
:删除前逐一询问确认(默认输入为否)。
-f
:即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r
:将目录及以下之档案亦逐一删除。
例子:
rm -rf *
:删除当前目录下的所有文件及目录,无需确认。
rm -rf /*
:清空系统中所有的文件,无需确认。
避免
rm -rf
误删:
1.alias rm='rm -i'
,使用rm
时不要加-f
。
2.chmod a-w <file>
,去掉重要文件的写权限。
3.chattr
保护文件或文件夹。
shutdown
命令shutdown
命令可以用来进行关机程序,并且在关机以前传送讯息给所有使用者正在执行的程序,shutdown 也可以用来重开机。
语法:shutdown [-t seconds] [-rkhncfF] time [message]
参数:
-t seconds
:设定在几秒钟之后进行关机程序。
-k
:并不会真的关机,只是将警告讯息传送给所有使用者。
-r
:关机后重新开机。
-h
:关机后停机。
-n
:不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机。
-c
:取消目前已经进行中的关机动作。
-f
:关机时,不做 fsck 动作(检查 Linux 档系统)。
-F
:关机时,强迫进行 fsck 动作。
time
:设定关机的时间。
message
:传送给所有使用者的警告讯息。
例子:
shutdown -h now
:立即关机。
shutdown -h 10
:指定 10 分钟后关机。
ss
命令ss
(Socket Statistics)命令可以用来获取 socket 统计信息,其输出的结果类似于netstat
输出的内容,但它能显示更多更详细的 TCP 连接状态的信息,且比 netstat 更快速高效,因为它使用了 TCP协议栈中 tcp_diag
(是一个用于分析统计的模块),能直接从内核获得信息。即使没有tcp_diag
,ss
也可以正常运行。
常用参数:
-t
:tcp,显示TCP连接
-a
:all
-l
:listening,ss -l列出所有打开的网络连接端口
-s
:summary,显示 Sockets 摘要
-p
:progress
-n
:numeric,不解析服务名称
-r
:resolve,解析服务名称
-m
:memory,显示内存情况
touch
命令touch
修改文件或者目录的时间属性,包括存取时间和更改时间。若文件不存在,则新建。
ls -l <dir/filename>
可以查看档案的时间记录。
语法:touch [-acfm][-d<日期时间>][-r<参考文件或目录>] [-t<日期时间>][--help][--version][文件或目录…]
参数:
-a
:改变档案的读取时间记录。
-c
或--no-create
:如果目的档案不存在,不会建立新的档案。
-d
:设定时间与日期,可以使用各种不同的格式。
-f
:不使用,是为了与其他 unix 系统的相容性而保留。
-m
:改变档案的修改时间记录。
-r
:使用参考档的时间记录,同--file
。
-t
:设定档案的时间记录,格式与 date 指令相同。
uname
命令uname
(unix name)显示电脑以及操作系统的相关信息。
语法:uname [-amnrsv][--help][--version]
参数:
-a或--all
:显示全部的信息。
-m或--machine
:显示电脑类型。
-n或--nodename
:显示在网络上的主机名称。
-r或--release
:显示操作系统的发行编号。
-s或--sysname
:显示操作系统名称。
-v
:显示操作系统的版本。
useradd
命令useradd
用来创建用户帐号。帐号创建后,用passwd
设定密码,用userdel
删除帐号。使用useradd
创建的帐号,保存在/etc/passwd
文本文件中。
语法:useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号]
参数:
-c<备注>
:加入备注文字。备注文字会保存在passwd
的备注栏位中。
-d<登入目录>
:指定用户登入时的起始目录。
-e<有效期限>
:指定帐号的有效期限。
-f<缓冲天数>
:指定在密码过期后多少天关闭该帐号。
-g<群组>
:指定用户所属的群组。
-G<群组>
:指定用户所属的附加群组列表(-G
后面跟一个用户组列表,使用户属于指定的多个用户组)。
-m
:自动建立用户的登入目录。
-M
:不要自动建立用户的登入目录。
-n
:取消建立以用户名称为名的群组.
-r
:建立系统帐号。
-s<shell>
:指定用户登入后所使用的shell。
-u<uid>
:指定用户ID。
例子:
# useradd abc
:添加一般用户abc(该用户无Home Directory
,无密码,无系统Shell)。
# useradd -g root abc
:为添加的用户abc指定用户组root。
# useradd -r abc
:创建一个系统用户abc。
# useradd -d /home/qwq abc
:为新添加的用户abc指定home目录。
# useradd caojh -u 544
:建立用户abc且指定用户ID。
#useradd -d /usr/local/apache -g apache -s /bin/false apache
:添加一个不能登录的用户
userdel
命令userdel
用于删除用户帐号,可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。
语法:userdel [-r][用户帐号]
参数:
-r
:删除用户登入目录以及目录中所有文件。
who, whoami, whois
who
who
用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间、呆滞时间、CPU 使用量、动作等等。
语法:who -[husfV] [user]
参数:
-H 或 --heading
:显示各栏位的标题信息列。
-i 或 -u 或 --idle
:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如果该用户已超过24小时没有任何动作,则标示出"old"字符串。
-m
:此参数的效果和指定"am i"字符串相同。
-q 或--count
:只显示登入系统的帐号名称和总人数。
-s
:此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题。
-w 或-T或--mesg或--message或--writable
:显示用户的信息状态栏。
whoami
whoami
显示自身的用户名称。相当于执行id -un
指令。
whois
whois
用于查找并显示用户信息。
whois
会去查找并显示指定帐号的用户相关信息,因为它是到Network Solutions的WHOIS数据库去查找,所以该帐号名称必须在上面注册方能寻获,且名称没有大小写的差别。
语法:whois [账号名称]