cd : change directory
pwd -P :显示路径,而非使用连接路径 ,print work directory
mkdir [-mp] : -p创建多级目录,-m 权限,make directory
rmdir
关于执行文件路径的变量 : $PATH
不同身份用户默认的path不同,默认执行的命令也不同
path可以修改
使用绝对路径或者相对路径指定执行某个命令,比查询path更快
本目录(.)最好不要放在path下
文件与目录管理
ls :
-a :所有文件,包含隐藏目录
-A : 不包含隐藏目录
-f : 不排序,-a默认会按文件名排序
-i : 列出 inode 节点
-l :
-t : 按时间排序
--full-time
--time=[ctime,atime]
复制,删除与移动:cp,rm,mv
cp [选项] 源文件 目标文件 :
-a : 所有属性一起复制,包括所有者
-f : 强制
-i : 目标文件存在,先询问
-r : 递归持续复制,
-p : 连同文件属性一起复制
-l : 硬连接
-s : 软连接
-u : 有差异才复制
硬连接:inode 不一样
rm [-rfi] 文件或者目录
-f : force 强制
-i : 互动模式,先询问
-r : 递归删除
mv [-fiu] source destination
-f : 强制
-i:询问
-u : update
mv 文件1 文件2 文件3 //将1,2移动到3,最后一个是destination
文件查阅
cat [-AbEnTv] :
-n : 显示出行号,空白行也有行号
-E : 结尾显示 $
tac : 与cat 相反
nl
more :
空格,往下翻一页
b ,往上翻一页
:f 显示行号
less :
数据选取
head :
-n 20 前面20行
-n -100 不显示最后100行
tail :
-n 20 后面20行
-f
-n +100 不显示前面100行
显示 10 行到 20 行
head -n -20 文件名 | tail -n 10
读二进制文件:
od [-t TYPE] 文件:
-t 后面可以接各种输出类型:
-a : 默认字符
-c : ascii 字符输出
-d : 10进制
-f : 浮点数
-o : 8进制
-x :16 进制
修改文件时间或者创建新的文件
mtime(modification time) :该文件的内容数据修改时,就会更新这个时间。内容数据指的是文件数据,而不是文件的属性或者权限
ctime (status time): 该文件的状态改变时,就会更新这个时间。权限和属性
atime(accetime time) : 当该文件的内容被取用时,就会更新这个时间。
ls --time=atime
ls --time=ctime
ls 默认为mtime
touch [-acmdt] 文件
-a 仅修改访问时间
-c 修改文件时间,若不存在则不创建新文件
-m 修改 mtime
-d 后面可以接欲修改的日期,也可以用 --date = '日期'
-t 接欲修改的时间
文件与目录的默认权限和隐藏权限
文件的默认权限: umask,目前用户在新建文件或者目录时的权限默认值
umask
umask -S
一般文件的创建没有执行权限,所有事 rw,即 6 。
umasm 指的是拿掉的权限,
所以, 0002
指的是拿掉 other 的 w权限
umask 002 //修改 umask
文件的隐藏属性 chattr,lsattr
chattr [+-=][ASadistu] 文件或者目录
+ : 增加某个参数
- : 减去某个参数
= : 仅有后面的参数
A : 当设置了A属性,访问时间 atime 将不会被修改
S : 一般文件为异步写入,加上 S 为同步写入
a : 设置 a 后,这个文件只能增加数据,不能删除也不能修改数据,只有root才能设置这个属性
i : 它可以让一个文件不能被删除,改名,设置连接也无法写入数据
文件的特殊权限 SUID, SGID, SBIT
Set UID : s 出现在 x 的位置
1. SUID 权限仅对二进制程序有效
2. 执行者对该程序具有 x 权限
3. 本权限仅在程序执行该程序的过程中有效
4. 执行者将具有该程序的所有者权限
/etc/shadow
passwd 将临时具有 root 权限
Set GID : s 在组权限的x 位置
1. SGID 对二进制程序有用
2. 程序执行者对该程序来说,具有 x权限
3. 执行者在执行的过程中将获得该程序用户组的支持
Sticky Bit : SBIT
将A目录加上SBIT 权限后,甲只能针对自己创建的文件或者目录进行删除,重命名,移动等操作,而无法删除其他人的文件
设置:
SUID 4
GUID 2
SBIT 1
-rwsr-xr-x,由于s在用户权限中,所以是SUID,因此在原先755之前还要加上 4 ,chmod 4755 filename
SUID不是用在目录, SBIT 不是用在文件上的
查看文件类型
file 文件或者目录
命令与文件的查询
脚本文件名的查询:
which 寻找执行文件,根据 PATH 查询的
文件名的查找:
whereis [-bmsu] 文件或者目录
-b :找二进制文件
-m : 只找在说明文件manual路径下的文件
-s : 只找 source 文件
-u : 查找不在上述3个选项中的其他特殊文件
whereis ,locate 比 find 快,因为 linux 会将所有文件记录在一个数据库文件里面,而当使用Whereis ,locate 时,会以此数据库文件的内容为准。find 查找硬盘。
locate [-ir] keyword
-i : 忽略大小写
-r : 正则表达式
updated //更新数据库
find [path] [option] [action]
1.与时间有关的参数,-atime,-ctime,-mtime
-mtime n : 在 n 天之前的一天内被修改的文件
-mtime +n :列出在 n 天前被修改的文件名
-mtime -n : 列出在n天之内被修改的文件
-never file : 列出比 file 还要新的文件
将过去系统上24小时内有改动的文件列出:
find / -mtime 0 // 0表示当前时间
find / -mtime 3 //3天前的24小时内
find /etc -newer /etc/passwd // /etc下面,比/etc/passwd新的就列出
2.与用户有关的参数
-uid n : n 为 uid
-gid n : n 为 gid
-user name : name 为用户账号名称
-group name : 用户组名
-nouser
-nogroup
find /home -user hua //查找 /home 下用户为hua的文件
find / -nouser
3.与文件权限及名称有关的参数
-name filename : 查找文件名为 filename 的文件
-size [+-] SIZE : 查找SIZE 大(+)或者小(-)的文件。这个SIZE有规格: c 表示 byte, k 表示 1024byte ,
-type TYPE : 查找文件类型为 TYPE的,一般正规文件(f),设备文件(b,c),目录(d),连接文件(l) ,socket(s),FIFO(p)
-perm mode :查找文件属性刚好等于 mode
-perm -mode : 必须包含
-perm +mode : 包含任一 mode 权限
find / -name passwd
find /var -type s
find / -perm +7000
4.其他参数
-exec command : command 为其他命令,-exec 后再接其他命令处理找到的结果
-print : 将结果打印到屏幕上
find / -name passwd -exec ls -l {} \;
{} 代表 由 find 找到的内容;
-exec 到 " \; " 是关键字,代表find额外的命令的开始(-exec)到结束(\;),在这中间就是find 命令内到额外命令,本例中就是 ls -l {}
因为 ; 在 bash 环境下有特殊意义,所有需要转意 \;