一、文件与目录管理
0.cd——change directory
cd - 返回上次的目录
cd ~ 返回到家目录 ——对于root用户来说是/root,对于普通用户来说是/home/用户名
cd .. 返回到上一级目录
cd . 返回到当前目录(也就是没有动 = =)
1.pwd [-PL]
-P 显示绝对路径(硬链接)
-L 显示相对路径(软链接)
2.mkdir
-p 递归创建
-v 可视化创建
rmdir(通常情况下不用这个命令,因为很容易误删文件,因而改用rm -r,下面会讲)
3.ls [-ailS] 显示文件名、属性等
(默认为'ls --color=auto')
-l 列出详细信息,连同文件大小,属性数据等
-i 打印inode的值
-a 列出全部文件(包括隐藏文档)
-d 仅列出目录
-t 按时间先后顺序排序(这个通常用在运维方面,可以根据最近修改的目录去排查错误)
-S 按照文件大小排序
4.cp [-dsru]
(默认为'cp -i')
-u 如果源文件较新,或者没有目标文件,才会进行动作
-r 对目录进行操作
-i 提供用户确认
5.rm [-fir]
(默认为'rm -i')
-r (对目录进行操作)循环删除,直到没有东西位置
-f 强制执行force
-i 提供用户确认
6.mv(挪动,重命名)
(默认为'mv -i')
-u 如果源文件较新,或者没有目标文件,才会进行动作
-v 可视化操作
-i 提供用户确认
若想使用真正的这些命令,则/bin/rm,或者是取消它的别名unalias rm等
二、查看文件内容
1.cat/tac [-nA]
-A 显示所有的字符,包括特殊字符,如下图,其中$表示为回车键
正序查看和逆序查看
2.more/less
文本相关的常用快捷键:
翻页:j向下剪 k向上看,大哥G到最前,小哥g到最后
搜索:/what 向下查找 ,?what向上查找
3.head/tail [-n number]
如要动态显示文件内容(譬如说日志什么的),可用tail -f
4.文件属性
[文件类型][文件硬链接总数][属主][属组][文件大小]
-普通文件
c字符文件
b块文件
s套接字文件
l软链接文件
p管道文件
5.ln [-s]
加了-s之后表示建立软链接
硬链接不可跨目录创建,不能链接目录,删除源文件,链接文件亦然可用,软链接相反
Q:为什么硬链接不能指向目录??
A:1.因为会引起混乱,硬链接只是做一个备份,注意硬链接不能跨分区,因为inode生成是在分区划分好的,一个好的分区inode各不相同,每个分区都有inode
2.有相同的inode会引起混乱
三、文件与目录权限
1.chown [-R] user:group
-R表示循环的将该目录下的所有文件都改成user,group的名称
2.chmod [-R]
-R循环的将该目录的文件都改变
chmod还支持a+x,u-x,g+w,o=rx等选项,其中a=all,u=user,g=group,o=other
3.umask
表示“该默认值需要取消的权限”
默认的用户建立“文件”,最大为666,普通文件权限为644
默认的用户建立“目录”,最大为777,目录权限值为755
默认的root的umask为022,普通用户为002
umask可以在/etc/bashrc里面修改
4.chattr\lsattr
chattr [+-=][-ia][filename or dirname]
chattr +i /etc/shadow
如此则无法被删除、更名、设定链接也无法写入或新增数据
chattr +a /etc/shadow
这个文件只能增加数据不能删除
由于这些属性是隐藏属性,所以需要lsattr才能看得到
lsattr [-aR]
-R 连同子目录的数据一并列出来
四、SetUID,SetGID,Sticky bit
我们可以看到,原本x属性变成了s属性,这个就是所谓的SUID。
若为-rwxr-sr-x的话,则为SGID,它的作用是让普通用户临时拥有属主的权限,具体例子就是我们普通用户可以修改密码。
若为-rwxrwxrwt,则旗下的文件或者目录只有文件拥有者才有权删除该文件
五、搜索文件或目录
1.which [filename]
、
2.whereis [-bsu]
-b 只找二进制文件
-u 没有说明文档的文件
-s 只找source源文件
注意:whereis只在固定的几个目录中搜索:/bin, /sbin, /usr/bin, /usr/sbin, /usr/share/man/manl
3.locate [dname]
使用时需要update下数据库
4.find[指定目录][指定条件][指定动作]
-o 表示或者的意思,不加就是与
-name 根据名字查找
-type 寻找文件属性为type的文件
-atime n 将n*24小时内被access(访问、读)过得文件列出来
-ctime n 将n*24小时内被改变、新增的文件或目录列出来(更改属性,譬如文件名、实践、大小)
+mtime n 将n*24小时前被modify过得文件列出来(文件内容本身)
注意:条件取反,eg:find ! -ctime 5 表示将除去n*24小时内被改变、新增的文件或目录列出来(只需在条件前面加个!)
六、目录结构
说到目录结构,我就不一一献丑了,在网上有一篇非常全的目录结构的东西
http://yangrong.blog.51cto.com/6945369/1288072
比较好玩的是,今天上课的时候知道了一些文件名缩写的含义
譬如:/bin/的缩写是binary,二进制
/sbin/的缩写是super binary,两者的区别是/bin/对的是普通用户,而/sbin/对的是我们的root(不知道这句概括有无疏漏的地方,如有错误望指正)
两者都相同的就是他们这两个文件夹均为用来放置命令
/etc/是其他的意思,也要一些新译
关于这个文件结构,要熟悉他,我们还使用了tree命令(因为我们是最小化安装的,所以要先yum install -y tree)
七、PATH与快捷键
PATH
将命令加入到PATH中方法:
PATH=$PATH:/tmp (注意,这里的PATH其实是一个变量)
要让这个变更永久生效,就要更改配置文件->>> /etc/profile
要让这个变更立即生效,敲键盘 source /etc/profile
快捷键
ctrl+C 取消cancel
ctrl+Z 暂停,使用fg可恢复
ctrl+a 光标飞到行的最左
ctrl+e 光标飞到行的最右
ctrl+s 锁定终端,你干啥他都不会有反应(这个一定要和使用Windows区分开来!!!!)
ctrl+q 退出锁定
ctrl+l 相当于clear
ctrl+k 光标后面输入的东西舍弃掉
ctrl+u 光标前面输入的东西舍弃掉
ctrl+d 相当于exit
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
华丽的分割线
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
说一下最近的情况吧。之所以据前一篇心得已经过了两天,是因为我们不知不觉已经进入了第一个考试周了,刚刚考完线性代数,然后考完试出来之后感觉这两天复
习线代所做的努力没有白费,既然第一门考试已经考完了,我也要加紧时间学习Linux了,希望自己能够坚持下来,我的付出一定有回报!
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
再编辑一次吧,因为考虑到自己的排版很有问题,而且和之后的博客关联性很大,因此就索性把几篇的内容整理到同一篇里面去了,加油!