linux:档案与目录管理
几个常见的目录处理命令:
cd(change directory):变更目录
pwd(print working directory):显示当前目录[目录为连结档,则只显示连结档的路径]([-P]不以连结档的目录路径显示,显示当前目录的完整物理地址而非连结档的地址,)
例如:/var/mail->var/spool/mail,使用pwd只显示连结档/var/mail,加入[-P]选项则显示连结档的实际物理地址var/spool/mail
mkdir(make direcotory):创建一个新的空目录([-p]可以帮你创建多层目录,比如:mkdir -p zgw/zgw1/zgw2/zgw3;[-m]可以在创建目录的同时设置目录权限,比如:mkdir -m 711 zgw_temp)
rmdir:删除一个新的空目录([-p]可以同时删除多层目录;比如:rmdir -p zgw_temp/zgw1/zgw2/zgw3)
注意:使用相对路径必须确认你目前的路径才能切换到你想去的地方
一、$PATH环境变量(关于执行档路径的变数$PATH;path:/etc/profile)
问题:为什么我可以在任何目录执行/bin/ls这个命令呢?
答案:因为linux下面有PATH环境变量
获取环境变量echo $PATH
在centos 7.0下面 /bin(连结到/usr/bin)->/usr/bin(sbin(连结到/usr/sbin)->/usr/sbin)
以下几个问题有助于理解$PATH
1>.假設你是root,如果你將ls由/bin/ls移動成為/root/ls(可用『mv /bin/ls /root』指令達成),然後你自己本身也在/root目錄下, 請問(1)你能不能直接輸入ls來執行?(2)若不能,你該如何執行ls這個指令?(3)若要直接輸入ls即可執行,又該如何進行?
(1).要看/root目录是否存在与$PATH中,如果不存在则不能执行ls,存在则可以执行ls
(2).现在ls在/root目录下,则可以使用/root/ls来执行,或者./ls来执行该指令档案
(3).将/root这个路径加入到$PATH环境变量中就可以执行了{PATH="${PATH}:/root"}
2>.如果有两个ls命令,一个在/usr/local/bin/ls、一个在/bin/ls目录下下面,当你执行ls指令时,哪个ls会被执行?
答案:在$PATH环境环境变量中,哪个目录先被查到就执行哪个目录下的ls指令
3>.为什么$PATH环境变量中不加入【.】呢?加入【.】的话执行起来很方便在/root目录下直接读取目录指令了?
答案:因为每个使用者的工作目录都不同,也在不断的变化,不会固定,所以执行指令会有变动;再一个加入在/tmp目录下有个ls命令,大家都能进入/tmp目录下操作,如果执行ls指令会窃取用户个人信息或者私密信息,这是root账户进来执行了ls将会很糟糕【所以为了安全起见,不建议将(.)加入$PATH环境变量】
总结:
a.用户使用的预设的PATH不同,预设能够随意执行的指令也不同
b.PATH是可以更改的
c.直接使用绝对路径和相对路径来执行某个指令的档名来执行,会比搜寻PATH来的更正确
d.指令应该放置在正确的目录下,执行才会比较方便
e.本目录【.】最好不要放到PATH环境变量中
二、档案与目录管理
1>.档案与目录的视察:ls[command]在linux下面是个很重要也很常用的指令(-----找man、找--help、找info)
2>.复制cp、移动mv、删除rm
cp(常用,使用命令不加任何选项时目的当的权限和修改时间都跟源档案不一样):
注意(在预设的条件中,cp的来源档与目的档的权限不同,目的档的拥有者通常会是指令的操作者),以及下图中注明常用的选项
注意:
-u选项是在源目标档和目的档有差异的时候才使用的,常用在备份的时候
是否需要完整的保留原档案的资讯
来源档案是否为连接档案(symbolic link file)
来源档案是否为特殊的档案,如FIFO,socet
来源档案是否为目录
rm(移除目录或档案):
注意:
删除目录的时候使用【-r】没删除一个文件提示是否删除,在指令前面加上【\】就可以了{\rm -r etc}
删除特殊字符开头的档名档案【+aa或者-aa】则进入当前目录使用【./-aa或者./+aa】也就是rm ./+aa或者rm ./-aa在man中还有一种写法rm -- -a
mv(移动档案和目录或者更名):
三、取得档案的档名和目录名
basename:取的档案的最后档名
dirname:取得档案的目录名
四、档案内容的查询 【注意:善于利用echo,它可以在屏幕上输出任何信息】
cat:由第一行开始显示档案内容
tac:由最后一行开始显示档案内容(与cat刚好相反)
nl:显示的时候顺道输出行号
more:一页一页的显示档案内容
less:与more相似,但是它可以往前翻页
tail:只尾巴几行
head:只看头几行
od:以二进制的方式读取内容
1.直接视察档案内容(一次性将资料全部显示的屏幕上面)
cat("猫",Concatenate ) :
nl:添加行号列打印
2.可翻页查看档案内容(分页显示)
more(一页一页翻动):
less(一页一页翻动):man page就是呼叫了less进行查看档案的说明内容的
3.资料截取head(预设只显示前10行)、tail(预设只显示尾10行)都是以行为单位来进行截取资料的:
head(头):
tail(尾):
4.非纯文字档:od
五、档案的建立或者修改档案的时间【touch】
touch:最常用的就是【简历一个空的档案】与【将某个档案的日期修订为目前mtime和atime】
六、档案预设权限:umask(目前使用者在建立档案或目录的权限预设值)
umask(0022):这个分数值指的是创建的目录或档案的权限需要减掉的权限(后面三位代表ugo三个分组的权限),
建立档案:当使用者建立档案时,【预设没有x可执行权限】,只有rw的权限,所以档案建立预设最大的权限为666(666-022=644)
(-rw-rw-rw-) - (-----w--w-) ==> -rw-r--r--
建立目录:当建立目录时,由于x为是否可以进入目录有关,因此预设为所有的权限都开放,则目录建立预设最大的权限为777(777-022=755)
(drwxrwxrwx) - (d----w--w-) ==> drwxr-xr-x
七、档案隐藏属性(隐藏属性比如设置了【i】,连root都删除不了)
chattr(设定档案隐藏属性;主要的是a与i)----系统安全很重要
lsattr(查看档案或目录的隐藏属性):
八、档案的特殊权限 SUID, SGID, SBIT(-rwSrwSrwT. 1 root root 0 Apr 26 09:11 test其中s和t都是大写的,说明对应的栏位为空,没有执行的权限)
仔细看上面的档案和目录的属性,权限位出现了【t】与【s】
SUID【s出现在拥有者的x权限上为SUID】(set uid)限制与功能:
SUID只能在二进制程序(binary program)上面使用,不能在shell script上面使用,且对目录无效
SUID权限只对二进制程序有效
执行者要对该档案具备可执行【x】的权限
本权限只在执行该程序的过程中有效
执行者将具有该程序拥有者的权限(比如:/etc/shadow这个档案只有root可以查看和强行写入,但是你用一般账户执行【passwd】命令修改密码也是可以写入成功的,因为具有该特殊权限,让一般使用这账户在修改密码写入新密码到该档案时,身份临时变成了root,才能写入新密码修改密码成功)
SGID【s出现在所属群组的x权限上为SGID】(set gid):SGID可以针对档案和目录
对于档案有以下功能:
对二进制位程序有效
程序执行者对于该程序必须具备可执行的权限【x】
执行者在执行该程序时会获得该程序群组的支援
对于目录有一下功能:
使用者对此目录具有读和执行的权限,该使用者能够进入此目录
使用者在此目录下的有效群组将变成该目录的群组
用途:若使用者对该目录有写的权限(【r】可以创建新的档案),则使用者所创建的档案的群组与该目录的群组相同(【专案开发】用户必须支援该目录的所属群组,该目录权限最好设定为2770)
下面是情境模拟:
认真实操上面的代码,有助于理解SGID的用处
SBIT(只对目录有效果,比如:/tmp)对目录的作用:
当使用者对该目录具有w、x的权限,亦即具有写入的权限
当该使用者在该目录下建立档案或目录时,只有自己与root才有权利删除它
SUID、SGID、SBIT的设定
SUID:4(不是用在目录上面)
SGID:2(档案目录都支持)
SBIT:1(不是用在档案上面)
语法:chmod [4,2,1或者三个当中的和][rwx][rwx][rwx](777) 档名
比如:chmod 4755 test 【标识对该档案设置了SUID的功能】
chmod 6755 test 【标识对该目录设置了SGID和SBIT的功能】
也可以使用【ugo】【+-】【s/s/t】来设定
比如(u+s,g+s,o+t):chmod u=rwxs,go=x test;chmod g+s,o+t test
九、获取档案类型:file 【语法:file 档名/目录】
总结:
内容参考自鸟哥linux私房菜,传送门:http://linux.vbird.org/;
linux:档案与目录管理的更多相关文章
- Linux档案与目录管理
Linux档案与目录管理1. 目录与路径1.1 相对路径与绝对路径1.2 目录的相关操作: cd, pwd, mkdir, rmdir cd [相对路径或绝对路径]cd ~ [用户]: 切换家目录cd ...
- 鸟哥的linux私房菜 - 第5/6/7/9章(在线求助 man page、Linux档案权限与目录配置、Linux档案与目录管理、压缩与打包)
第五章.在线求助 man page X window与文本模式的切换 Ctrl+Alt+F1~F6:文字接口登入tty1~tty6终端机: Ctrl+Alt+F7:图形接口桌面. 注销当前用户:exi ...
- Linux 档案与目录管理
『 cd /etc 』这个情况,这也就是所谓的『绝对路径』,他是从根目录连续写上来的一个情况,所以不论你在哪一个路径现执行这一个指令,都会将你移动到该路径下.那如果我是使用『 cd etc 』呢?那表 ...
- linux杂记(七)linux档案与目录管理指令
1.目录的相关操作:cd,pwd,mkdir,rmdir 路径(PATH): 绝对路径:路径的写法[一定由根目录/写起],例如/usr/share/doc这个目录 相对路径:路径的写法[不是由/写起] ...
- 01 Linux档案与目录管理
1. 目录与路径 1.1绝对路径和相对路径 绝对路径:一定有根目录/写起,例如:/usr/share/doc 相对路径:不是由根目录/写起,例如:由/usr/sha ...
- 鸟哥私房菜基础篇:Linux 档案与目录管理习题
猫宁!!! 参考链接:http://linux.vbird.org/linux_basic/0220filemanager.php 鸟哥是为中国信息技术发展做出巨大贡献的人. 1-什么是绝对路径与相对 ...
- linux档案和目录管理(后续)
资料来自鸟哥的linux私房菜 四:档案和目录的预设权限和隐藏权限 umask:预设权限,相比与chomd的4,2,1权限,档案满分为666,目录满分为777,umask可以预设消除部分权限,比如一个 ...
- linux 私房菜 CH7 Linux 档案与目录管理
路径 ``` . 此层目录 .. 上一级目录 前一个工作目录 ~ 当前用户的家的目录 ``` 变换目录 cd 显示目录 pwd [-P] -P 显示出确实的路径,而非使用链接 (link) 路径. 创 ...
- Linux学习(四)档案与目录管理
1. 目录与路径 1.1 相对路径与绝对路径 1.2 目录的相关操作: cd, pwd, mkdir, rmdir 1.3 关于执行文件路径的变量: $PATH2. 档案与目录管理 2.1 档 ...
随机推荐
- sqrt函数实现
感谢杨工,让我更加认识到自己技术薄弱,这道题源自于和杨工的非正式面试,当时根本没思路,甚至没和查找有丝毫的联系,看来做自己想做的还是要付出努力的.sqrt()即开平方运算,y=x*x,已知Y的情况下求 ...
- LR处理文件上传和下载
文件上传 在业务场景有上传操作时,使用LR能录制到上传操作,代码如下.在录制的原始代码中,Filename的Value是上传的文件名,name的Value是一串文件名的加密串,file的Value也是 ...
- 127 2016 int
Type Storage Minimum Value Maximum Value (Bytes) (Signed/Unsigned) (Signed/Unsigned) TINYINT 1 -12 ...
- OneDrive无法正常登录
可能是DNS被污染 手动设置DNS 134.170.108.26 onedrive.live.com134.170.108.152 skyapi.onedrive.live.com
- bug
expected identifier,string or number //这种问题一般是json数据中最后一个逗号没去掉.
- 500Internal Server Error
在今晚测试wamp的项目时,当我导入一个项目到www目录下时出现如下错误:Internal Server ErrorThe server encountered an internal error o ...
- BulletedList使用及详解
BulletedList是一个让你轻松在页面上显示项目符号和编号格式(Bulledted List)的控件.对于ASP.NET 1.x里要动态显示Bulledted List时,要么自己利用HTML的 ...
- WIN 8.1使用常见问题及解决
WIN 8.1正式版64位(cn_windows_8_1_pro_vl_x64_dvd_2971907)使用问题及解决 一.IE11的输入框会变蓝: 如在百度中搜索时,搜索框和按钮均变成蓝色背景, ...
- Cocos2d-JS切换场景与切换特效
var HelloWorldLayer = cc.Layer.extend({ sprite:null, ctor:function () { //////////////////////////// ...
- 用户交互与while循环<代码>
#用户交互1 age_oldboy = 56 guess_age = int(input(">>:")) if guess_age == age_oldboy: pri ...