Linux学习之Linux常用命令08_Linux命令大全_Linux文件管理04_sort命令_alias命令
风哥针对大家学习Linux常用命令时,涉及到很多的Linux文件管理类命令大全,接下来风哥就重点为大家介绍这些Linux命令的作用及这些Linux命令的使用案例教程(Linux文件管理21-30):
1.Linux命令-Linux文件管理命令21:sort命令
sort命令是在Linux里非常有用,它将文件进行排序,并将排序结果标准输出。sort命令既可以从特定的文件,也可以从stdin中获取输入。
语法格式:sort [参数] [文件]
常用参数:
-b 忽略每行前面开始出的空格字符
-c 检查文件是否已经按照顺序排序
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符
-f 排序时,将小写字母视为大写字母
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符
-m 将几个排序号的文件进行合并
-M 将前面3个字母依照月份的缩写进行排序
-n 依照数值的大小排序
-o <输出文件> 将排序后的结果存入制定的文件
-r 以相反的顺序来排序
-t <分隔字符> 指定排序时所用的栏位分隔字符
-k 指定需要排序的栏位
Linux命令教程案例:
sort将文件/文本的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出:
[root@fgedu.net ~]# cat sort.txt
AAA:100:1.1
CCC:300:3.3
DDD:400:4.4
BBB:200:2.2
FFF:600:6.6
FFF:600:6.6
EEE:500:5.5
[root@fgedu.net ~]# sort sort.txt
AAA:100:1.1
BBB:200:2.2
CCC:300:3.3
DDD:400:4.4
EEE:500:5.5
FFF:600:6.6
FFF:600:6.6
忽略相同行使用-u选项或者uniq:
[root@fgedu.net ~]# cat sort.txt
AAA:100:1.1
CCC:300:3.3
DDD:400:4.4
BBB:200:2.2
FFF:600:6.6
FFF:600:6.6
EEE:500:5.5
[root@fgedu.net ~]# sort -u sort.txt
AAA:100:1.1
BBB:200:2.2
CCC:300:3.3
DDD:400:4.4
EEE:500:5.5
FFF:600:6.6
[root@fgedu.net ~]# uniq sort.txt
AAA:100:1.1
CCC:300:3.3
DDD:400:4.4
BBB:200:2.2
FFF:600:6.6
EEE:500:5.5
sort的-n、-r、-k、-t选项的使用:
[root@fgedu.net ~]# cat sort.txt
AAA:BBB:CCC
aaa:300:1.9
ccc:500:3.3
ddd:200:4.2
bbb:100:2.4
eee:400:5.3
eee:600:5.1
[root@fgedu.net ~]# sort -nk 2 -t: sort.txt
AAA:BBB:CCC
bbb:100:2.4
ddd:200:4.2
aaa:300:1.9
eee:400:5.3
ccc:500:3.3
eee:600:5.1
[root@fgedu.net ~]# sort -nrk 3 -t: sort.txt
eee:400:5.3
eee:600:5.1
ddd:200:4.2
ccc:500:3.3
bbb:100:2.4
aaa:300:1.9
AAA:BBB:CCC
2.Linux命令-Linux文件管理命令22:whereis命令
whereis命令用来定位命令的二进制程序、源代码文件和man手册页等相关文件的路径。
whereis命令查找速度非常快,因为它不是在磁盘中乱找,而是在一个数据库中查询; 数据库是linux系统自动创建的,包含有本地所有文件的信息,并且每天通过自动执行updatedb命令更新一次。正因为这样,whereis命令的搜索结果有时候会不准确,比如刚添加的文件可能搜不到, 原因就是该数据库文件没有被更新。
语法格式:whereis [参数] [命令名]
常用参数:
-b 查找二进制程序或命令
-B 从指定目录下 查找二进制程序或命令
-m 查找man手册文件
-M 从指定目录下 查找man手册文件
-s 只查找源代码文件
-S 从指定目录下 查找源代码文件
Linux命令教程案例:
显示ln命令的程序和man手册页的位置:
[root@fgedu.net ~]# whereis ln
ln: /usr/bin/ln /usr/share/man/man1/ln.1.gz /usr/share/man/man1p/ln.1p.gz
显示ln命令的二进制程序的路径:
[root@fgedu.net ~]# whereis -b ln
ln: /usr/bin/ln
显示ln命令的man手册页的路径:
[root@fgedu.net ~]# whereis -m ln
ln: /usr/share/man/man1/ln.1.gz /usr/share/man/man1p/ln.1p.gz
3.Linux命令-Linux文件管理命令23:lsattr命令
lsattr命令的英文全称即“list attribute”,用于查看特定设备或特定文件在Linux第二扩展文件系统上的特有属性信息 。该命令常与chattr一起使用,chattr命令用于改变文件或目录的隐藏属性,而lsattr命令则用于查看其属性 。
语法格式:lsattr [参数] [文件]
常用参数:
-a 列出目录中的所有文件,包括隐藏文件
-d 只显示目录名称
-R 递归地处理指定目录下的所有文件及子目录
-v 显示文件或目录版本
-V 显示版本信息
-D 显示属性的名称、默认值
-E 显示从用户设备数据库中获得属性的当前值
Linux命令教程案例::
使用 lsattr 命令来显示文件属性:
[root@fgedu.net ~]# lsattr /etc/resolv.conf
显示设备en0当前有效值:
[root@fgedu.net ~]# lsattr -E -H -l en0
显示eno的arp属性的值:
[root@fgedu.net ~]# lsattr -R -l en0 -a arp
要显示 rmt0 磁带设备的当前属性值:
[root@fgedu.net ~]# lsattr -l rmt0 -E
要显示 rmt0 磁带设备的缺省属性值 :
[root@fgedu.net ~]# lsattr -l rmt0 -D
4.Linux命令-Linux文件管理命令24:last命令
last命令的作用是显示近期用户或终端的登录情况,通过查看系统记录的日志文件内容,进而使管理员可以获知谁曾经或者企图连接系统。
执行last命令时,它会读取/var/log目录下名称为wtmp的文件,并把该文件记录的登录系统或终端的用户名单全部显示出来。默认显示wtmp的记录,btmp能显示的更详细,可以显示远程登录,例如ssh登录。
语法格式:last [选项]
常用参数:
-R 省略hostname的栏位
usename 展示username的登入讯息
tty 限制登入讯息包含的终端代号
Linux命令教程案例:
显示近期用户或终端的登录情况:
[root@fgedu.net ~]# last
简略显示,并指定显示的个数:
[root@fgedu.net ~]# last -n 5 -R
显示最后一列显示主机IP地址:
[root@fgedu.net ~]# last -n 5 -a -i
5.Linux命令-Linux文件管理命令25:chmod命令
chmod命令的英文原意是“change the permissions mode of a file”,我们简称为“change mode”,意为用来改变文件或目录权限的命令,但是只有文件的属主和超级用户root才能执行这个命令。有两种模式,一种是采用权限字母和操作符表达式;另一种是采用数字。
语法格式: chmod [参数] [文件]
常用参数:
-c 若该文件权限确实已经更改,才显示其更改动作
-f 若该文件权限无法被更改也不显示错误讯息
-v 显示权限变更的详细资料
-R 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
Linux命令教程案例:
将档案 file1.txt 设为所有人皆可读取:
[root@fgedu.net ~]# chmod a+r file.txt
将目前目录下的所有文件与子目录皆设为任何人可读取 :
[root@fgedu.net ~]# chmod -R a+r *
将 file.txt 设定为只有该文件拥有者可以执行:
[root@fgedu.net ~]# chmod u+x file.txt
6.Linux命令-Linux文件管理命令26:scp命令
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。 scp命令用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。
当你服务器硬盘变为只读read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。
语法格式:scp [参数] [文件]
常用参数:
-1 使用ssh协议版本1-2
-2 使用ssh协议版本2
-4 使用ipv4
-6 使用ipv6
-B 以批处理模式运行
-C 使用压缩
-F 指定ssh配置文件
-l 指定宽带限制
-o 指定使用的ssh选项
-P 指定远程主机的端口号
-p 保留文件的最后修改时间,最后访问时间和权限模式
-q 不显示复制进度
-r 以递归方式复制
Linux命令教程案例:
从远程复制文件到本地目录:
[root@fgedu.net ~]# scp root@192.168.1.51:/opt/soft/rhel-server-7.1-x86_64.tar.gz /opt/soft/
从远程复制目录到本地:
[root@fgedu.net ~]# scp -r root@1.51.1.51:/opt/soft/mysql /opt/soft/
上传本地文件到远程机器指定目录:
[root@fgedu.net ~]# scp /soft/rhel-server-7.1-x86_64.tar.gz root@192.168.1.51:/soft/scptest
上传本地目录到远程机器指定目录:
[root@fgedu.net ~]# scp -r /soft/mysql root@192.168.1.51:/soft/scptest
保留文件的最后修改时间,最后访问时间和权限模式:
[root@fgedu.net ~]# scp -p /root/install.log root@192.168.1.51:/tmp
7.Linux命令-Linux文件管理命令27:md5sum命令
md5sum命令用于生成和校验文件的md5值。它会逐位对文件的内容进行校验。是文件的内容,与文件名无关,也就是文件内容相同,其md5值相同。
md5值是一个128位的二进制数据,转换成16进制则是32(128/4)位的进制值。
语法格式:md5sum [参数] [文件]
常用参数:
-b 以二进制模式读取文件
-t 以文本模式读入文件内容
-c 根据已生成的md5值,对现存文件进行校验
-w 检查输入的md5信息有没有非法行,若有则输出相应信息
--status 校验完成后,不生成错误或正确的提示信息,可以通过命令的返回值来判断
Linux命令教程案例:
生成文件md5值:
[root@fgedu.net ~]# md5sum file
文件内容校验:
[root@fgedu.net ~]# md5sum -c d.md5
8.Linux命令-Linux文件管理命令28:more命令
more命令用于将内容较长的文本文件内容(不能在一屏显示完)进行分屏显示,并且支持在显示时定位关键字。而对于内容较少的文本文件内容则推荐使用cat命令查看。
语法格式:more [参数] [文件]
常用参数:
-num 指定每屏显示的行数
-l more在通常情况下把 ^L 当作特殊字符, 遇到这个字符就会暂停,-l选项可以阻止这种特性
-f 计算实际的行数,而非自动换行的行数
-p 先清除屏幕再显示文本文件的剩余内容
-c 与-p相似,不滚屏,先显示内容再清除旧内容
-s 多个空行压缩成一行显示
-u 禁止下划线
+/pattern 在每个文档显示前搜寻该字(pattern),然后从该字串之后开始显示
+num 从第 num 行开始显示
命令内部操作:
Space键:显示文本的下一屏内容
Enter键:向下n行,需要定义,默认为1行
斜线符\:接着输入一个模式,可以在文本中寻找下一个相匹配的模式
H键:显示帮助屏
B键:显示上一屏内容
Q键:退出more命令
Ctrl+F、空格键:向下滚动一屏
Ctrl+B:返回上一屏
=: 输出当前的行号
:f:输出文件名和当前的行号
V:调用vi编辑器
!:调用Shell,并执行命令
Linux命令教程案例:
显示文件file的内容,显示之前先清屏,附已显示的百分比:
[root@fgedu.net ~]# more -dc file
显示文件file的内容,每10行显示一次,而且在显示之前先清屏:
[root@fgedu.net ~]# more -c -10 file
显示文件file的内容,每5行显示一次,而且在显示之后再清屏:
[root@fgedu.net ~]# more -p -5 file
逐页显示 file 文档内容,如有连续两行以上空白行则以一行空白行显示 :
[root@fgedu.net ~]# more -s file
从第 20 行开始显示 file 之文档内容 :
[root@fgedu.net ~]# more +20 file
9.Linux命令-Linux文件管理命令29:rcp命令
rcp命令的英文是“remote file copy”,即远程文件复制,可以使在两台Linux主机之间的文件复制操作更简单。通过适当的配置,在两台Linux主机之间复制文件而无需输入密码,就像本地文件复制一样简单。
rcp指令用在远端复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到该目录中。
rcp命令默认系统没有安装,需要安装rsh和rsh-server这2个库,通过配置实现网络文件复制。
语法格式:rcp [参数] [目录]
常用参数:
-p 保留源文件或目录的属性,包括拥有者,所属群组,权限与时间
-r 递归处理,将指定目录下的文件与子目录一并处理
-x 加密两台Linux主机间传送的所有信息
-D 指定远程服务器的端口号
Linux命令教程案例:
将当前目录下test1复制到远程系统:
[root@fgedu.net ~]# rcp test1 192.168.1.51:/home/test1
复制远程主机文件到本地:
[root@fgedu.net ~]# rcp root@192.168.1.51:./test2 test2
10.Linux命令-Linux文件管理命令30:alias命令
alias命令用来设置指令的别名。我们可以使用该命令可以将一些较长的命令进行简化。使用alias时,用户必须使用单引号 ‘ ‘ 将原来的命令引起来,防止特殊字符导致错误。
alias命令的作用只局限于该次登入的操作。若要每次登入都能够使用这些命令别名,则可将相应的alias命令存放到bash的初始化文件 /etc/bashrc中。
语法格式:alias [参数]
常用参数:
-p 打印已经设置的命令别名
Linux命令教程案例:
查看系统已经设置的别名:
[root@fgedu.net ~]# alias -p
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
给命令设置别名 :
[root@fgedu.net ~]# alias lx=ls
[root@fgedu.net ~]# lx
anaconda-ks.cfg Desktop install.log install.log.syslog qte