1. 目录与路径
- cd
- cd 空格;cd ~: 回到当前用户根目录。
- cd - ;cd ..:返回上一级
- cd ~account:回到指定用户根目录。
- ls -ld :列出目录本身的属性,而不是列出目录下的文件信息。
- mkdir
- 递归创建目录:mkdir -p test1/test2/test3
- 创建目录时直接更新目录权限:mkdir -m 755 test1
- rmdir: 删除空目录(无法删除包含内容的目录。
- 递归删除空目录:rmdir -p test1/test2/test3(注意只有连续的空目录才可以用这个删除。
路径变量:PATH
ls
- -d 列出目录本身的属性,而不是它包含的文件信息。
- 一般:ls -al
- cp
- 复制文件的原始格式,而不是默认格式(复制的时候产生,比如创建时间拥有者,拥有组):-p
- 设置提示(重名):-i,不设置,他直接就覆盖掉。
- 复制目录及其他下面的东西:-r
- 常用的复制所有东西并且保持原属性:-a
- 可以把多个文件复制到一个目录下,cp t1 t2 directory1。最后一个必须是目录。
- 替换比较新的文件:-u
- 全部
- rm
- 删除文件直接用就行了,默认会提示要不要删除。或者你加上-i,进行提示。
- 如果要删除包含内容的目录,那就要使用-r,递归删除
- 全部
- mv
- 同样可以移动多个文件到一个目录下。
- 如果你复制一个文件,可以指明存放的地方以及他的新名字。起到了重命名的效果。mv t1 t2
- 全部
对一个路径取得文件名或者目录名 basename dirname,目录的文件名就是它本身的名字,目录的目录就是他上的上一级全部
3. 查看文件内容
全部显示
- cat 由第一行开始显示文件内容
- cat -n file:输出行号,包括空白行
- cat -A file:输出包含特殊字符
- 全部
- 注意:cat后必须跟上存在的文件,不然会失败。如果想要创建新文件,同时进行输入,需要用到数据重定向:
cat > yourfile
,键盘键入。 - 对输入重定向可以从其他文件输入:
cat > newfile < sourcefile
- tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
- 第一行变成最后一行显示
- nl 显示的时候,顺道输出行号!可以让行号变得多样化,可以控制
- 默认是cat -b,不列出空行,基本直接用nl即可。python文件不知道为什么空行也会标出行号
- 全部
- cat 由第一行开始显示文件内容
- 翻页显示
- more 一页一页的显示文件内容
- more file
- 可以用的操作
- less 与 more 类似,但是比 more 更好的是,他可以往前翻页!是完全体了,还可以搜索字符串
- man的page就是用less读取帮助文件的,因此用法一样
- 全部
- more 一页一页的显示文件内容
- 数据截取
- head 只看头几行
- head -n N file:取出前面的N行,[start,N]
- tail 只看尾巴几行
- tail -n N file:取出第N行到末尾,[N,end]
- tail -f file:如果file会被持续改动,那持续输出改动内容到屏幕。用于监视持续改动的文件
- head 只看头几行
- od 以二进位的方式读取文件内容!
- 以8进位列出储存值与ASCII的对照表
- 全部
- 以8进位列出储存值与ASCII的对照表
修改文件时间或建立新文件touch
默认权限:目前使用者在创建文件或目录时候的权限默认值
- 前置知识点:
- 使用者创建文件时,默认权限为666:-rw-rw-rw-,也就是没有执行。
- 使用者创建目录时,默认权限为777:drwxrwxrwx,全部
- umask指的是该默认值需要减掉的权限(需要拿掉的权限),若umask是022,先由022得到——-w—w-,再减去,这种方法是符号法,不能使用单纯的数字相减如666-022:
- 查看umask
- 应用场景:团队专题制作,在一个共同目录下,如果umask是022,那么一个人新建的文件,同一群组的人只能读,不能改,虽然可以让拥有者改权限,但是那样不利于合作,因此可以利用umask=012,设置默认就是g=rw
- 前置知识点:
- 文件隐藏属性:用于系统安全,注意chattr命令只能在Ext2/Ext3的文件系统上面生效
- chattr:改变隐藏属性
- 主要用a和i: chattr +i attrtest
- a :当配置 a 之后,这个文件将只能添加数据,而不能删除也不能修改数据,只有root 才能配置这个属性。—》日志文件
- i :这个 i 可就很厉害了!他可以让一个文件『不能被删除、改名、配置连结也无法 写入或新增数据!』对於系统安全性有相当大的助益!只有 root 能配置此属性 —》系统文件
- 全部
- lsattr :显示文件隐藏属性
- lsattr attrtest
- 选项和ls差不多
- chattr:改变隐藏属性
- 文件特殊权限: SUID, SGID, SBIT
- SUID:针对文件(程序),运行时当前用户获取该文件owner的权限。
- 位置:-rwsr-xr-x,在owner的权限中x的位置上
- 应用:所有帐号的密码都记录在 /etc/shadow 这个文件里面,这个文件的权限为:『-r———— 1 root root』,只有root有权限修改,那普通用户要修改自己的密码怎么办?运行 /usr/bin/passwd,就可以使当前用户获得root(owner)的权限。
- 概念:
- 图例
- 位置:-rwsr-xr-x,在owner的权限中x的位置上
- SGID:针对文件或目录,运行文件当前用户获取该文件group的权限的支持,进入配置了SGID的目录时,使用者在此目录下的有效群组(effective group)将会变成该目录的群组(创建新文件时的群组=该目录的群组,相当于一种默认配置,不使用SGID时,新建文件的组是用户本身)
- 位置:-rwx—s—x,g的x上
- 概念:
- 应用:多人专案开发,对于工作目录,需要设置SGID权限,这样默认创建的文件都是一个群组的,别人可以修改内容。
- SBIT:针对目录,使用者在该目录下只能对自己创建的东西进行删除/更名/移动等动作,而无法删除他人的文件。
- 位置:-rwxr-xr-t,o的x处。注意,这个显示的是t
- 应用:在/tmp下,大家都可以rwx,但是配置了SBIT,你就不能删别人的东西了,只能搞自己的东西。
- 配置方法:
- 数字:
- 如: chmod 4755 filename ,给filename配置SUID+755权限,会在u=x处显示s
- S,T:当文件或目录本身没有x权限时,你给他SUID,SGID,SBIT都没用,因此显示S,T.
- 符号:其中 SUID 为 u+s ,而 SGID 为 g+s ,SBIT 则是 o+t 罗。记得把x也写上,不写x时S、S、T不会生效
- 数字:
- SUID:针对文件(程序),运行时当前用户获取该文件owner的权限。
观察文件类型:file
which (寻找『运行档』):去当前用户的PATH下依次寻找命令,获得命令文件的完整路径
- which ifconfig
- -a
- whereis:看man提示是查找command的,不能查找文件
- 全部
- 全部
- 搜索文件或目录
- locate(需要先安装mlocate:yum install mlocate):搜索关键词,可能是文件,可能是目录
- 数据库可能搜不到最新创建的文件,也有可能搜到已删除的文件,因为是间隔同步数据。
- 升级数据库:updatedb
- find磁盘搜索
- 首先,find后跟路径,指在这个路径下搜索,/表示根路径下搜索,就是全盘搜索。可以跟多个路径
- find /bin /sbin -name filename
- 限定时间
- mtime是内容修改时间,n是指n天前一天内被修改的文件,+n是指n天前被改动的文件,-n是指n天内被修改的文件
- 图例
- 全部
- 限定使用者或群组
- 全部
- 全部
- 限定文件名称、大小、类型、权限
- filename支持搜索,如**find /etc -name ‘httpd‘*
- size有大小,+size比size大的,-size比size小的
- perm权限没有大小之分,只有包含不包含,-mode全部包含,+mode只要满足一个即可
- 全部
- 对结果进行额外操作
- 搜索结果是路径的集合,如果需要把这些路径的具体信息列出来,可以考虑配合ls -l
- find / -perm +7000 -exec ls -l {} \;
- {} 代表的是『由 find 找到的内容』,如上图所示,find 的结果会被放置到 {} 位置中;
- -exec 一直到 \; 是关键字,代表 find 额外动作的开始 (-exec) 到结束 (\;) ,在这中间的就是 find 命令内的额外动作。 在本例中就是『 ls -l {} 』罗!
- 因为『 ; 』在 bash 环境下是有特殊意义的,因此利用反斜线来跳脱。
- 没使用时:
- 使用后:
- 全部
- 与操作-a:find /etc -size +50k -a -size -60k,文件大小在50k到60k之间的文件(不写-a也行的,直接空格,默认就是and)
- 或操作-o:find /etc -size +1500k -o -size 0,容量大於 1500K 以及容量等於 0 的文件
- 反向选择!(非操作):find /etc -size +50k -a ! -user root,文件容量大於 50K 且文件所属人不是 root 的档名。!的意思是排除!后的筛选条件
- 首先,find后跟路径,指在这个路径下搜索,/表示根路径下搜索,就是全盘搜索。可以跟多个路径
- 注意,没具体限制不要用find,很艹硬盘,可以用whereis或者locate
- locate(需要先安装mlocate:yum install mlocate):搜索关键词,可能是文件,可能是目录