Linux为了服务于多人多应用环境,有着完善的权限机制,学习权限它的还是 很重要滴,我有一次就是误删了权限文件,不得不向阿里云发工单@_@,折腾了几天才登陆上服务器,血的教训啊.....
Linux把对于文件的操作身份分为了owner(拥有者)|group(群组)|others(非本群组)
对于每个权限,还分为了read|write|execute
当然在一切的一切之上还有万能的ROOT,啥都能干哦~
如果有的时候提示“Permission denied”,就代表权限不足,这时候可以试着用su
来切换到root身份,或者在指令前加上sudo
来解决。
所有的系统上的账号与一般身份使用者,还有那个 root 的相关信息,都是记录在/etc/passwd 这个文件内的。至于个人的密码则是记录在/etc/shadow 这个文件下。
查看文件的信息可以用 ls -al
指令
其中的档案类型,也就是第一个,如果为“d”,说明它为文件夹,如果为“-”,则说明是文件,“l”代表为连结文件,还有"b"和"c",不太常见,就不说了。
这一栏代表有多少文件连结到此节点(i-node)。
有时候分别输入ls 和 ls -al,出来的文件数是不同的!这是因为有个东西叫隐藏文件!
隐藏文件就是文件名的第一个字符为"."。直接输入ls是显示不出来的,必须要ls -a才行。
而且由于类UNIX系统的约定俗称,不但Linux是这样,OSX,IOS,Android,都是这样。
我以前是不知道的,直到我把在IPAD上的一个电影名改成了“.”开头,后来........我格式化了ipad。
对于处理目录有几个不会Linux都应该知道的指令
cd [TARGET_DIR]
//进入目标路径
pwd
//显示当前目录
ls [-aAdfFhilnrRSt]
//列出所有目录
-a :全部的文件,包括隐藏文件
-A :全部的文件,包括隐藏文件,但不包括 . 与 .. 这两个目录
-d :仅列出目录本身,而不是列出目录内的文件数据
-h :将文件容量以人类较易读的方式(例如 GB, KB 等等)列出来;
-i :列出 inode 号码
-l :长数据串行出,包含文件的属性与权限等等数据;
-n :列出 UID 与 GID 而非使用者与群组的名称
-r :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小;
-R :连同子目录内容一起列出来,等于该目录下的所有文件都会显示出来;
-S :以文件容量大小排序,而不是用档名排序;
-t :依时间排序,而不是用档名。
mkdir [-mp] [name]
//建立新目录 make directory的简写
/* -p 建立递归的目录
/* 比如要创建 /1/2/3/4/5/,但你只有/1/,这时候
/* 直接 mkdir /1/2/3/4/5/就会报错: No such file or dictionary
/* 这时候就得用到 -p 参数
/* mkdir -p /1/2/3/4/5/
/*---------------------------------*/
/* -m 创建并且设定文件夹的权限
/* (而不是采用umask默认值)
/* 例如: mkdir -m 777 myfold
/* 创建一个权限为777的文件夹myfold
rmdir
//删除空目录 remove directory的简写
我们还能在一些脚本,指令里看到有 ~ ,/,之类的符号,有点迷惑。在以下简单列出含义 |符号|含义|例子|含义| |-|-|-|-| |./|代表当前目录 |cd ./dir|进入当前目录下的dir文件夹 | |../ |表示上一级的文件 |cd ../ |进入上一层文件夹| |- |返回前一个目录 |cd - |返回上一个进入的目录| | ~| 当前用户的家目录|cd ~ |进入到当前用户的家目录中| | /|根目录 |cd / |进入更目录|
值得注意最后两个符号,~也可以写作为$HOME,就是说
cd ~
与cd $HOME
是等同的。
因为Linux是挂载型的文件系统,所以根是从 / 开始的,一切目录都是在 / 下面的哦。
举个栗子: 我在根目录下见了一个文件夹test,我又在test里建了一个文件夹test1,在test1里建了个test2,然后进入test1
sudo mkdir -p test/test1/test2
cd test/test1
这时,我如果想进入test2就可以用指令cd test2
,因为test2在test1里,而我们处于test1,这就叫相对路径.
如果我们又想回到test,可以输入cd ../../
,因为test是test2上层的上层。但是如果下面还有test3,test4,想回到test,那么输入的就太多啦,此时我们可以使用绝对路径,就是cd /test
所以在linux中绝对路径的最前面要带一个"/",而相对路径的前面不带“/”。