打印末尾n行
tail -n 10 file
实时监控文件(对于日志文件非常实用)
tail -f file
uniq 可检查文本文件中重复出现的行列。
$ uniq -c testfile #删除重复行后的内容
3 test 30 #前面的数字的意义为该行共出现了3次
4 Hello 95 #前面的数字的意义为该行共出现了4次
2 Linux 85 #前面的数字的意义为该行共出现了2次
sort 可针对文本文件的内容,以行为单位来排序。
echo常用选项参数
iptables常用选项参数
wc常用选项参数
scp常用选项参数
rsync 是一个常用的 Linux 应用程序,用于文件同步。
它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件(但不支持两台远程计算机之间的同步)。它也可以当作文件复制工具,替代cp
和mv
命令。
它名称里面的r
指的是 remote,rsync 其实就是"远程同步"(remote sync)的意思。与其他文件传输工具(如 FTP 或 scp)不同,rsync 的最大特点是会检查发送方和接收方已有的文件,仅传输有变动的部分(默认规则是文件大小或修改时间有变动)。
-a
参数可以替代-r
,除了可以递归同步以外,还可以同步元信息(比如修改时间、权限等)。由于 rsync 默认使用文件大小和修改时间决定文件是否需要更新,所以-a
比-r
更有用。下面的用法才是常见的写法。
$ rsync -a source destination
目标目录destination
如果不存在,rsync 会自动创建。执行上面的命令后,源目录source
被完整地复制到了目标目录destination
下面,即形成了destination/source
的目录结构。
如果只想同步源目录source
里面的内容到目标目录destination
,则需要在源目录后面加上斜杠。
$ rsync -a source/ destination
上面命令执行后,source
目录里面的内容,就都被复制到了destination
目录里面,并不会在destination
下面创建一个source
子目录。
-P参数是--progress
和--partial
这两个参数的结合。
--partial
参数允许恢复中断的传输。不使用该参数时,rsync会删除传输到一半被打断的文件;使用该参数后,传输到一半的文件也会同步到目标目录,下次同步时再恢复中断的传输。
--progress
参数表示显示进展。
默认情况下,rsync 只确保源目录的所有内容(明确排除的文件除外)都复制到目标目录。它不会使两个目录保持相同,并且不会删除文件。如果要使得目标目录成为源目录的镜像副本,则必须使用--delete
参数,这将删除只存在于目标目录、不存在于源目录的文件。
$ rsync -a --delete source/ destination
上面命令中,--delete
参数会使得destination
成为source
的一个镜像。
-v参数表示输出细节
alisa 用来给命令创建一个别名。若直接输入该命令且不带任何参数,则列出当前 Shell 进程中使用了哪些别名。ll
与ls -l
的效果是一样的就是这个原因。
看一下有哪些命令被默认创建了别名:
[mozhiyan@localhost ~]$ alias
alias cp='cp -i'
alias l.='ls -d .* --color=tty'
alias ll='ls -l --color=tty'
alias ls='ls --color=tty'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
使用 alias 命令自定义别名的语法格式为:
alias new_name='command'
cp命令常用选项参数
-dR --preserve=all
的效果一样dmidecode命令主要是通过DMI获取主机的硬件信息,通常是在不打开计算机机箱的情况下使用该命令来查找硬件详细信息。其输出的信息包括BIOS、系统、主板、处理器、内存、缓存等等。
什么是DMI?DMI (Desktop Management Interface, DMI)的主要组成部分是Management InformationFormat (MIF)数据库,这个数据库包括了所有有关电脑系统和配件的信息。
cut 命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。
如果不指定 File 参数,cut 命令将读取标准输入。
常用选项参数:
示例:
uptime 10:34:55 up 904 days, 23:11, 1 user, load average: 0.04, 0.06, 0.08
uptime提供一行显示以下信息:
fdisk 是一个创建和维护分区表的程序,它兼容 DOS 类型的分区表、BSD 或者 SUN 类型的磁盘列表。
常用选项参数:
free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。
常用选项参数:
sz命令来自英文词组“send ZMODEM”的缩写,其功能是基于ZModem协议从远程服务器下载文件到本地。当我们在使用例如Xshell、SecureCRT、PuTTY等虚拟终端软件时,可以使用sz命令将远程文件直接下载到本地,在软件弹出的窗口选择本地保存路径即可。
若您的系统中找不到sz与rz命令,请配置好软件仓库后执行“yum install lszrz”这条命令。
语法格式:
sz [参数] 文件名 # …………弹出窗口中选择本地保存路径即可…………
mail命令可以在linux系统上发送或接受邮件。
常用命令选项:
指定邮件内容示例:
mail -s "[告警]" [email protected] < content.txt
常用命令选项:
dos2unix 命令用于将纯文本文件从 DOS 或 Mac 格式转换为 Unix。DOS 下的文本文件是以 \r\n 作为换行符,而 Unix 下的文本文件是以 \n 作为换行符。
在Linux系统中0 1 2是一个文件描述符
名称 | 代码 | 操作符 |
---|---|---|
标准输入(stdin) | 0 | < 或 << |
标准输出(stdout) | 1 | >, >>, 1> 或 1>> |
标准错误输出(stderr) | 2 | 2> 或 2>> |
从上表看的出来,我们平时使用的
echo "hello" > t.log
其实也可以写成
echo "hello" 1> t.log
2>&1表明将文件描述2(标准错误输出)的内容重定向到文件描述符1(标准输出)。当没有&时,1会被认为是一个普通的文件,有&表示重定向的目标不是一个文件,而是一个文件描述符。
示例:
python index.py task >/dev/null 2>&1
这里标准输出已经重定向到了 /dev/null。那么标准错误也会输出到/dev/null
为何2>&1要写在后面?
可以理解为,左边是标准输出,现在标准输出直接输出到/dev/null
中,而2>&1
是将标准错误重定向到标准输出,所以当程序产生错误的时候,相当于错误流向左边,依旧是输出到/dev/null
中。
因此如果写在中间,那会把标准错误输出指定到标准输出上,此时标准输出目标为终端,之后>/dev/null
会将标准输出指定到/dev/null
文件中,而此时标准错误输出则不会改变了