1.常见的目录的相关命令
cd 切换目录
pwd 显示当前目录
pwd -p 显示当前的路径
mkdir 新建一个新的目录
mkdir -p text1/text2/text3/text4 可自行创建多层目录
mkdir -m 777text 强制改变text目录的权限(默认755)
rmdir 删除一个空的目录
rm -r text 将所有目录下的东西都删除
2.环境变量PATH
echo $PATH 查看PATH定义的目录
不同身份用户默认的PATH不同,默认能够随意执行的命令也不同(如root与vbird);
PATH是可以修改的,所以一般用户还是可以通过修改PATH来执行某些位于/sbin或/usr/sbin下的命令来查询;
(PATH=“$PATH”:+目录)
使用绝对路径或相对路径直接指定某个命令的文件名来执行,会比查询PATH来的正确;
命令要放到正确的目录下,执行才会比较方便;
本目录(.)最好不要放到PATH中。
3.显示文件内容的有关命令
cat -n 打印行号(包括空白行)
tac 反向列示
nl 输出的时候顺便输出行号,不显示空行
非纯文本文件 od
od -t (TYPE) filename
TYPE
a:默认字符 c:ASCII字符 d:整数 f:浮点数 o:八进制数 x:十六进制数
more 分页显示
在more中
space 一次一页
enter 一次一行
/字符串 在显示的内容当中,向下查询“字符串”这几个关键字
:f 立刻显示出文件名及目前显示的行数
q 立刻离开more,不再显示该文件内容
b或Ctrl + b 往回翻页,只对文件有效,对管道无用
less 与more类型,但可以向前翻页
4.复制,删除和移动
cp -a 相当于 -pdr的意思,将所有数据特性完全复制
cp -p 连同文件的属性一同复制
cp -i 若目标文件已经存在,在覆盖时会询问操作的进行
cp -d 若源文件为链接文件的属性,则复制链接文件属性而非文件本身
rm -f 忽略不存在的文件,不会出现警告信息
rm -i 在删除前询问用户是否操作
rm -r 递归删除,最常用在目录的删除
rm -i a* 将所有以a开头的文件删除
\rm -r/tmp/etc 在命令前加反斜杠,可以忽略掉alias的指定参数。
rm ./-aaa- 删除-开头的文件,不能rm -aaa- -可能被误判为参数。
mv 文件 目录 将文件移动到指定目录
mv 文件名 新文件名 将文件重命名
5.修改文件时间或创建新文件:tough
mtime:当文件的内容数据更改时发生改变
ctime:当文件的状态改变时发生改变
atime:当文件的内容被取用时发生改变
touch -acdmt
-a:仅修改访问时间
-c:仅修改文件的时间,如果文件不存在,不会创建新文件
-d:后面可以接欲修改的日期而不用目前的日期
-m:仅修改mtime
-t:后面可以接欲修改的时间而不用目前的时间
6.文件与目录的默认权限
新建文件或目录时的默认权限
umask 查看数字形态文件默认权限
umask -S 以符号类型显示文件默认权限
umask +数字 更改文件默认权限
更改默认权限时,文件以666为基础,目录以777为基础再进行去除
7.文件的隐藏属性
chattr,lsattr
只能对ext2/ext3有效
chattr [+-=]
a:文件只能增加数据,不能删除也不能修改数据,只有root有权限设置
i:使一个文件不能被删除,改名,设置连接也无法写入或添加数据。只有root有权限设置
c:将会自动压缩文件在调用时自动解压(先压缩后储存)
lsattr [-adR]
a:将隐藏文件 的属性也显示出来
d:如果接的是目录,仅列出目录本身的属性
R:连同子目录的数据一同显示出来
8.文件特殊权限:SUID,SGID,SBIT
9.常见的文件查找命令Set UID(s出现在文件所有者的x权限上)
对文件:
SUID权限仅对二进制程序有效;
执行者对于程序需要有x权限
本权限只在程序执行的过程中有效
执行者将具有该程序所有者的权限
Set GID(s出现在用户组的x权限上)
对文件:
SGID对二进制程序有用
程序执行者对于该程序来说需要x权限
执行者在执行的过程中获得用户组的支持
对目录:
若用户对于此目录具有r和x权限,该用户能够进入此目录
用户在此目录下的有效用户组将会变成该目录的用户组
若用户在此目录下具有w的权限(可以新建文件),则用户所创建的新文件的用户组与此目录的用户组相同
Sticky Bit(t出现在others的x权限上)
对目录:
当用户对于此目录具有w,x权限,即具有写入的权限时
当用户在该目录下创建文件或目录时,仅有自己与root才有权利删除该文件
对于这三种权限的设置
使用数字形态表示:分别对应4.2.1,写在rwx权限前面,如chmod6777 text,为text增加SUID,SGID权限
当chmod 7666 text时(7777是存在的),因为对于u,g,o来说都没有x权限,所以S,T大写,表示“空的”
使用符号形态表示:分别对应u+s,g+s,o+t,
例:将权限设置成-rws--x--x
chmod u=rwxs,go=x text;
增加SGID和SBIT
chmod g+s,o+t text;ls -l text
-rws--s--t
which 命令 //查询命令的完整文件名
whereis和locate都是在数据库中查找文件,比较快速但是由于数据库的更新频率,有的文件可能找不到,手动更新数据库(updatedb),而find则是直接在硬盘里面查找
whereis filename//查找文件的路径
locate 部分文件名 //查找文件名或目录名中包含“部分文件名”的
find 目录 -mtime n //n为数字,意为在n天之前的“一天之内”被更改过的文件
find 目录 -mtime +n //列出在n天之前(不含n天本身)被更改过的文件名
find 目录 -mtime -n //列出n天之内(含n天本身)被更改过的文件名
find 目录 -newer 文件 //列出目录里比文件新的文件
find 目录 -user 用户名 //在目录中查找用户的所有文件
find 目录 -nouser //目录中查找不属于任何人的文件
find 目录 -name filename //查找文件名为filename的文件
find 目录 -size [+-]SIZE //查找比SIZE大/小的文件
find 目录 -type TYPE //查找类型为TYPE的文件
find 目录 -prem mode //查找文件权限刚好等于mode的文件,如4755
find 目录 -prem -mode //查找文件权限“必须要全部包括mode”的文件,即权限包含了mode的文件
find 目录 -prem +mode //查找文件权限“包含任一mode”的文件,即只要mode中的任一权限即可
find -execcommand //在执行前面的命令后继续执行command命令,如find / -prem +7000 -exec ls -l{};其中-exec和\;表示额外命令的开始和结束,{}存放find的内容