Linux档案与目录管理
1. 目录与路径
1.1 相对路径与绝对路径
1.2 目录的相关操作: cd, pwd, mkdir, rmdir
 cd [相对路径或绝对路径]
cd ~ [用户]: 切换家目录
cd ~tom/ :切换到tom家目录
cd ~/tom :切换到当前家目录下的tom文件夹
cd - :返回前一个工作目录(可以连续使用,其实就是两个目录之间的切换)

. 代表此层目录
.. 代表上一层目录
- 代表前一个工作目录
~ 代表『目前用户身份』所在的家目录
~cenyu 代表 account 这个用户的家目录(account 是个账号名称)

pwd [-P]
显示当前所在目录(print working directory)
接收参数: -P(大写) 显示确实的路径,而不是连接的路径

mkdir [-mp] 目录名称
创建新目录,接收两个参数
-m :配置文件的权限,是直接设定的 mkdir -m 711 test1
-p :帮助你直接将所需的目录递归建立起来 mkdir -p test1/test2/test3  此处会把原本不存在的test2文件也创建出来

rmdir [-p] 目录名称
删除空的目录,不能删除非空目录
接收参数-p:表示连同上层空的目录也一起删除 rmdir -p test1/test2/test3

1.3 关于执行文件路径的变量: $PATH

$PATH 环境变量,$表示后面接的是变量,可以直接调用的命令都必须添加在环境变量里面去

echo $PATH :显示出环境变量里已经存在的文件。
不同文件之间用冒号(:)分隔

PATH="$PATH":绝对路径 
往PATH里面定义一个环境变量 PATH="$PATH":/root  root文件被添加到PATH里面

2. 档案与目录管理
2.1 档案与目录的检视: ls

ls [-aAdfFhilnrRSt] 目录名称
档案与目录的检视,接收的参数很多
-a :全部的档案,连同隐藏档一起列出来
-d :仅列出目录本身,不管目录下面的档案数据
-h :将档案容量以人类易读的方式列出来
-l :长数据串行,包含文档的属性和权限等等
ls [--time={atime,ctime}] 目录名称
--time=atime :显示访问时间
--time=ctime :显示创建时间

2.2 复制、删除与移动: cp, rm, mv

cp [选项] /path1/xx /path2/yy
若yy是一个文件夹,则将xx复制到yy文件夹下;
若yy不存在,则将xx复制到path2下面,并从命名为yy

cp [-asfilprsu] 来源文件(source) 目标文件(destination)
-p :连同档案的属性一起复制过去,而非使用默认属性(备份常用);
-r :递归持续复制,用于目录的复制行为;(常用)
-d :若来源文件为链接文件的属性(link file),则复制链接文件属性而非档案本身;
-a :相当于 -pdr 的意思,至于 pdr 请参考下列说明;(常用)

rm [-fir] 档案或目录
-f :忽略不存在的档案,不会发出警告;
-i :互动模式,在删除前会询问一下
-r :递归删除!最常用也是最危险的

mv [-fiu] source destination
移动文件到另外一个文件,source可以是多个
-f :force强制的意思,如果目标档案已经存在,不会询问直接覆盖
-i :若目标档案 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标档案已经存在,且(source)比较新,才会更新(update)

2.3 取得路径的文件名与目录名称

basename 完整文件名(包含目录名称和文件名)
获取完整文件名中的最后的档案名
dirname 完整文件名
获取完整文件名中的目录

3. 档案内容查阅:
3.1 直接检视档案内容: cat, tac, nl

cat [-AbEnTv] 文件名
concatenate,将文件全部显示在该条命令下面,从第一行显示到最后一行,适合小文件,大文件的话只会显示最后一屏
-n :打印出行号,连同空白行也会有行号
-b :打印出行号,空白的不会打印

tac 文件名
反向列示,同cat,不同的是,这个查看是从文档的最后一行倒着显示到第一行

nl [-bnw] 文件名
  添加行号打印,同cat -n

3.2 可翻页检视: more, less

more 文件
一页一页的显示档案信息,往下翻的时候有几个命令需要注意一下:
空格键 (space):代表向下翻一页;
Enter :代表向下翻『一行』;
/字符串 :代表在这个显示的内容当中,向下搜寻『字符串』这个关键词;
:f :立刻显示出文件名以及目前显示的行数;
q :代表立刻离开 more ,不再显示该档案内容;
b 或 [ctrl]-b :代表往回翻页,不过这动作只对档案有用,对管线无用。

less 档案
也是一页一页的显示,只不过功能比more的功能更多一些,首先推荐这个
空格键 :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup] :向上翻动一页;
/字符串 :向下搜寻『字符串』的功能
?字符串 :向上搜寻『字符串』的功能;
n :重复前一个搜寻 (与 / 或 ? 有关!),从上到下
N :反向的重复前一个搜寻 (与 / 或 ? 有关!),从下到上
q :离开 less 这个程序;

3.3 资料撷取: head, tail

head [-n number] 档案
取出前面几行
-n :后面接数字,代表显示几行的意思。
head -n 20 /etc/man.config 显示该文件中的前20行,默认情况是前10行
head -n -100 /etc/man.config 去掉后100行的所有。

tail [-n number] 档案
取出档案的后面几行,默认显示最后10行
-n :后面接数字,代表显示几行的意思。
tail -n +100 /etc/man.config 100行以后的信息都会被显示出来

3.4 非纯文本档: od

od [-t TYPE] 档案
用来显示非纯文本文件,-t后面可以接参数
a:利用默认字符串输出   c:利用ASCII输出

3.5 修改档案时间与建置新档: touch

档案的三个是时间:
modification time (mtime): 最近内容修改的时间,默认显示的时间
status time (ctime): 最近权限和属性被修改的时间
access time (atime): 最近访问设备的时间

touch [-acdmt] 档案
修改档案的时间,最常用的是:1.建立一个空的档案;2.将某个档案日期修订为目前(mtime 和 atime)
-a :仅修订atime
-c :仅修改档案的时间,若档案不存在则不建立新档案
-d :后面可以接欲修订的日期而不用目前的时间,也可以使用 --date="日期或时间"
touch -d "2 days ago" bashrc  时间变为两天前,ctime没有变,其他有变
-m :仅修改 mtime ;
-t :后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm]
touch -t 0709120202 bashrc  ctime没有变,其他的有变
touch testtouch 修改三个时间都是当前时间,若文件不存在,则创建这个新文件

4. 档案与目录的默认权限与隐藏权限
4.1 档案预设权限:umask

umask的功能:
目录的文件权限最高是777,文件预设没有可执行权限所以最大为666;但是umask默认的值是022,
umask是权限过滤符,文件或者目录的权限减去umask的值,就是目录和文件新创建时默认的权限值了

umask=数值
为umask赋值,更改了文件和目录新创建时的默认权限

4.3 观察文件类型:file

file 档案
观察文件类型,可以查看档案是属于哪个类型的:ASCII,data档案,或者binary
file ~/.dashrc

5. 指令与档案的搜寻:
5.1 脚本文件名的搜寻:which
which [-a] command
用来查找指令的完整文件名放在什么地方,默认只在PATH中的文件中查找
-a :将所有由PATH目录中可以找到的指令均列出,而不止第一个被找到的指令名称
which -a ls

5.2 档案档名的搜寻:whereis, locate, find

whereis [-bmsu] 档案或目录名
用来搜索档案的,直接查找的出具库,所以会很快
-b :只找binary格式的档案
-m :只找在说明文件manual路径下的档案
-s :只找source来源档案
-u :搜索不在上述三个项目中的其他特殊档案

locate [-ir] keyword
用来搜索档案
-i :忽略大小写的差异;
-r :后面可接正规表示法的显示方式

updatedb
whereis和locate是直接查找数据库里面的,但是数据库档案一天更新一次,所以当天的文件是查找不到的,
这个时候只要更新一个数据库就可以了,通过这个指令用来更新

find [PATH] [option] [action]
find查找比较慢,是通过在硬盘上查找的。
[PATH] 用来指定路径,默认是在当前所在路径查找
[option] 属性,指出按照什么属性来查找,比如按照时间,名称,大小等查找
1. 与时间有关的选项:共有 -atime, -ctime 与 -mtime ,以 -mtime 说明
-mtime n :n 为数字,意义为在 n 天之前的『一天之内』被更动过内容的档案;
        -mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的档案档名;
        -mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的档案档名。
        -newer file :file 为一个存在的档案,列出比 file 还要新的档案档名
        其他略过
[action] 值,属性下对应的值

6. 极重要!权限与指令间的关系:

6.1、让用户能进入某目录成为『可工作目录』的基本权限为何:
可使用的指令:例如 cd 等变换工作目录的指令;
目录所需权限:用户对这个目录至少需要具有 x 的权限
额外需求:如果用户想要在这个目录内利用 ls 查阅文件名,则用户对此目录还需要 r 的权限。

6.2、用户在某个目录内读取一个档案的基本权限为何?
可使用的指令:例如本章谈到的 cat, more, less 等等
目录所需权限:用户对这个目录至少需要具有 x 权限;
档案所需权限:使用者对档案至少需要具有 r 的权限才行!

6.3、让使用者可以修改一个档案的基本权限为何?
可使用的指令:例如 nano 或未来要介绍的 vi 编辑器等;
目录所需权限:用户在该档案所在的目录至少要有 x 权限;
档案所需权限:使用者对该档案至少要有 r, w 权限

6.4、让一个使用者可以建立一个档案的基本权限为何?
目录所需权限:用户在该目录要具有 w,x 的权限,重点在 w 啦!

6.5、让用户进入某目录并执行该目录下的某个指令之基本权限为何?
目录所需权限:用户在该目录至少要有 x 的权限;
档案所需权限:使用者在该档案至少需要有 x 的权限

Linux档案与目录管理的更多相关文章

  1. 鸟哥的linux私房菜 - 第5/6/7/9章(在线求助 man page、Linux档案权限与目录配置、Linux档案与目录管理、压缩与打包)

    第五章.在线求助 man page X window与文本模式的切换 Ctrl+Alt+F1~F6:文字接口登入tty1~tty6终端机: Ctrl+Alt+F7:图形接口桌面. 注销当前用户:exi ...

  2. Linux 档案与目录管理

    『 cd /etc 』这个情况,这也就是所谓的『绝对路径』,他是从根目录连续写上来的一个情况,所以不论你在哪一个路径现执行这一个指令,都会将你移动到该路径下.那如果我是使用『 cd etc 』呢?那表 ...

  3. linux杂记(七)linux档案与目录管理指令

    1.目录的相关操作:cd,pwd,mkdir,rmdir 路径(PATH): 绝对路径:路径的写法[一定由根目录/写起],例如/usr/share/doc这个目录 相对路径:路径的写法[不是由/写起] ...

  4. 01 Linux档案与目录管理

      1. 目录与路径 1.1绝对路径和相对路径         绝对路径:一定有根目录/写起,例如:/usr/share/doc         相对路径:不是由根目录/写起,例如:由/usr/sha ...

  5. 鸟哥私房菜基础篇:Linux 档案与目录管理习题

    猫宁!!! 参考链接:http://linux.vbird.org/linux_basic/0220filemanager.php 鸟哥是为中国信息技术发展做出巨大贡献的人. 1-什么是绝对路径与相对 ...

  6. linux档案和目录管理(后续)

    资料来自鸟哥的linux私房菜 四:档案和目录的预设权限和隐藏权限 umask:预设权限,相比与chomd的4,2,1权限,档案满分为666,目录满分为777,umask可以预设消除部分权限,比如一个 ...

  7. linux 私房菜 CH7 Linux 档案与目录管理

    路径 ``` . 此层目录 .. 上一级目录 前一个工作目录 ~ 当前用户的家的目录 ``` 变换目录 cd 显示目录 pwd [-P] -P 显示出确实的路径,而非使用链接 (link) 路径. 创 ...

  8. linux:档案与目录管理

    几个常见的目录处理命令: cd(change directory):变更目录 pwd(print working directory):显示当前目录[目录为连结档,则只显示连结档的路径]([-P]不以 ...

  9. Linux学习(四)档案与目录管理

    1. 目录与路径  1.1 相对路径与绝对路径  1.2 目录的相关操作: cd, pwd, mkdir, rmdir  1.3 关于执行文件路径的变量: $PATH2. 档案与目录管理  2.1 档 ...

随机推荐

  1. Unity3D 5.x 简单实例 - 发射炮弹

    1,下载.安装: http://unity3d.com/cn/get-unity/download/archive 建议直接借助 UnityDownloadAssistant 进行安装,根据需要勾选需 ...

  2. 房地产行业的商业智能BusinessIntelligence介绍

    商业智能(BI)的需求            随着企业信息化程度的深入,企业内部对获取决策信息的效率.正确性.全面性和准确度的要求也越来越高.但是,伴之而来的却是繁多的报表和信息孤岛的出现,同时由于各 ...

  3. C#中JSON序列化和反序列化

    有一段时间没有到博客园写技术博客了,不过每天逛逛博客园中大牛的博客还是有的,学无止境…… 最近在写些调用他人接口的程序,用到了大量的JSON.XML序列化和反序列化,今天就来总结下json的序列化和反 ...

  4. 游标的使用——mysql

    CREATE DEFINER=`root`@`%` PROCEDURE `split_category_all`()BEGIN declare categ varchar(10); ##套餐列 dec ...

  5. AMD and CMD are dead之KMDjs集成Blob一键下载全部build包

    更新 不zuo,[A/C]MD就不会死,所以kmdjs赢来来其伟大的版本0.0.6,该版本主要的更新有: 移除去了kmdjs.get(..).then的支持,只支持kmdjs.get(-,functi ...

  6. Java泛型介绍——HashMap总结

    今天在编程中,需要使用到Hashmap来存储和传递数据,发现自己学习Java这么久,实际上对泛型依旧知之甚少,搜索整理了一下HashMap的使用. HashMap的声明初始化,因为泛型的原因,起两个参 ...

  7. Android开发7:简单的数据存储(使用SharedPreferences)和文件操作

    前言 啦啦啦~大家好,又见面啦~ 本篇博文讲和大家一起完成一个需要注册.登录的备忘录的,一起学习 SharedPreferences 的基本使用,学习 Android 中常见的文件操作方法,复习 An ...

  8. Menu创建菜单

    菜单是用户界面中最常见的元素之一,使用非常频繁,在Android中,菜单被分为如下三种,选项菜单(OptionsMenu).上下文菜单(ContextMenu)和子菜单(SubMenu),今天这讲是O ...

  9. 使用AIDL调用远程服务设置系统时间

    在实际工作中,经常遇到客户需要用代码设置系统时间的需求,但是Android非系统应用是无法设置系统时间的.于是,我设计了一个使用系统签名的时间设置服务,客户通过bind调用服务里的方法就能达到设置时间 ...

  10. ViewStub源码分析

    ViewStub是一种特殊的View,Android官方给出的解释是:一种不可见的(GONE).size是0的占位view,多用于运行时 延迟加载的,也就是说真正需要某个view的时候.在实际项目中, ...