**
cat命令
**
cat -n file
:显示行号,包括所有空白行
cat -b file
:显示行号,不包括空行
cat -s file
:多个空行显示为一个
cat -v file
:识别特殊符号 (注:Windows上创建的文件并写入了内容,在Linux系统上显示的时候,就有一定几率显示为特殊字符。例如Windows上的换行在Linux上就显示为^M)
cat -E file
:在每行结尾加
(
可
以
判
断
行
后
有
没
有
空
格
)
‘
c
a
t
−
T
f
i
l
e
‘
:
识
别
T
A
B
(
I
为
T
A
B
)
T
A
B
表
示
为
4
个
空
格
‘
c
a
t
−
A
f
i
l
e
‘
:
识
别
特
殊
符
号
、
T
A
B
,
并
且
在
每
行
结
尾
加
(可以判断行后有没有空格) `cat -T file` :识别TAB (^I为TAB)TAB表示为4个空格 `cat -A file` :识别特殊符号 、TAB,并且在每行结尾加
(可以判断行后有没有空格)‘cat−Tfile‘:识别TAB(I为TAB)TAB表示为4个空格‘cat−Afile‘:识别特殊符号、TAB,并且在每行结尾加
cat -e file
:识别特殊符号,并在每行结尾加$
cat -t file
:识别特殊符号、TAB
**
diff命令
**:对比两个文件异同。
diff test001 test002 -y -W 60
:将test001的文件内容与test002的文件内容进行对比。-y表示同屏同行对比。-W 60 表示同行的宽度为60
vimdiff test001 test002
:用vim中的内容对比工具进行文件的内容对比 (该模式下和用vim编辑器打开文件一样,都是可以对文件进行编辑修改。且先编辑左边文本,待左边文本保存退出后才可以编辑右边的文本)
**
grep命令
**:显示过滤后的内容。
grep -n 'ROOT' passwd
:打印匹配到root的内容即内容所在行的行号。
grep -w 'ROOT' passwd
:默认以字符匹配,w以单词匹配。
grep -i 'ROOT' passwd
:-i的作用是不区分大小写
grep -o 'ROOT' passwd
:只显示匹配到的内容
grep -v 'ROOT' passwd
:取反
grep -nB 2 'ROOT' passwd
:打印所匹配到内容的所在行到所匹配行的之前2行,总计3行
grep -nA 2 'ROOT' passwd
:打印所匹配到内容的所在行到所匹配行的之后2行,总计3行。
grep -nC 2 'ROOT' passwd
:打印以匹配到内容的所在行为中心的之前2行和之后2行,总计5行。
**
touch命令
** :默认文件存在,修改文件访问属性;文件不存在,创建文件。
touch -a file2
:修改文件access时间(change时间也会改动)—修改为当前的系统时间
touch -c file4
:若文件不存在则不创建文件。
touch -d 19710101 file3
:指定时间创建文件(change时间不改变,change时间受系统时间影响)
touch -r file8 file9
:按指定文件的时间创建文件(即file9使用file8的access时间和modify时间)
touch -t 197107010101 file9
:将时间修改为指定时间(不能加秒)
可使用stat
命令查看文件的以下三个时间。
access 表示最后一次访问(仅仅是访问,没有改动)文件的时间 —cat 和vim命令会改变这个时间
modify 表示最后一次修改文件的时间 —vim 命令会改变这个时间。
change 表示最后一次对文件属性改变的时间,包括权限,大小,属性等等 --cat命令不会改变这个时间,但是这个时间无法被touch命令修改。(但是可以通过)
**
文件存储
**
inode
:文件的权限、属性信息,起指向作用,有程序或者进程访问文件,是通过inode
来访问存于block
的文件的内容。删除文件时,也是删除inode
,而不会是删除block
,block
的内容会保留。当有新的inode
需要使用block
的内容时,会覆盖掉之前的内容。(一个文件只使用一个inode,但是有可能使用多个block区)
block
:文件的实际内容。(一个block 大小为4k)
superblock:保存的内容为inode和block的数量,使用量等
**
链接文件
**
硬链接: 链接到源文件的inode上;
软连接: 创建了一个文件,拥有自己的inode,对应的block中存放云文件的路径。
ln sourceFile destfile ---->不能连接目录
删除源文件或者链接文件,互不影响
ln -s sourceFile destfile -----> 链接目录
删除链接文件,源文件不影响,删除源文件,链接文件就失效(存在)。—即链接文件的作用失效,但链接文件依然存在。
如果链接的是目录,需要删除目录文件dir:
rm -rf dir/
(错误的删除文件命令格式)
rm -rf dir
(正确的)
**
file 命令
**:linux系统不会以文件后缀来识别文件,所以想要知道文件的类型的时候可以使用file命令查看文件的类型。
file test001
:文件类型
file /usr/bin/ls
:识别编码格式
**
cp命令
**:cp
是cp-i
的别名。(-i
的效果是:当复制后的文件存在时,会提示用户是否覆盖文件)
cp -f
:强制覆盖(cp命令默认有此效果)
cp -r anliu anliu.abk1
: 递归复制目录
cp -d file1 file3
:复制链接
cp -p file file.bak3
:不修改源文件的文件属性(时间戳,文件属主属组(root))
cp -P /opt/file1 file6
: 复制完整链接
**
find命令
** :查找的命令,必须加目录
find /etc/ -name passwd
:表示查找根目录下的etc目录下的文件名为passwd的文件。-name表示按照文件名查找。
find /etc -name passwd -print
:-print 表示将结果输出到标准输出。
find /etc -name passwd -print0
:-print0 表示将输出结果不换行。
find . -name file1 -exec rm -rf {} \;
:-exec 表示对匹配的文件执行该参数所给出的shell命令。此条命令代表着删除查找出来的文件 。.
代表当前目录下。
find . -name file2 -exec du -h {} \;
:此条命令表示打印出用find查找出来的文件路径及文件名及文件大小。
find . -name file2 -exec ls -l {} \;
:此条命令将把find查找出来的信息作为ll
命令执行的参数,执行ll
。
find . -name file2 -ok rm -rf {} \;
:-ok
的作用是提示你是否进行执行删除文件的操作。
find . -perm 777
:表示按照权限查找
find . -user test01
: 表示按照文件属主查找
find . -group test01
:表示按照文件数组查找
find . -type l
:表示按照文件类型查找
find . -type d
:表示按照文件类型查找
find / -size +50k -a -size -60k -exec ls -l {} ;
:查找占用内存大于50k,小于60k的文件。
**
rm命令
**:删除原理: 本质删除的是文件名,即删除inode文件,block文件的文件内容不删除。Linux是通过link的数量来控制文件删除的,只有当一个文件不存在任何link的时候,这个文件才会被删除,一般来说,每个文件都有两个link计数器:i_count
和i_nlink
。
i_count
的意义是当前文件使用这个文件的进程的数量,i_nlink
的意义是介质连接的数量(硬链接的数量);可以理解为i_count
是内存引用计数器,i_nlink
是磁盘引用计数器。
rm命令删除的是i_nlink
,当文件的i_nlink
被删除,但是删除之前该文件被其他进程使用着,此时该文件的i_count的数量不为0,所以该文件此时并没有被真正删除,只有解除进程对该文件的调用,才能真正的删除该文件。
\rm -i file1.abk
:rm
是rm -i
的别名,-i
的作用是删除文件时给出提示
rm -r anliu.abk
:-r
的作用是递归删除目录下面文件以及子目录下的文件
rm -rf anliu.abk
:-f
表示强制删除,忽略不存在的文件,从不给出提示。
rm -rvf 123/
:-v
表示显示运行时的详细信息
**
当系统根目录被打满时,该如何定位?
**
(1) 查看系统上的大文件
[root@admin mail]# find / -size +10M -exec ls -lh {} ;
(2) 分析大文件是否有异常文件
日志文件,/var/spool/mail/username
(3) 若能正常使用进程管理工具 ---->查看异常进程
若不能正常使用进程管理工具 ----> echo “” > 异常文件 -->查看异常进程
(4) 分析问题原因