Linux常见指令及权限理解
一、Linux指令基础
01. ls 指令
语法: ls [选项][目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的详细信息。
-n 用数字的 UID,GID 代替名称。(介绍 UID, GID)
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表 示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
-r 对目录反向排序。
-t 以时间排序。
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。(递归)
-1 一行只输出一个文件。
02. pwd命令
语法: pwd
功能:显示用户当前所在的目录
03. cd 指令
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。即Linux下一切皆是文件
这里我们需要注意:
Linux任何一个目录下面都含有两个隐藏文件: .和..
以.为开头的文件:表示当前路径(帮助用户定位当前目录下的文件)
以..为开头的文件:表示当前路径下的上级路径
语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下。
注意:定位一个文件,需要用路径来定位。
而路径分为绝对路径和相对路径。(用法如上图中所示)
04. touch指令
05.mkdir指令(重要)
06.rmdir指令 && rm 指令(重要)
07.man指令
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的命令是
man 语法: man [选项] 命令
08.cp指令
09.mv指令(重要)
10. cat指令
11.more指令
12.less指令(重要)
cat,more,less相应对比:
13.head指令和tail指令
14.find指令:(灰常重要) -name
15.grep指令
grep命令常与通道"|"配合使用:
例如:cat test.cpp | grep -i "hello Linux'
16.zip/unzip指令
17.bc指令
bc命令可以很方便的进行浮点运算
18.uname –r指令
二、Linux权限
Linux下有两种用户:超级用户(root)、普通用户
Linux权限访问:
文件类型的分类:
权限r w x分别代表可读权限 可修改权限 可执行权限
其中有三个组的权限分别为所有者,所属组,其他用户
这里额外添加一个指令:
chmod指令
另外给大家介绍一种提权方法:使用 sudo分配权限
需要注意的是,在我们进行sudo提权指令时,第一次会失败,因为没有在/etc/sudoers的文件中添加可以被提权用户的信息,只需要在该文件中添加用户信息就可以成功使用该指令。
根据以上对权限的理解,我们可以想象只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限.这里就会有歧义,我们不希望自己创建的文件因为别人有写权限就可以删除我们个人的文件,为了解决这个问题,Linux引入了粘滞位。
粘滞位
权限的总结:
目录的可执行权限是表示你可否在目录下执行命令。 如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件) 而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限 所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。
