cd 目录名 进入进入该目录
cd - 回到刚才的目录
pwd -P 将链接文件以完整路径显示 pwd(print working directory)
mkdir -m 设置权限 mkdir -m 666 1 建立1目录
-p 直接建立多重目录 例如 mkdir -p /home/duxing/文档/linux/day/1/2/3
rmdir 删除空目录
rm 删除一个文件
rm -rf 删除一个目录及下所有子目录和文件
通过PATH="$PATH":/home/duxing 可以添加PATH环境变量的内容
目录管理相关的命令
ls---查看文件和目录
选项:
-a 全部文件包括隐藏文件
-A 全部文件不包括. 和 ..
-d 列出目录本身,而不是列出目录内的文件数据
-f 直接列出结果,而不进行排序
-F 根据文件,目录等信息,附加数据结构
*表示可执行文件 /表示目录 =表示套接字文件 |表示管道文件
-h 列出文件大小
-i 列出inode位置,而非列出文件属性
-l 列出长数据串,包含文件的属性
-n 列出UID和GID而非用户与用户组的名称
-r 将排序结果反向输出
-R 与子目录内容一起列出来
-S 按文件大小排序
-t 按时间排序
--color=never 不要按照文件属性用不同的颜色显示
--color=always 显示颜色
--color=auto 让系统按照设置自行设置
--full-time 以完整时间输出
--time 输出访问时间改变权限属性的时间,而非改变内容的时间
好多系统ll = ls –l 如果不是也可以设置,具体用alias命令,后面的笔记会有的
cp---复制文件或目录
选项:
-a 相当于-rpd
-d 如源文件为链接文件的属性,则复制链接文件属性而非文件本身
-f force(强制)若有重复或其他疑问时,不要询问,直接覆盖
-i 若存在,则提示
-l 建立硬链接的链接文件,而非复制文件本身
-p 与文件的属性一起复制
-r 递归持续复制,用于目录的复制
-s 复制成符号链接文件,即快捷方式文件
-u 若目标文件比源文件旧,更新目标文件
注意复制之后会改变文件的所有者,所以对于密码等文件,要通过-p或者-a复制
rm---删除文件或目录
选项:
-f 强制删除
-i 带提示
-r 递归删除
mv---移动,重命名文件或目录
选项:
-f 强制
-i 带提示
-u 若文件已经存在,且源文件比较新,就更新,否则不操作
dirname---获取目录名
查看文件内容
cat---concatenate
选项:
-A 相当于-vET
-E 将行结尾以$表示
-n 显示行号
-T 将[tab]以^I显示
-v 列出一些看不出来的特殊字符
tac---反向显示
nl---显示时带行号
选项:
-b a 不论是否是空行,都显示
-b n 如果是空行,不显示
-w 行所占的位数
more---一页一页翻动
space 向下翻页
enter 向下翻一行
/向下搜索字符串
:f立刻显示文件名已经当前显示的行数
q:立即离开
less----一页一页翻动
space 向下翻一页
pagedown同上
pageup
/向下查找字符串
?向上查找字符串
n重复前一个搜索
N反向重复前一个搜索
q离开
head---读取前几行(默认10行)
-n num 读取的行数
tail---读取后几行
同上
od---查看非文本文件
-t 后面跟类型
a:默认字符输出
c:使用ascii码输出
d[size]使用十进制输出,每个整数占size个字节
f[size]使用浮点数输出
o[size]使用八进制输出
x[size]使用十六进制输出
/***********************************************************
**每个文件在Linux下都会记录三个时间,
**modification time mtime
**修改时间:文件内容被修改时会更新这个时间
**status time ctime **状态时间:文件的状态(如权限,属性)更改会更新这个时间
**access time atime
**访问时间:读取文件内容时就会更新这个时间
**可以通过ls -l查看mtime ls -l --time=atime 查看atime ls -l **--time=ctime 查看ctime
***********************************************************/
touch---修改文件时间与创建新文件
选项:
-a 仅修改access time
-c 仅修改时间,不建立文件
-d 后面可以接日期 如-d="日期"
-m 仅修改mtme
-t 后面可以接时间
文件与目录的默认权限和隐藏权限
文件默认权限 umask
创建的文件默认权限为666 目录为777
duxing@ubuntu:~/文档/linux/day9$ umask
0002
duxing@ubuntu:~/文档/linux/day9$ umask -S
u=rwx,g=rwx,o=rx
第一组为特殊权限
umask表示的需要减掉的权限,上面的2就表示减去o用户的写权限
文件隐藏属性
chattr---设置文件隐藏属性
选项:
+增加某个特殊参数
-删除某个特殊参数
=设置一定,且仅有后面接的参数
A:设置了A参数之后,这个文件的访问时间将不能被修改
S:有点类似sync 就是将数据同步写入磁盘中
a:这个文件只能增加数据,而不能删除,只有root才能设置
c:自动压缩,读取的时候自动解压
d:执行dump(备份)程序的时候,可使该文件具有转储功能
i:让一个文件不能删除,更名,设置连接,也无法写入和新增数据
j:使用ext3文件系统时,会使文件在写入时先记录在journal中
s:它将会从这个硬盘空间中完全删除
u:数据内容还存在于硬盘之中,可以用来还原删除
lsattr---将文件的隐藏属性也显示出来
选项:
-a 将隐藏文件的属性也显示出来
-R 连同子目录的数据也一并列出来
文件的特殊权限:SUID/SGID/Sticky Bit
SUID仅可用在二进制文件
Sticky Bit 仅针对目录有效,对文件没有效果
在chmod x666 filename 中的x位设置
4 SUID
2 SGID
1 Sticky Bit
大S T代表 空的
文件类型file
file 显示文件的类型
搜索文件
which---寻找执行文件
选项:
-a 将所有可找到的命令列出,而不仅仅列出找到的第一个命令名称
根据PATH环境变量里的路径来搜索 执行文件
whereis---寻找特定文件
选项:
-b 只找二进制文件
-m 只找帮助文件manual路径下的文件
-s 只找源文件
-u 没有帮助文件的文件
根据搜索数据库去查找相关的文件
locate
同样根据数据库(/var/lib/slocate)搜索文件
可以手动执行updatedb可以通过修改/etc/updatedb.conf来修改更新设置
find
参数:
1.与时间有关的参数:
-atime n:n为数字,在n天之前的一天之内访问过的文件
-ctime n:在n天之前的一天之内修改过状态的文件
-mtime n:在n天之前的一天之内修改过内容的文件
-newer file:file是一个存在的文件,只要文件比它新就会列出来
2.与用户或用户组名称有关的参数
-uid n :n是用户的id,即uid
-gid n :n为用户组名称的id
-user name: name为用户账号名称
-group name: name为用户组名称
自动安装的软件可能存在软件并没有文件拥有者
-nouser :查找文件的拥有者不在/etc/passwd中的人
-nogroup:查找文件的拥有者不在/etc/group中的人
3.与文件权限及名称有关的参数
-name filename: 搜索文件名为filename的文件
-size [+-]SIZE : 搜索比SIZE还要大(+)小(-)的文件 SIZE的
单位可以是c(byte),k(1024byte)
如:-size +50k
-type TYPE: 搜索文件类型为TYPE的文件,一般文件(F),设备
文件(b,c),目录(d),链接文件(l),
套接字(s),管道文件(p)。
-perm mode: 搜索文件属性 必须要刚好等于mode 的文件
-perm +mode: 搜索包含任一给定属性文件
-perm -mode: 搜索文件必须包含给定的所有属性 mode为数字
4.附加操作
-exec conmand:command为其他命令,-exec后面可以
再接额外的命令来处理搜索到的结果以\;结尾
-print :将结果打印出来,这个动作是默认的