Open jinhucheung opened 8 years ago
注意 : 根目录的上层目录(..)就是其本身
环境变量PATH的含义 当我们在执行一个命令时,可以直接输入命令名执行,即使不在此命令的目录下又没有输入命令的绝对路径,为什么? 原因是:当我们直接输入命令名时,系统会去搜索PATH变量下包含的目录,找到第一匹配的命令程序就调用.
PATH的结构 PATH由一堆目录所组成,每个目录中间用:隔开,每个目录有顺序之分.
查看环境变量PATH 首先我们来查看当前用户的环境变量PATH是什么?执行以下命令
root@kumho-Inspiron-3421:~# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
kumho@kumho-Inspiron-3421:~$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
从上面可以知道,不同用户的PATH可以不一样 echo命令有打印的功能, $代表后面接变量,不然echo PATH直接输出PATH
PATH="$PATH":/root
cd
: 切换目录pwd
: 显示当前目录pwd [-P]
-P
可以获取正确的目录路径,即使目标文件是连接文件,也会显示实际文件的路径mkdir
: 新建一个新目录mkdir [-mp] 目录名
-m
直接设置目录权限 -p
级联创建目录rmdir
: 删除空目录rmdir [-p] 目录名
-p
级联删除空目录,注意一定是要空目录ls
: 查看目录与文件信息
ls [-aAdfFhilnrRst] [--time={atime,ctime,mtime}] 目录名称
-a
: 列出全部文件(包含 . , .. , 隐藏文件 , 一般文件/目录) -d
: 仅列出本目录或者本文件的信息-l
: 以长数据串形式列出目录/文件信息,包含文件属性与权限等-s
: 列出全部隐藏文件cp
: 复制文件或目录/创建连接文件(快捷方式)
cp [options] source1 source2 source3... direcotry
-r
: 级联复制,用于目录的复制行为-p
: 连同文件属性一起复制,而非使用默认属性(常用备份),注意ctime不会复制源文件,ctime会记录当前时间 atime及mtime会复制源文件-d
: 若源文件是连接文件,则复制连接文件而不是实际文件-i
: 若目标文件已存在,则询问是否复制-a
:相当与-pdr
-s
:复制文件成为连接文件rm
: 移除文件/目录(不进回收站)
rm [-fir] 文件/目录名
-r
: 级联删除-i
: 删除前询问用户是否执行-f
: 忽略不存在的文件mv
: 移动文件/目录或者更名
mv [options] source1 source2 source3...direcotry
|mv [options] source destiantion
-i
:若目标文件存在,询问覆盖-u
:若目标文件存在,且比目标文件新,才会覆盖-f
:直接覆盖,不理会目标文件是否存在basename
: 取得路径的文件
basename path
dirname
: 取得路径的目录名
dirname path
touch
:常用与创建一个空文件,修改某个文件/目录时间(只能修改mtime,atime)
-a
: 仅修改atime-m
: 仅修改mtime-t
: 修改atime和mtime 格式为[YYMMDDhhmm]$ touch -t 0711220644 temp1
file
:可以查看文件的基本类型以及数据描述,比如是属于ASCII或者data文件,二进制文件,有没使用动态函数库等信息
file 文件名
文件分为纯文本文件/二进制文件/数据格式文件,当我们查阅文件内容时,需要以合适的命令去查阅,以下分为纯文本与二进制文件查阅
cat
: concatenate,由第一行开始显示文件内容cat [-AbenTv] 文件名
-n
:打印出行号,连同空白行tac
: 从最后一行开始显示nl
: 显示时候,顺便输出行号(默认不显示空白行的行号)nl [-bnw] 文件
more
:一页一页地显示文件内容,不能向前翻页,上面的cat
/tac
/nl
都是一次性将文件全部内容显示,文件内容多的时候会不便less
: 与more类似,但比more好,它可以向前翻页和向前搜索head
:只看头几行head [-n num] 文件
tail
:只看尾几行head
类似
head -n 20 /etc/man.config|tail -n 10
或者tail -n +11 /etc/man.config|head -n 10
od
:读取二进制文件内容od [-t TYPE] 文件
a
:利用默认的字符输出c
:使用ASCII字符输出d
:使用十进制来输出f
:利用浮点数来输出o
:利用八进制来输出x
:利用十六进制来输出当我们新建一个新的文件/目录时,其默认权限是怎么指定的,这与umask
有关
umask
:指定目前用户在新建文件/目录时的权限默认值(不同用户的权限默认值不同)
-rw-rw-rw-
root@kumho-Inspiron-3421:~# umask
0022
root@kumho-Inspiron-3421:~# umask -S
u=rwx,g=rx,o=rx
umask 默认分值
chattr
:设置文件隐藏属性,chattr
只能在Ext2/Ext3以上的文件系统生效
chattr [+-=][ASacdistu] 文件/目录名
+
增加属性-
删除属性=
设置属性A
文件/目录的访问时间atime不会被修改S
对文件任何的修改,都会同步写入磁盘中(原本是异步写入磁盘的)a
只能添加数据,不能修改/删除数据,只有root才能设置此属性i
不能删除/改名/不能读写数据,只有root才能设置此属性(连root用户也无法对文件/目录进行操作)lsattr
: 显示文件隐藏属性
lsattr [-adR] 文件/目录
a
将隐藏文件属性也显示出来d
如果是目录,仅列出目录本身属性R
连同子目录/文件也一并列出 请先观察下面3个文件属性
-rwsr-xr-x 1 root root 45420 1月 27 08:51 /usr/bin/passwd
-rwxr-sr-x 1 root mlocate 34452 6月 20 2013 /usr/bin/mlocate
drwxrwxrwt 6 root root 20480 7月 19 16:31 /tmp
发现了吗?
/usr/bin/passwd
的user权限是rws
/usr/bin/mlocate
的group权限是r-s
/tmp
的others权限是rwt
这里的s
以及t
就是特殊权限,每个身份对应的特殊权限是固定的,不可能出现rwt
这情况.
s
出现在user的x
权限上,代表当用户执行此二进制程序时,在执行过程中用户会暂时具有程序所有者的权限.(只能是二进制程序)
x
,表示一般用户可以执行passwd,passwd会去修改/etc/shadow
这个文件对应的密码,但/etc/shadow
这个文件的权限是-rw-r----- 1 root shadow 1292 7月 18 22:03 /etc/shadow
,这代表一般用户无权修改密码,可实际上每个用户都可以修改自己的密码/etc/shadow
可以被一般用户所执行的passwd修改
s
出现在group的x
权限上.
t
出现在others的x
权限上
wx
权限,此用户创建的文件/目录,只有此用户与root才能删除,目录所有者也不能删除
s
/t
)-rwsr-xr-x
,设置命令是chmod 4755 filename
x
权限,相应的特殊权限即使设置了,也无效,而且会有大写S
或T
标明为x
为空查找命令完整的文件名可用which或type,这两个命令都是通过PATH变量来查找文件名.(正是通过PATH,不同的用户可能找到的结果不一样)
查找文件的完整文件名可以使用whereis/locate/find,其中whereis/locate会到数据库文件去查找(所有查找文件前,最好更新下数据库updatedb
),find会直接查找文件系统(在硬盘中查找,较慢)
find [path] [opt] [action]
其中每组[opt]和[action]可以用[-a][-o][-not]连接词来连接,组成复合选项find [path] {-mtime,-ctime,-atime} [+,-]n
其中n为数字,表示天数find / -mtime 0
-uid n
根据用户ID,n代表用户ID-gid n
根据用户组ID,n代表用户组ID-user name
指定用户名-group name
指定用户组名-nouser
无用户文件-name filename
指定文件名 可以使用通配符*
表示任意 如*httpd*
指文件名包含httpd-size [+-]SIZE
指定文件大小 比如小于50k大于10k的文件 - size -50k+10k
-type TYPE
指定文件类型 TYPE:一般文件(f),设备文件(b,c)等文件类型-perm mode
指定文件权限是mode的文件 比如-perm 777
指定查找文件权限为777的文件-perm -mode
指定文件权限包含mode全部属性的文件-perm +mode
指定文件权限包含mode任一属性的文件 -exec command \;
find / -perm +7000 -exec ls -l {} \;
其中{}
表示查找的结果集cd
切换目录x
权限ls
查阅文件名,这目录还需要r
权限cat
/more
/less
等x
权限r
权限x
权限rw
权限wx
权限x
权限x
权限cp dir1/file1 dir2
的命令是,请说明dir1,file1,dir2的最小所需权限
x
权限wx
权限r
权限 假设系统有两个账号,分别是kumho与jinhu,这两个人除了自己用户组之外还共同支持一个名为project的用户组.假设这两个用户共同拥有/home/project目录的开发权,而且该目录不许其他人进入查阅.请问该目录权限应设置为什么?
root@kumho-Inspiron-3421:~# groupadd project
root@kumho-Inspiron-3421:~# useradd -G project jinhu
root@kumho-Inspiron-3421:~# id jinhu
uid=1001(jinhu) gid=1002(jinhu) 组=1002(jinhu),1001(project)
root@kumho-Inspiron-3421:~# id kumho
uid=1000(kumho) gid=1000(kumho) 组=1000(kumho),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare)
root@kumho-Inspiron-3421:~# user
useradd userdel usermod users
root@kumho-Inspiron-3421:~# man usermod
root@kumho-Inspiron-3421:~# usermod -aG project kumho
root@kumho-Inspiron-3421:~# id kumho
uid=1000(kumho) gid=1000(kumho) 组=1000(kumho),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare),1001(project)
root@kumho-Inspiron-3421:~# mkdir /home/project
root@kumho-Inspiron-3421:~# ls -dl /home/project/
drwxr-xr-x 2 root root 4096 7月 18 21:53 /home/project/
root@kumho-Inspiron-3421:~# chgrp project /home/project
root@kumho-Inspiron-3421:~# ls -dl /home/project/
drwxr-xr-x 2 root project 4096 7月 18 21:53 /home/project/
root@kumho-Inspiron-3421:~# chmod 2770 /home/project
root@kumho-Inspiron-3421:~# ls -dl /home/project
drwxrws--- 2 root project 4096 7月 18 21:53 /home/project
Index