Linux学习之Linux常用命令07_Linux命令大全_Linux文件管理03_cd命令_wc命令
风哥针对大家学习Linux常用命令时,涉及到很多的Linux文件管理类命令大全,接下来风哥就重点为大家介绍这些Linux命令的作用及这些Linux命令的使用案例教程(Linux文件管理11-20):
1.Linux命令-Linux文件管理命令11:chattr命令
chattr指令可改变linux文件系统的文件属性,通用格式为:+-=[aAcCdDeijsStTu]
“ aAcCdDeijsStTu ” 表示可以赋予文件的新属性,这些属性共有以下几种模式 。
a:让文件或目录仅供附加用途;
A:当一个具有“A”属性的文件被访问时,它的atime记录不会被修改;
c:将文件或目录压缩后存放;
d:将文件或目录排除在倾倒操作之外;
i:不得任意更动文件或目录;
j:如果文件系统安装有“data=order”或“data=writeback”选项,则具有“j”属性的文件在写入文件本身之前将其所有数据写入ext 3日志;
s:当删除具有“s”属性集的文件时,其块将被归零并写回磁盘;
S:当修改具有“S”属性集的文件时,更改将同步写入磁盘;这相当于应用于文件子集的“同步”挂载选项;
u:当删除具有‘u’属性集的文件时,它的内容将被保存。
语法格式:chattr [参数] [文件]
实用参数:
-R 递归处理目录下的所有文件
-v 设置文件或目录版本
-V 显示指令执行过程
+ 开启文件或目录的该项属性
-- 关闭文件或目录的该项属性
= 指定文件或目录的该项属性
Linux命令教程案例
用chattr命令防止系统中某个关键文件被修改(加锁):
[root@fgedu.net ~]# chattr +i /etc/resolv.conf
解锁:
[root@fgedu.net ~]# chattr -i /home/omd/h.txt
让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
[root@fgedu.net ~]# chattr +a /var/log/messages
2.Linux命令-Linux文件管理命令12:cd命令
cd命令是”change directory”中单词的首字母缩写,其英文释义是改变目录,所以该命令的功能是从当前目录切换到指定目录。
其中目录的路径可分为绝对路径和相对路径。若目录名称省略,则切换至使用者的用户目录(也就是刚登录时所在的目录)。
另外,“~”也表示为用户目录的意思,“.”则是表示目前所在的目录,“..”则表示当前目录位置的上一级目录。
语法格式:cd [参数] [目录名]
常用参数:
-P 如果切换的目标目录是一个符号链接,则直接切换到符号链接指向的目标目录
-L 如果切换的目标目录是一个符号链接,则直接切换到符号链接名所在的目录
-- 仅使用”-“选项时,当前目录将被切换到环境变量”OLDPWD”对应值的目录
~ 切换至当前用户目录
.. 切换至当前目录位置的上一级目录
Linux命令教程案例
将当前工作目录切换到dir目录,并使用pwd命令查看当前目录:
[root@fgedu.net ~]# cd dir
[root@itpux dir]# pwd
/root/dir
使用“cd ~ ”和“cd .. ”命令进行目录的切换操作,并使用pwd命令查看当前目录:
注意:使用“cd ~ ”命令可以直接切换到当前用户目录,而“cd .. ”是切换到上一级目录。
[root@itpux dir]# pwd
/root/dir
[root@itpux dir]# cd ~
[root@fgedu.net ~]# pwd
/root
[root@itpux dir]# pwd
/root/dir
[root@itpux dir]# cd ..
[root@itpux dir]# pwd
/root
使用“cd ../..”命令返回上两级目录:
[root@itpux dir_2]# pwd
/root/dir/dir_1/dir_2
[root@itpux dir_2]# cd ../..
[root@itpux dir]# pwd
/root/dir
使用“cd”命令返回当前用户目录。“cd -- ” 命令返回上一次所在目录:
[root@itpux dir_2]# pwd
/root/dir/dir_1/dir_2
[root@itpux dir_2]# cd
[root@fgedu.net ~]# pwd
/root
[root@fgedu.net ~]# cd -
/root/dir/dir_1/dir_2
[root@itpux dir_2]# pwd
/root/dir/dir_1/dir_2
3.Linux命令-Linux文件管理命令13:traceroute命令
traceroute命令用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节。通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。
traceroute通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设备的名称(如有的话)及其ip地址。
语法格式:traceroute [参数] [域名或者IP]
常用参数:
-d 使用Socket层级的排错功能
-f<存活数值> 设置第一个检测数据包的存活数值TTL的大小
-F 设置勿离断位
-g<网关> 设置来源路由网关,最多可设置8个
-i<网络界面> 使用指定的网络界面送出数据包
-I 使用ICMP回应取代UDP资料信息
-m<存活数值> 设置检测数据包的最大存活数值TTL的大小
-n 直接使用IP地址而非主机名称
-p<通信端口> 设置UDP传输协议的通信端口
-r 忽略普通的Routing Table,直接将数据包送到远端主机上
-s<来源地址> 设置本地主机送出数据包的IP地址
-t<服务类型> 设置检测数据包的TOS数值
-v 详细显示指令的执行过程
-w 设置等待远端主机回报的时间
-x 开启或关闭数据包的正确性检验
Linux命令教程案例
追踪本地数据包到www.fgedu.net的传输路径:
[root@fgedu.net ~]# traceroute www.fgedu.net
跳数设置:
[root@fgedu.net ~]# traceroute -m 7 www.fgedu.net
显示IP地址,不查主机名 :
[root@fgedu.net ~]# traceroute -n www.fgedu.net
把探测包的个数设置为值4:
[root@fgedu.net ~]# traceroute -q 4 www.fgedu.net
把对外发探测包的等待响应时间设置为3秒:
[root@fgedu.net ~]# traceroute -w 3 www.fgedu.net
4.Linux命令-Linux文件管理命令14:cksum命令
cksum命令用于检查文件的CRC是否正确, 确保文件从一个系统传输到另一个系统的过程中的正确性 。循环冗余校验法 ( CRC )是一种排错检查方式,该校验法的标准由CCITT所指定,至少可检测到99.998%的已知错误。
这种方法要求校验和在源系统和目的系统中分别被计算出来,之后进行比较,如果校验和相等,则认为该文件传输正确。若不指定任何文件名称或是所给予的文件名为”-“,则指令”cksum”会从标准输入设备中读取数据。
语法格式:cksum [参数] [文件]
常用参数:
--help 在线帮助
--version 显示版本信息
Linux命令教程案例
计算文件“tempfile”的完整性:
[root@fgedu.net ~]# cksum tempfile
4294967295 0 tempfile
注:“4294967295”表示校验码,“0”表示字节数。
5.Linux命令-Linux文件管理命令15:locate命令
locate命令其实是find -itpux1的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,值得注意的是:版本不同,会有所不同。有的版本位置是 /var/lib/mlocate/mlocatedb ,还有的是/var/lib/slocate/slocate.db ,这个数据库中含有本地所有文件信息。
Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
语法格式:locate [参数] [文件]
常用参数:
-d<目录>或--database=<目录> 指定数据库所在的目录
--help 显示帮助
--version 显示版本信息
Linux命令教程案例
搜索/etc目录下所有以sh开头的文件:
[root@fgedu.net ~]# locate /etc/sh
/etc/shadow
/etc/shadow-
/etc/shells
搜索/etc目录下以k开头的文件:
[root@fgedu.net ~]# locate /etc/k
/etc/kdump.conf
/etc/kernel
/etc/krb5.conf
/etc/krb5.conf.d
/etc/ksmtuned.conf
/etc/kernel/postinst.d
/etc/kernel/postinst.d/51-dracut-rescue-postinst.sh
查找和pwd相关的所有文件:
[root@fgedu.net ~]# locate pwd
/boot/extlinux/pwd.c32
/etc/.pwd.lock
/usr/bin/pwd
/usr/bin/pwdx
/usr/include/pwd.h
6.Linux命令-Linux文件管理命令16:wc命令
wc命令统计指定文件中的字节数、字数、行数,并将统计结果显示输出。利用wc指令我们可以计算文件的Byte数、字数或是列数,若不指定文件名称,或是所给予的文件名为“-”,则wc指令会从标准输入设备读取数据。wc同时也给出所指定文件的总统计数。
语法格式:wc [参数] [文件]
常用参数:
-w 统计字数,或--words:只显示字数。一个字被定义为由空白、跳格或换行字符分隔的字符串
-c 统计字节数,或--bytes或--chars:只显示Bytes数
-l 统计行数,或--lines:只显示列数
-m 统计字符数
-L 打印最长行的长度
--help 显示帮助信息
--version 显示版本信息
Linux命令教程案例
统计字数:
[root@fgedu.net ~]# cat itpux.txt
hello world
hello world
hello world
hello world hello world
[root@fgedu.net ~]# wc -w itpux.txt
10 itpux.txt
统计字节数:
[root@fgedu.net ~]# wc -c itpux.txt
60 itpux.txt
统计字符数:
[root@fgedu.net ~]# wc -m itpux.txt
60 itpux.txt
统计行数:
[root@fgedu.net ~]# wc -l itpux.txt
4 itpux.txt
打印最长行的长度:
[root@fgedu.net ~]# wc -L itpux.txt
23 itpux.txt
7.Linux命令-Linux文件管理命令17:which命令
which命令的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
运维人员在日常工作中经常使用which命令来检查某个系统命令是否存在,或者找出所执行命令所对应的具体位置。
语法格式:which [参数] [文件]
常用参数:
-n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名
-p 与-n参数相同,但此处的<文件名长度>包括了文件的路径
-w 指定输出时栏位的宽度
-V 显示版本信息
Linux命令教程案例
查找文件、显示命令路径:
[root@fgedu.net ~]# which bash
/bin/bash
[root@fgedu.net ~]# which adduser
/usr/sbin/adduser
说明:which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!所以,不同的 PATH 配置内容所找到的命令当然不一样的!
使用which去找which:
[root@fgedu.net ~]# which which
alias which='alias|/usr/bin/which --tty-only --read-alias --show-dot --show-tilde'/usr/bin/which
说明:竟然会有两个 which ,其中一个是 alias 这就是所谓的[命令别名],意思是输入 which 会等于后面接的那串命令! 实Bash内建命令无法查找到如cd命令 :
[root@fgedu.net ~]# which cd
说明:cd 这个常用的命令竟然找不到啊!为什么呢?这是因为 cd 是bash 内建的命令! 但是 which 默认是找 PATH 内所规范的目录,所以当然一定找不到的!
查看默认的jdk:
[root@fgedu.net ~]# which java
/usr/bin/java
which查找的目录,PATH变量的值:
[root@fgedu.net ~]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
8.Linux命令-Linux文件管理命令18:cmp命令
cmp命令有用于比较两个任意类型的文件,若两个文件相同则默认不输出任何信息,若两个文件不同,则会输出第一个不同之处的字符和列数编号,结果输出到标准输出。
若不指定任何文件名称或是所给予的文件名为”-“,则cmp命令会从标准输入设备读取数据。
语法格式:cmp [参数] [文件] [文件]
常用参数:
--help 显示帮助
-v/--version 显示版本信息
-s/--quit/--silent 不显示错误信息
-l/--verbose 标示出所有不一样的地方
-i/--ignore-initial 指定一个数目
-c/--print-chars 除了标明差异处的十进制字码之外,一并显示该字符所对应字符
Linux命令教程案例
比较文件“tempfile”和“tempfile1”(两文件相同时,不显示任何信息,两文件不同时):
[root@fgedu.net ~]# cmp tempfile tempfile1
tempfile tempfile1 differ:byte 1, line 1
比较文件“tempfile”和“tempfile1” ,不显示错误信息:
[root@fgedu.net ~]# cmp -s tempfile tempfile1
比较文件“tempfile”和“tempfile1”,标示出所有不一样的地方:
[root@fgedu.net ~]# cmp -l tempfile tempfile1
1 12 151
2 151 167
8 167 12
cmp: EOF on tempfole1 after byte8
比较文件“tempfile”和“tempfile1” ,指定一个数目:
[root@fgedu.net ~]# cmp -i 2 tempfile tempfile1
tempfile tempfile1 differ:byte 6, line 1
比较文件“tempfile”和“tempfile1” , 除了标明差异处的十进制字码之外,一并显示该字符所对应字符:
[root@fgedu.net ~]# cmp -c tempfile tempfile1
tempfile tempfile1 differ:byte 1, line 1 is 12 'J 151 i
9.Linux命令-Linux文件管理命令19:cut命令
cut命令有两个主要的功能,第一是显示文件内容,第二是连接多个或多个文件。
若不指定file参数,该命令将读取标准输入。 必须指定 -b、-c 或 -f 标志之一。
语法格式:cut [参数] [文件]
常用参数:
-b 以字节为单位进行分割 ,仅显示行中指定直接范围的内容
-c 以字符为单位进行分割 , 仅显示行中指定范围的字符
-d 自定义分隔符,默认为制表符”TAB”
-f 显示指定字段的内容 , 与-d一起使用
-n 取消分割多字节字符
--complement 补足被选择的字节、字符或字段
--out-delimiter 指定输出内容是的字段分割符
Linux命令教程案例
假设有一个学生报表信息,包含 No、itpux1、Mark、Percent:
[root@fgedu.net ~]# cat student.txt
No itpux1 Mark Percent
01 itpux2 69 91
02 itpux3 71 87
03 itpux4 68 98
使用 -f 选项提取指定字段(这里的 f 参数可以简单记忆为 --fields的缩写):
[root@fgedu.net ~]# cut -f 2 student.txt
itpux1
itpux2
itpux3
itpux4
--complement 选项提取指定字段之外的列(打印除了第二列之外的列):
[root@fgedu.net ~]# cut -f2 --complement student.txt
No Mark Percent
01 69 91
02 71 87
03 68 98
使用 -d 选项指定字段分隔符:
[root@fgedu.net ~]# cat student2.txt
No;itpux1;Mark;Percent
01;itpux2;69;91
02;itpux3;71;87
03;itpux4;68;98
[root@fgedu.net ~]# cut -f2 -d";" student2.txt
itpux1
itpux2
itpux3
itpux4
[root@fgedu.net ~]# cat test.txt
itpuxfgedu01
itpuxfgedu02
itpuxfgedu03
itpuxfgedu04
itpuxfgedu05
打印第 1 个到第 5 个字符:
[root@fgedu.net ~]# cut -c1-5 test.txt
itpux
itpux
itpux
itpux
itpux
注意:-b 表示字节;-c 表示字符;-f 表示定义字段。
N- :从第 N 个字节、字符、字段到结尾; N-M :从第 N 个字节、字符、字段到第 M 个(包括 M 在内)字节、字符、段; -M :从第 1 个字节、字符、字段到第 M 个(包括 M 在内)字节、字符、字段。
打印前 2 个字符:
[root@fgedu.net ~]# cut -c-2 test.txt
it
it
it
it
it
打印从第 6 个字符开始到结尾:
[root@fgedu.net ~]# cut -c6- test.txt
fgedu01
fgedu02
fgedu03
fgedu04
fgedu05
10.Linux命令-Linux文件管理命令20:file命令
file命令用来识别文件类型,也可用来辨别一些文件的编码格式。它是通过查看文件的头部信息来获取文件类型,而不是像Windows通过扩展名来确定文件类型的。
语法格式:file [参数] [文件]
常用参数:
-b 列出辨识结果时,不显示文件名称 (简要模式)
-c 详细显示指令执行过程,便于排错或分析程序执行的情形
常与 -m 一起使用,用来在安装幻数文件之前调试它
-f 指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称
-L 直接显示符号连接所指向的文件类别
-m 指定魔法数字文件
-v 显示版本信息
-z 尝试去解读压缩文件的内容
-i 显示MIME类别
Linux命令教程案例:
显示文件类型:
[root@fgedu.net ~]# file install.log
install.log: UTF-8 Unicode text
显示文件类型,不显示文件名称:
[root@fgedu.net ~]# file -b install.log
UTF-8 Unicode text
显示文件类型, 显示MIME类别,不显示文件名称:
[root@fgedu.net ~]# file -b -i install.log
text/plain; charset=utf-8
显示符号链接的文件类型:
[root@fgedu.net ~]# ls -l /var/mail
lrwxrwxrwx 1 root root 10 08-13 00:11 /var/mail -> spool/mail
[root@fgedu.net ~]# file /var/mail
/var/mail: symbolic link to `spool/mail'
显示符号连接所指向的文件类别:
[root@fgedu.net ~]# file -L /var/mail
/var/mail: directory
less命令
浏览文字档案的内容,用less命令显示文件时,PageUp键向上翻页,PageDown键向下翻页,要退出less程序,应按Q键。
less的作用与more十分相似,不同点为less命令允许用户向前或向后浏览文件,而more命令只能向前浏览 。
语法格式:less [参数] [文件]
常用参数:
-b 置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 在单行显示较长的内容,而不换行显示
-x 将TAB字符显示为指定个数的空格字符
命令内部操作:
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行
Linux命令教程案例
查看文件 :
[root@fgedu.net ~]# less test.php
ps查看进程信息并通过less分页显示:
[root@fgedu.net ~]# ps -ef |less
查看命令历史使用记录并通过less分页显示:
[root@fgedu.net ~]# history | less
22 scp -r itpux2cat6.0.32 root@192.168.1.51:/opt/soft 23 cd ..
24 scp -r web root@192.168.1.51:/opt/
25 cd soft
……省略……
浏览多个文件 :
[root@fgedu.net ~]# less log2018.log log2019.log
当正在浏览一个文件时,也可以使用 :e命令 打开另一个文件:
[root@fgedu.net ~]# less file1
:e file2