1.“chgrp”命令:改变文件所属群组。缩写自“change+group”。要求被改变的组名必须要已经存在才行。
chgrp [-R] dirname/filename -R:进行递归的持续变更,亦即连同次目录下的所有文件、目录都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。
2.“chown”命令:改变文件拥有者。缩写自“change+owner”。要求被改变的用户已经存在才行。
chown [-R] 账号名称 文件或目录
chown [-R] 账号名称:组名 文件或目录 -R:含义同上,即连同次目录下的所有文件都变更。
3.“chmod”命令:改变文件的权限。
1)数字类型改变权限:对于一组权限r、w、x、- 分别对应数字4、2、1、0,就能累加出一位权限数字,所有三组权限就对应三位权限数字。
chmod [-R] xyz 文件或目录 -R含义不变,xyz就是一个三位的权限数字
2)符号类型改变文件权限:三组权限的所有人user,group,others 和 包含三者的all 分别用u、g、o、a 来表示,"+"、"-"、"="分别表示加入、除去和设定。例如:
chmod u=rwx,go=rx .bashrc //注意,红字部分是连在一起的,中间并没有任何空格。
chmod a+w .bashrc //不知道文件本来的权限,只是想给每个人都增加写入的权限。
chmod o-r .bashrc
4.权限对于文件和目录有不同的含义。
1)文件包括:一般文本文件、数据库内容文件、二进制可执行文件(binary program)。权限“r”表示可以读取文件的实际内容。权限“w”表示可以编辑、新增或修改文件的内容(但不含删除该文件)。权限“x”表示可以让文件被系统执行。在Windows底下一个文件是否具有执行的能力是借由扩展名来判断的,例如:.exe,.bat,.com等等。但在Linux底下,文件是否能被执行,则是借由是否具有"x"这个权限来决定的!跟文件名是没有绝对的关系的!
2)目录主要的内容是记录文件名列表。权限“r”表示可以查询该目录下的文件名数据(但不能读到这些的具体权限,更不能进入该目录!),即可以用ls这个指令将该目录的内容列表显示出来。权限“w”表示可以改变该目录结构列表,包括:建立新的文件与目录;删除已经存在的文件与目录(不论该文件的权限为何!);将已存在的文件或目录进行更名;移动该目录内的文件、目录位置。权限“x”表示可以进入该目录作为工作目录。所谓工作目录(work directory)就是你目前所在的目录。例如,当你登入Linux时,你所在的家目录就是你当下的工作目录。而变换目录的指令是cd(change directory)。
5.Linux的文件种类。ls -l指令观察到的每个文件的第一栏的第一个字符中(九个权限字符之前)可查看到。
1)正规文件“-”。包括纯文本档(ASCII),人可以直接读到。使用“cat~/.bashrc”命令就可以看到该文件的内容。二进制文件(binary),系统仅认识二进制文件,所以可执行文件都是这种类型。数据格式文件(data),以特定格式存储,所以尽管是数据,但不能通过cat命令直接读出。
2)目录“d”。
3)连接档(link)“l”。类似Windows系统下的快捷方式。
4)设备与装置文件(device)。通常集中在/dev目录下。包括区块设备档“b”和字符设备文件“c”。系统中很重要的文件,不要随意修改。
5)数据接口文件(sockets)“s”。这类文件通常被用在网络上的数据承接。
6)数据输送文件(FIFO,pipe)“p”。解决多个程序同时存取一个文件所造成的错误问题。FIFO缩写自first-in-first-out。
6.Linux文件的扩展名。文件能否被执行由x权限决定,与扩展名无关,但可以被执行不代表可以执行成功。所以通常仍用扩展名表示文件种类:
1)*.sh:脚本或批处理文件(scripts),因为批处理文件是使用shell写成的。
2)*.Z,*.tar,*.tar.gz,*.zip,*.tgz:压缩文件。
3)*.html,*.php:网页相关文件。
7.Linux下目录的配置方式为:目录树(directory tree)。主要特性有:
1)目录树的起始点为根目录(/,root);
2)每一个目录不只能使用本地端的文件系统,也可以使用网络上的filesystem。
8.路径分为绝对路径和相对路径。绝对路径是由根目录(/)开始写起的文件名或目录名称,绝对路径的正确度好。相对路径是相对于目前路径的文件名写法(肯定不是由根目录(/)开始写起),相对路径方便,也便于软件安装。有几个特殊的目录:
1)“.”:代表当前的目录,也可以使用“./”来表示;
2)“..”:代表上一层目录,也可以使用“../”来表示;
3)“-”:代表前一个工作目录(上一个目录位置);
4)“~”:代表目前使用者身份所在的家目录;
5)“~account”:代表account这个使用者的家目录(account是这个账号的名称),例如~lj。
9.“cd”命令:表示变换目录。缩写自change directory。使用格式为:cd [相对路径或绝对路径]
实际上提示字节中就会指出目前的目录。“cd ~” 和 “cd ” 都是回到登陆时的账号的目录位置。
10.“pwd”命令:表示显示目前所在的目录。缩写自print working directory 目前所在的目录就是工作目。录。有选项“-P”,表示显示出确实的路径,而非使用连结(link)路径。
11.“mkdir”命令:表示创建新目录。缩写自make directory。默认情况下你想创建的目录的上层目录必须已经存在才行。有选项“-P”,系统自动按路径将你新建的目录的上层目录全都补齐(不建议常用,因为若打错字,目录名称就会乱七八糟)。有选项“-m”,在新建时直接配置文件的权限,而不采用默认权限(umask)。例如“mkdir -m 711 test2”。
12.“rmdir”命令:表示删除空的目录。目录需要一层一层的删除才行,而且被删除的目录里面必定不能存在其他的目录或文件。有选项“-P”,表示连同上一级空的目录也一起删除。命令“rm -r test”就可以讲test目录下的所有东西都删除。
13.环境变量PATH。每当我们运行一个命令时,系统会依照PATH的配置去每个PATH(一定是大写)定义的目录下搜寻档名为该命令的可运行文档。如果在PATH定义的目录中含有多个档名符合的结果,那么先搜寻到的同名命令先被运行。“echo PATH”命令可以显示出目前的PATH,其中echo有“显示,印出”的含义,PATH前加表示后面接的是变量。
显示出的 PATH 变量的内容是一堆目录所组成的,每个目录中间用“:”来隔开,目录之间是有先后顺序之分的,root身份下的环境变量PATH要多于非root身份下的(一般用户lj的PATH中,并不包含任何“sbin”的目录存在)。
“PATH="$PATH":/root”命令:表示将/root加入PATH当中,就可以让root在任何目录下运行/root下的命令。
注意:
1)不同身份使用者默认的PATH不同,默认能够随意运行的命令也不同(如root与vbird)
2)PATH是可以修改的,所以一般使用者还是可以透过修改PATH来运行某些位于/sbin或/usr/sbin下的命令来查询;
3)使用绝对路径或相对路径直接指定某个命令的档名来运行,会比搜寻PATH来的正确;
4)命令应该要放置到正确的目录下,运行才会比较方便;
5)本目录(.)最好不要放到PATH当中。