一起来学linux:目录与路径
p { margin-bottom: 0.25cm; line-height: 120% }
首先介绍目录相关的路径的表示法:
1 . 代表此目录
2 .. 代表上一层目录
3 – 代表前一个工作目录
4 ~ 代表当前用户身份的主文件夹
5 ~account 代表account这个用户的主文件夹
然后介绍下路径的2个概念:1
相对路径 2绝对路径
绝对路径:
例如/home/zhf/zhf这个路径,路径由根目录开始写起,包含了所有经过的路径
相对路径:路径不是由/写起。相对路径指相对于当前工作目录的路径。相对路径可以写成
cd
../test这种方式,举个例子:在zhf文件夹中有test和test1的文件夹。如果我首先进入test文件夹,此时想要转换到test1文件夹。一般的写法是cd
.. 然后cd
./test1。先回退到上一级目录,然后进入test1文件夹。
p { margin-bottom: 0.25cm; line-height: 120% }
但是test和test1都属于zhf文件夹下面,所以从test转换到test1可以用cd ../test1的方式
目录处理常见
的几个命令如下:
1
cd: change directory. cd后面可以跟相对路径和绝对路径。比如cd
/home/zhf/zhf就是到zhf这个文件夹。
cd
~回到根目录。cd
~zhf 回到zhf的/home
目录
p { margin-bottom: 0.25cm; line-height: 120% }
2 pwd: print working directoy. 顾名思义就是打印当前的工作路径
3 mkdir: 创建文件夹。这里有2个配置参数 -m和-p。
-m:配置文件的权限。当我们创建文件或者文件夹的时候,创建的文件和文件夹是默认权限的。 默认权限可以用umask 来查看。在这里我们的umask是0022。大多数的系统也都是这个值
p { margin-bottom: 0.25cm; line-height: 120% }
第一位的数字忽略,也就是默认权限是022. 这代表什么意思呢。前一章讲到用户和用户权限的时候,提到文件的权限分为读写执行,rwx。分别用数字代表就是 4 2 1。文件权限有本用户,同属一个用户组的用户权限,其他用户的权限。 三者结合起来,如果所有用户都用户读写执行权限,那么文件的权限就是rwx-rwx-rwx。写成数字也就是777. 那么倒过来再看下umask就比较清楚了。umask就代表777需要减去的权限。umask是022,那么默认的权限就是777-022=755。也就代表当前用户有读写执行权限,同用户组用户和其他用户有读,执行权限。也就是rwx-r—xr—x. 我们实际建立一个文件夹来看下是否是这样的。新建立的test文件夹 权限正好是rwx-r—xr--x
p { margin-bottom: 0.25cm; line-height: 120% }
如果觉得umask的0022太过于抽象. 可以用umask -S来更直观的看文件的默认权限
root@zhf-linux:/home/zhf/zhf# umask -S
u=rwx,g=rx,o=rx
所以这里用-m可以制定我们想用的权限。而不是用默认的权限。如下:
root@zhf-linux:/home/zhf/zhf#
mkdir -m 766 test
root@zhf-linux:/home/zhf/zhf#
ls -al
total
7648
drwxrwxr-x
7 zhf zhf 4096 Aug 28 21:30 .
drwxr-xr-x
28 zhf zhf 4096 Aug 28 20:53 ..
-rw-r--r--
1 root zhf 37 May 24 2016 crontest.cron
-rw-r--r--
1 zhf zhf 7733727 Nov 7 2016 Django-1.10.3.tar.gz
drwxr-xr-x
3 root root 4096 Jul 29 10:33 python_prj
drwxrwxr-x
13 root zhf 4096 Aug 21 09:53 python_source
-rw-r--r--
1 zhf zhf 5645 Sep 26 2016 python.vim
-rw-rw-r--
1 zhf zhf 3646 Aug 6 14:24 result1.html
-rw-r--r--
1 root root 0 Aug 6 1root@zhf-linux:/home/zhf/zhf# mkdir
test/test2
mkdir:
cannot create directory ‘test/test2’: No such file or
directory4:24 result.html
drwxrwxr-x
2 zhf zhf 4096 May 14 14:49 shell_test
drwxrw-rw-
2 root root 4096 Aug 28 21:30 test
-rw-rw-r--
1 zhf zhf 38844 Aug 6 15:28 test.png
-rw-rw-r--
1 zhf zhf 145 Aug 6 13:56 test.txt
drwxrwxr-x
2 zhf zhf 4096 Jul 28 10:31 tool_source
-rw-r--r--
1 root root 161 Apr 1 06:30 tst1.tar.bz2
-p:
将所需要的目录递归的建立起来。比如我想建立多个路径的文件夹。mkdir
test/test2. 执行失败。提示没有
test这个文件夹。
root@zhf-linux:/home/zhf/zhf#
mkdir test/test2
mkdir:
cannot create directory ‘test/test2’: No such file or directory
而采用mkdir
test/test2。 则可以一次性的建立test/test2文件夹。
4
rmdir: 删除文件夹。
-p和建立的意思一样,代表连同上层的空目录一起删掉
文件的隐藏属性:
前面介绍了文件的读写执行权限,其实文件还有一些隐藏属性。可以用lsattr和chattr来查看和更改。
chattr有几个参数如下:
a:
只能增加数据,既不能删除也不能修改数据,只有root用户有这个权限
c:
读取的时候会自动亚索
d:
当dump程序被执行的时候,可确保该文件不被dump备份
i:
文件既不能被删除,改名,也无法写入或者添加数据。root用户有此权限
s:
当某件被删除的时候,完全从这个硬盘删除
u:与s相反,如果文件被删除了,数据内容还存在与硬盘中,还可以找回
那么如何设置权限呢,很简单,+代表增加某个权限,-代表去掉某个权限。
我们以i这个参数来看下
root@zhf-linux:/home/zhf/zhf#
chattr +i test.txt
root@zhf-linux:/home/zhf/zhf#
rm test.txt
rm:
cannot remove 'test.txt': Operation not permitted
root@zhf-linux:/home/zhf/zhf#
chattr -i test.txt
root@zhf-linux:/home/zhf/zhf#
rm test.txt
在设置了+i后,文件不能被删除。在-i后,文件才能被删除。在设置了权限后,通过lsattr来查看对应的权限。
root@zhf-linux:/home/zhf/zhf#
chattr +i test.txt
root@zhf-linux:/home/zhf/zhf#
lsattr test.txt
----i--------e--
test.txt
文件查找:
在一个系统中,要去查找文件是一件很头疼的事情,在windows中有各种各样的文件查找软件。比如everything。
但在Linux下,有许多命令也可以快速查找文件。
查找命令有whereis,locate,find。通常使用的是whereis和locate。因为相比find查找硬盘,whereis和locate是查找数据库。速度更快一些。但是find的参数配置更灵活。也就是能更精准的找到我们想要的文件。我们重点介绍下find命令。
命令格式:find
[PATH] [option] [action]
PATH代表查找的路径,如果没有特指的路径,也可以用/根目录开始查找
option有很多种:
-mtime:
根据修改时间
-uid:根据用户的uid
-gid:根据用户的gid
-user
name:根据用户名
-group
name:根据群组名字
-name:根据文件名
-size:根据文件大小
-type:根据文件类型
-perm
+-mode: 根据文件权限 必须要全部包含或者任一mode的文件
action:
在查找完文件后,我们想进行后处理,比如将结果保存在一个文件里面。就要用到action。命令格式位
-exec
ls -l {} \; -exec {}
\;都是关键字命令,其中我们要执行的动作写在-exec和{}之间。find的结果就放在{}里面。
来看一个例子,我们要找到在/home/zhf下的test.py文件。用如下的命令
root@zhf-linux:/home/zhf/zhf/python_prj#
find /home/zhf -name test.py
/home/zhf/py_prj/test.py
/home/zhf/zhf/python_prj/test.py
/home/zhf/zhf/python_source/python-nmap-0.6.1/nmap/test.py
/home/zhf/zhf/python_source/python-nmap-0.6.1/build/lib.linux-i686-2.7/nmap/test.py
/home/zhf/zhf/python_source/Django-1.10.3/django/core/management/commands/test.py
/home/zhf/zhf/python_source/Django-1.10.3/build/lib.linux-i686-2.7/django/core/management/commands/test.py
查找到后需要列出所有文件的权限,也就是执行ls
-l命令
root@zhf-linux:/home/zhf/zhf/python_prj#
find /home/zhf -name test.py -exec ls -al {} \;
-rw-r--r--
1 root zhf 427 Oct 24 2016 /home/zhf/py_prj/test.py
-rw-r--rw-
1 root root 66 Jul 28 11:35 /home/zhf/zhf/python_prj/test.py
-rw-r--r--
1 zhf zhf 171 Jul 30 2016
/home/zhf/zhf/python_source/python-nmap-0.6.1/nmap/test.py
-rw-r--r--
1 root root 171 Jul 30 2016
/home/zhf/zhf/python_source/python-nmap-0.6.1/build/lib.linux-i686-2.7/nmap/test.py
-rw-rw-r--
1 zhf zhf 2794 Nov 1 2016
/home/zhf/zhf/python_source/Django-1.10.3/django/core/management/commands/test.py
-rw-r--r--
1 root zhf 2794 Nov 1 2016
/home/zhf/zhf/python_source/Django-1.10.3/build/lib.linux-i686-2.7/django/core/management/commands/test.py
一起来学linux:目录与路径的更多相关文章
- Linux 目录与路径
树形目录结构 Linux 是以树形目录结构的形式来构建整个系统的. 从逻辑上来说Linux的磁盘是挂载在目录上的,每一个目录能使用本地磁盘分区或网络上的文件系统,比如利用网络文件系统(Network ...
- 《趣谈 Linux 操作系统》学习笔记(一):为什么要学 Linux 及学习路径
前言:学习的课程来自极客时间的专栏<趣谈 Linux 操作系统>,作者用形象化的比喻和丰富的图片让课程变得比较易懂,为了避免知识看过就忘,打算通过写学习笔记的形式记录自己的学习过程. Li ...
- linux目录与路径
1.相对路径和绝对路径 绝对路径:一定是从根目录开始,如:/usr/share/doc 相对路径:如果想从/usr/share/doc/到/usr/share/man下,可以写成 cd ../man, ...
- linux的文件属性介绍、目录及路径表示方法
一.认识linux文件 认识linux下的文件需要先学习命令:ls. 该命令用于显示指定目录下的内容,其中最常用的参数有: -l显示目录和文件的完整属性信息 -a显示所有文件和目录,包含隐藏文件和目录 ...
- 从零开始学Linux[一]:基本命令:系统信息、目录、文件、文件编辑
摘要:linux基础学习:系统信息.目录.文件查找.文件操作.查看文件内容及大小.软链接.VIM使用. 现在Linux的使用非常普遍.对于一个小白来说,满屏幕的字母,看起来就是一头雾水~ 目前由于 ...
- 跟着鸟哥学Linux系列笔记3-第11章BASH学习
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...
- Linux目录规范和含义(转)
Linux目录配置 在了解了每个文件的相关种类与属性,以及了解了如何更改文件属性/权限的相关信息后,再来要了解的就是, 为什么每套Linux distributions他们的配置文件啊.执行文件啊 ...
- 十天学Linux内核之第三天---内存管理方式
原文:十天学Linux内核之第三天---内存管理方式 昨天分析的进程的代码让自己还在头昏目眩,脑子中这几天都是关于Linux内核的,对于自己出现的一些问题我会继续改正,希望和大家好好分享,共同进步.今 ...
- Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。
Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们. 这个是我将鸟哥书上的进行了一下整理的,希望不要涉及到版权问题. 1.显示日期的 ...
随机推荐
- java基础06 Java中的递归
一.递归是指直接或间接地调用自身. 二.递归的注意事项: A:要有出口,否则就是死递归 B:次数不能过多,否则内存溢出 C:构造方法不能递归使用 三.举例子 递归 ...
- zabbix实现邮件报警
说明: Zabbix监控服务端.客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常. 实现目的: 在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报 ...
- IDEA的热部署插件jrebel6.4.3离线安装版配置与破解
JRebel 介绍 IDEA上原生是不支持热部署的,一般更新了 Java 文件后要手动重启 Tomcat 服务器,才能生效,浪费不少生命啊.目前对于idea热部署最好的解决方案就是安装JRebel插件 ...
- MySQL后台线程的清理工作
后台清理工作:脏页刷盘.undo回收 1.page cleaner thread:刷新脏页 2.purge thread:清空undo页.清理“deleted”page 一.innodb_page_c ...
- tensorflow Relu激活函数
1.Relu激活函数 Relu激活函数(The Rectified Linear Unit)表达式为:f(x)=max(0,x). 2.tensorflow实现 #!/usr/bin/env pyth ...
- (转).tar.gz文件和.rpm文件的区别
场景:在Linux环境下安装软件时候总是会遇到安装软件格式的选择,以及安装. 1 软件的二进制分发 Linux软件的二进制分发是指事先已经编译好二进制形式的软件包的发布形式, 其优点是安装使用容易,缺 ...
- 线上故障排查——drools规则引擎使用不当导致oom
事件回溯 1.7月26日上午11:34,告警邮件提示:tomcat内存使用率连续多次超过90%: 2.开发人员介入排查问题,11:40定位到存在oom问题,申请运维拉取线上tomcat 内存快照dum ...
- 配置LAMP实现WordPress
环境说明: 在同一台主机上实现LAMP(Linux + Apache + MariaDB + PHP) CentOS 7.3.Apache 2.4.6.MariaDB 5.5.52.PHP 5.4.1 ...
- 解决kindeditor编辑器中使用百度地图时不能拖动坐标的问题
覆盖\plugins\baidumap文件夹下的map.html代码即可 <!doctype html><html><head> <meta http- ...
- github、gitlab 管理多个ssh key
第一种方法: 通过 git 命令行来操作 1.cd ~/.ssh 2.ls 注:如果.ssh 目录下有文件存在那么表示之前添加过 3. ssh-keygen -t rsa -C "xxxxx ...