pwd:print working directory,显示当前工作目录
用法:pwd OPTION COMMAND
例如:[root@lab-235 ~]# pwd
/root
cd:change directory,切换指定目录
用法:cd OPTION dir
例如: cd或者cd ~ 切换到用户家目录
cd - 返回最近一次所在的目录
cd.. 切换到当前目录的上一级目录
tree:以树状形式列出目录的内容
用法:tree OPTION dir
选项:
-L:遍历目录的层级数
-d:只显示目录
-a:显示所有文件包含隐藏文件
-f:显示完整的路径名
-i:不显示树枝部分
例如:tree -L 2 /etc
tree -d /etc
默认不加选项和参数,tree命令遍历当前所在目录
使用技巧:tree -F /etc/ 使用-F会在目录后加“/”可以区分文件和目录
mkdir:make directory,创建目录;如果创建的目录已经存在,则提示该目录已存在,无法创建
用法:mkdir option dirname
选项:
-p:递归创建目录,即创建目录的父目录不存在,则先创建父目录,如果目录已存在也不会报错,会继续创建目录
-m:设置创建目录的默认对应权限
例如:mkdir adong
mkdir -p test/adong
mkdir -m 777 xiaodong 创建xiaodong目录,并将该目录属主和属组以及其他人权限设置为读写执行
使用技巧:同时创建多个目录以及子目录
mkdir -p adong/dir{1..5}/name/dir1{_1,_2}
目录克隆
tree -fid --noreport adong >> ./dir.txt
--noreport 表示不显示最后统计信息
mkdir -p cat ./dir.txt
touch:文件不存在时,创建一个新的文件,文件存在,则修改文件的时间戳属性
用法:touch option file
选项:
-a:修改指定文件的最后访问时间
-m:更改指定文件的最后修改时间
-d:指定创建文件后的文件修改时间
-r:将touch的文件时间属性与指定文件时间属性修改为一致
例如:touch file1
touch -a file 文件的atime发生改变
touch file 当file存在时,此file的atime和mtime以及ctime全部改变
touch -m file 文件的mtime和ctime发生改变
touch -d 20111111 file 文件的atime和mtime改变为指定的日期,ctime跟随系统时间
注意:文件的三个时间
atime:文件最近一次的访问时间
mtime:文件最近一次的修改时间,是指内容上的
ctime:文件属性和权限最近一次改变的时间
ls:列出目录的内容及其内容属性信息
用法:ls option file
选项:
-l:长格式显示文件及目录信息,即查看文件属性信息
-a:列出所有文件,包含隐藏文件
-A:列出所有文件,不包含.和..
-t:列出文件并根据mtime排序
-u:列出文件并根据atime排序
-c:列出文件并根据ctime排序
-r:列出文件,逆序排列
-d:列出目录本身
-S:根据文件大小排序
-R:递归列出所有子目录
例如:ls 直接ls,显示当前目录所有文件,不包含隐藏文件
ls -a 显示当前目录所有文件,包含隐藏文件
ls -F等同tree -F显示效果,但是ls的-F选项是在文件结尾加上文件类型指示符号
cp:copy,复制文件或目录
用法:cp option source dest
cp 选项 源文件 目标文件
选项:
-p:复制文件时保持源文件的所有者,权限信息及时间属性
-d:如果复制源文件是符号连接,则仅复制符号连接本身,而且保留符号连接指向的目标文件或目录
-r:递归复制,即复制目录下的所有文件及子目录
-a:等同p/d/r三个选项功能一起
实例:
复制目录:cp -r dir1 dir2 复制目录必须要-r选项
复制文件保留文件时间属性:cp -a file1 file2
复制技巧:cp /dir1/ssh/file1 /dir1/ssh/file2等同:cp /dir1/ssh/file1{,2}
mv:move,移动或重命名文件
用法:mv option source dest
mv 选项 源文件 目标文件
选项:
-f:不做任何提示,直接覆盖,即使目标文件已经存在
-n:不覆盖已经存在的文件
-u:只有在源文件比目标文件新,或者目标文件不存在时才进行移动
实例:
重命名:mv file file12
移动目录:mv dir dir2 如果目标目录已存在,则将源目录移动到目标目录里面
移动文件:mv file dir2 如果目标文件已经存在,则提示是否覆盖
rm:remove,删除命令
用法:rm option file
rm 选项 文件
选项:
-f:强制删除,不做任何提示
-r:递归删除,删除目录时必须加该选项
注意:rm是凶煞之器,尽量少用,实际工作中可以用mv代替,自建一个目录当作回收站,可以将不要的文件移动到回收站中。
如果要删除操作,一定要提前做一下备份,以便出现问题可以还原
删除文件时,必须切换到文件所在目录,且使用rm -f 文件名,尽量不要使用-r选项,以免误删目录,文件名尽可能不要使用通配符,如果非要使用,请再三仔细检查通配符匹配是否有问题
rmdir:删除空目录
用法:rmdir option dir
rmdir 选项 目录
选项:-p:递归删除
实例:
rmdir -p dir
注意:此命令只针对空目录,非空目录无法删除
ln:硬链接和软连接
用法:ln option source dest
ln 选项 源文件或目录 目标文件或目录
选项:
无选项:创建硬链接
-s:创建软连接(符号链接)
硬链接生成的是普通文件(-)
软连接生成的是符号连接文件(l)
什么是硬链接:是指通过iNode编号来进行连接,在linux系统中,一个iNode编号可以允许多个文件同时指向,相当于为文件打开多个有效路径入口,以便防止误删除源数据
实例:ln file xiaosan
什么是软连接:软连接又称符号连接,是文件的一个链接文件,且iNode编号不同,相当于文件的一个快捷方式,当源文件被删除时,软连接文件也会失效,而删除软连接文件,则不会影响源文件
实例:ln -s file2 tang
注意:目录可以创建软连接,不可以创建硬链接
find:用于查找目录下的文件,同时调用其他命令执行操作
用法:find [-H] [-L] [-P] [-D debugopts] [-Olevel] [path...] [expression]
实例:
1、查找指定时间内修改过的文件
find ./ -atime -2 查找2天内被访问过得文件
find ./ -mtime -5 查找文件修改时间为5天内的文件
find ./ -ctime +2 查找文件属性改动时间为2天前的文件
-mmin、-cmin、-amin:以分钟为单位
注意:-2表示距离此刻时间2天内,+2表示距离此刻时间2天以前,2表示距离此刻时间第2天
2、查找指定文件名的文件
find ./ -name 'xiaodan' 查找当前目录中名字为xiaodan的文件
find ./ -atime +3 -iname '*.txt' 查找当前目录中3天前被访问的以.txt结尾的所有文件
3、查找指定类型的文件
find ./ -type d 查找当前目录中文件类型为目录的文件
4、反向查找
find ./ ! -type l 查找当前目录中非连接文件
5、按照目录或者文件权限查找文件
find ./ -perm 663 查找当前目录中文件权限为663的文件
6、按照文件大小查找
find ./ -size -10M 查找当前目录下文件大小小于10M的文件
7、查找文件忽略某个目录
find ./ -path "./name" -prune -o -name "file" 查找文件名为file的文件,并且忽略./name目录
8、忽略多个目录
find . ( -path "./dd" -o -path "./name" ) -prune -o -name 'file*'
注意括号内容与括号两头的空格,语法要求
9、查找指定属主名字的文件
find ./ -user adong 查找当前目录属主为adong的文件
find ./ -nouser 查找当前目录没有属主的文件
10、查找指定属组名字的文件
find ./ -group adong 查找当前目录中属组为adong的文件
find ./ -nogroup 查找当前目录没有属组的文件
11、查找比某个文件新或者旧的文件
find ./ -newer file 查找当前目录中更改时间比file新的文件
find ./ -newer file ! -newer file33333 查找当前目录中更改时间比file新,比file33333旧的文件
12、查找一级目录,文件名为file的文件
find ./ -maxdepth 1 -name "file"
13、查找4天前的文件并删除
find ./ -type f -mtime +4 -exec rm {} \;
14、使用安全模式查找4天前以.txt结尾的文件
find ./ -type f -name '*.txt' -mtime +4 -ok rm {} \;
15、xargs执行rm删除文件
find ./ -type f -name 'file1' |xargs rm
16、xargs执行移动文件
find . -name 'file2' |xargs -i mv {} ./dir1
注意:使用的-i参数,{}表示find查找的结果
xargs:将标准输入转换成命令参数
用法:xargs option
xargs 选项
通常结合find命令使用
实例:
多行输入变成单行
xargs < test.txt 前提test.txt有多行内容,执行此命令会将test文本的多行内容变成单行输出
指定每行输出的个数
xargs -n 4 < test.txt 将test文本中的内容以每行显示4个字符的形式输出
如果结合find命令处理的文件名含有空格或者特殊字符
find ./ -name "file*" -print0 | xargs -0 rm -f
-I :选项
rename:重命名文件
一般用于批量处理文件名
用法:rename from to file
from:代表要替换的内容
to:代表替换的内容
file:代表被替换处理的文件
实例:
将以file开头的文件名,替换为aaa
rename "file" "aaa" ./*
basename:显示文件或者目录基名
实例:
basename ./dir1/file2
dirname :显示文件或者目录的路径名
实例:dirname ./dir2/file1
注意:dirname命令如果给一个绝对路径,则反馈一个绝对的路径名,如果给一个相对路径,则返回一个相对路径
chattr:改变未见扩展属性
用法:chattr option mode file
chattr 选项 模式 文件
选项:
-R:递归改变目录扩展属性
mode/模式:
+:增加指定模式参数
-:移除指定模式参数
=:更新为指定模式参数
A:不修改文件最后的访问时间
a:只能向文件添加数据,而不能删除,多用于服务器日志安全
i:文件不能修改、删除、写入等操作
lsattr:查看文件扩展属性
实例:
文件不能删除
chattr +a file
文件不能被写入修改
chattr +i file
chown:改变文件的属主或属组
用法:chown option OWNER:GROUP FILE
选项:-R 递归更改目录的属主和属组
实例:
改变文件的属主
chown adong file
改变文件的属组
chown .sale file
改变文件的属主和属组
chown adong:sale file
改变目录及目录内所有子目录及文件的属主和属组
chown -R adong.sale dir1
注意:使用chown命令改变属主或者属组时,属主和属组必须存在
chmod:改变文件或者目录的权限
用法:chmod option perm file
chmod 选项 权限 文件
文件权限的两种表现模式:
权限字母:r w x 读写执行
数字模式:4[r] 2[w] 1[x] 读写执行
文件权限作用的用户类型:
属主[u],属组[g],其他人[o],所有人[a]
chmod命令的权限操作符:
+:增加权限
-:移除权限
=:设置为指定权限
实例:
文件属主和属组有读写执行权限,其他人读权限
chmod u=rwx,g=rwx,o=r file
所有人都没有执行权限
chmod a-x file
文件权限说明:
1、删除文件权限不取决于文件本身权限,取决于其父目录是否有写权限
2、文件可以没有读和执行权限,但必须有写权限
注意:如果没有读权限,echo追加文件内容时,会覆盖原内容
3、文件不可轻易给执行权限,因为linux系统一切皆文件,以防系统被黑,篡改文件执行恶意代码
目录权限说明:
1、目录即使没有执行权限,仅普通用户无法进入到目录里,root用户依然可以cd到目录中。
2、目录没有读权限,则无法获取目录内的列表,root用户不影响。
3、目录没有写权限,则无法对目录及目录里的文件进行删除和增加权限,并且不能修改文件名及目录名,root用户不受限制。
chgrp:修改文件及目录用户组
用法:chgrp option group file
chgrp 选线 组名 文件
选项:-R 递归更改
实例:chgrp -R newgroup dir 修改dir目录及其子目录和文件的主组为newgroup
umask:定义用户创建文件或者目录时的默认权限
用法:umask option mode
选项:-p 输出的权限掩码可直接作为命令执行
-S 以字符的方式输出掩码