1.Linux系统中目录的树状结构

目录

/bin

存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。

/etc

存放系统管理和配置文件

/home

存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示

/usr

用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。

/usr/x11r6 存放x window的目录

/usr/bin 众多的应用程序

/usr/sbin 超级用户的一些管理程序

/usr/doc Linux文档

/usr/include linux下开发和编译应用程序所需要的头文件

/usr/lib 常用的动态链接库和软件包的配置文件

/usr/man 帮助文档

/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里

/usr/local/bin 本地增加的命令

/usr/local/lib 本地增加的库

/opt

额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。

/proc

虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。

/root

超级用户(系统管理员)的主目录(特权阶级^o^)

/sbin

存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。

/dev

用于存放设备文件。

/mnt

系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。

/boot

存放用于系统引导时使用的各种文件

/lib

存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。

/tmp

用于存放各种临时文件,是公用的临时文件存储点。

/var

用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。

/lost+found

这个目录平时是空的,系统非正常关机而留下"无家可归"的文件(windows下叫什么.chk)就在这里

重要目录的解释:

/bin:bin是Binary的缩写, 这个目录存放着最常使用的命令,诸如mkdir、cat命令。

/etc:etc这个目录用来存放所有系统管理的配置目录和配置文件。

/home:用于存放用户主目录的,在Linux中,每个用户都有一个以自身账号命名的目录,我们称其为用户主目录,用户主目录一般存放在/home下。

【注】

⑴windows与linux文件路径的区别在于目录的分隔符,Windows目前用正反斜杠(/和\)均可以,Linux只能用正斜杠(/)。

⑵因为web程序开始于Unix系统,所以URL也用 / 做路径分割符,后沿袭做运算符/除法

2.目录的增、删、改、查操作

mkdir (创建新目录)

语法:mkdir [-mp] 目录名称
选项与参数:
-m :mode创建目录的同时指明目录的权限
-p :录递归的创建上层目
实例:
[root@www ~]# cd /tmp
[root@www tmp]# mkdir –m test1/test2/test3/test4
mkdir: cannot create directory `test1/test2/test3/test4':
No such file or directory <== 因找不到上层目录而创建失败
[root@www tmp]# mkdir –m -p test1/test2/test3/test4
加了参数-p后就可以递归的创建上层目录

rmdir (删除空的目录)

语法:rmdir [-p] 目录名称
选项与参数:
-p :连同上一级『空的』目录也一起删除,仅当前目录删除后其父目录为空时父目录才会被删除
实例:
[root@www tmp]# rmdir test <==可直接删除,没问题
[root@www tmp]# rmdir test1 <==因为尚有内容,所以无法删除!
【注意】
⑴加了参数 -p,仅当前目录删除后其父目录为空时父目录才会被删除。
⑵rmdir 仅能删除空目录,用 rm –rf 目录 来删除非空目录。

cp (复制目录或文件)

语法:
cp [-adfilprsu] 来源档(source) 目标档(destination)
cp [options] source1 source2 source3 .... directory
选项与参数:
-i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
-p:连同文件的属性一起复制过去,而非使用默认属性(备份时常用);
-r:递归的复制,用于目录的复制行为(常用)
实例:
[root@www ~]# cp ~/.bashrc /tmp/bashrc
[root@www ~]# cp -i ~/.bashrc /tmp/bashrc
cp: overwrite `/tmp/bashrc'? n <==n不覆盖,y为覆盖

mv (移动文件与目录,或修改名称)

语法:
mv [-fiu] source destination
mv [options] source1 source2 source3 .... directory
选项与参数:
-f :force 强制移动的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
实例:
[root@www tmp]# cp ~/.bashrc bashrc
[root@www tmp]# mkdir mvtest
[root@www tmp]# mv bashrc mvtest <==将目录bashrc移动到目录 mvtest
[root@www tmp]# mv mvtest mvtest2 <==将目录mvtest重命名为mvtest2
【注】mv命令中若目标已存在则表示移动,若目标不存在则表示重命名

ls(列出某目录中的内容)

语法:
ls [options] 目录名称
选项与参数:
-a :列出包括隐藏文件在内的全部文件,
-l :列出文件的属性与权限等数据(常用)
实例:
[root@localhost ~]# ls -l ~ #查看root主目录中各文件或目录的属性

【注意】⑴目录的增删操作中参数-p表示向上递归,而在拷贝和移动中参数-r表示向下递归,参数-f和-i分别表示强制和交互式操作。

3. 文件的增、删、改、查操作

touch(新增文件)

语法: touch 文件名
功能描述:当参数为已存在的文件,则表示更新该文件的创建时间为当前时间。
若参数为不存在的文件则表示新建空的文件。
实例:
①更新文件的创建时间:
[root@mail test]# ll
总用量
-rw-r--r-- root root 3月 : .txt
[root@mail test]# touch .txt
[root@mail test]# ll
总用量
-rw-r--r-- root root 3月 : .txt #更新到系统当前时间
②创建空的文件:
[root@mail test]# ll
-rw-r--r-- root root 3月 : .txt
[root@mail test]# touch .txt
[root@mail test]# ll
-rw-r--r-- root root 3月 : .txt
-rw-r--r-- root root 3月 : .txt #文件大小为0所以是个空文件

rm (删除文件或目录)

语法:rm [options] 文件或目录
选项与参数:
-f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
-i :交互式删除,在删除前会询问使用者是否动作
-r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!
实例:
[root@www tmp]# rm -i bashrc
rm: remove regular file `bashrc'? y

【注】rm 命令不仅可删除文件,还可以用来删除非空目录

vi/vim(修改文件)

所有的 Unix Like 系统都会内建 vi 文本编辑器,其它的文本编辑器则不一定会存在。但是目前我们使用比较多的是 vim 编辑器,vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。

基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),输入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是:

命令模式:用户启动 vi/vim时便进入了命令模式,此模式下键盘的按键会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。以下是常用的几个命令:

  • i 切换到输入模式,以输入字符。
  • x 命令模式下删除当前光标所在位置的字符。
  • : 切换到底线命令模式,以在最底一行输入命令。

输入模式:在命令模式下按i就进入了输入模式,在输入模式中,可以使用以下按键:

  • 字符按键以及Shift组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END,移动光标到行首/行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式

底线命令模式:在命令模式下按下:(英文冒号)就进入了底线命令模式。底线命令模式可以输入单个或多个字符命令,可用的命令非常多。在底线命令模式中,基本的命令有:

  • q 退出程序
  • w 保存文件

三种模式切换示意图

【注】⑴若vi或vim命令后跟不存在的文件则表示先创建该文件,在进行vim编辑。

⑵命令模式下按 a, i, o键均可进入到输入模式,输入模式下除了 Esc 这个按键之外,其它的按键都可以作为字符输入。输入模式下vim编辑器的底部会出现 –INSERT- 字样。

cat(查看文件内容)

cat命令可用于查看文件内容、创建新的文件、将多个文件合并成一个文件,它常与重定向符号(">")配合使用,具体语法如下:

  • 查看文件内容:cat filename
  • 新建一个名为filename的文件:cat >filename 只能创建新文件,不能编辑已有文件,这是与vim命令的区别
  • 将多个文件合并为一个文件:cat file1 file2 > file

【注】tac与cat命令刚好相反,文件内 容从最后一行开始显示,可以看出 tac 是 cat 的倒着写。

4.文件或目录的属性管理

可以使用ll或者ls –l命令来显示一个目录中所有的文件或目录的属性。

示例:[root@localhost ~]# ls -l ~ #查看root主目录中各文件或目录的属性

⑴开始的total表示该目录的大小(以KB为单位)

⑵各文件或目录七个属性段的含义:

第1段表示文件类型及读、写、执行权限

第2段表示文件硬链接数(同快捷方式)或子目录数(类型为目录的前提下)

第3段表示该文件的属主

第4段表示该文件的属组

第5段表示该文件的大小(以byte字节为单位)

第6段表示该文件的创建时间(以月-日-年的格式表示)

第7段表示该文件的文件名

4.1 chown(更改文件属主)

语法:
chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名
【注】chown可同时更改属主和属组,参数R表示递归更改

4.2 chgrp(更改文件属组)

语法:chgrp [-R] 属组名 文件名

4.3 chmod(更改文件的读、写以及执行权限)

Linux文件的基本权限有两种设置方法:一种是数字,一种是符号。文件的基本权限有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限,各权限的权值对照表如下:

r:4

w:2

x:1

这相当于将rwx视作3位二进制数111(即十进制的7),有相应权限该位为1,无权限该位为0。

示例:

[root@www ~]# ls -al .bashrc
-rw-r--r-- root root Jul : .bashrc
[root@www ~]# chmod .bashrc
[root@www ~]# ls -al .bashrc
-rwxrwxrwx root root Jul : .bashrc

改变文件权限就是改变(1)user (2)group (3)others这三个身份上的读、写及执行权限,我们可以由u, g, o来分别代表这三种身份,此外可用a (all)代表全部身份。那么改变权限的另一种方式如下:

创建文件并将文件权限设置为 -rwxr-xr-- ,可以使用 chmod u=rwx,g=rx,o=r 文件名 来设定:
# touch test1 // 创建 test1 文件
# ls -al test1 // 查看 test1 默认权限
-rw-r--r-- root root Nov : test1
# chmod u=rwx,g=rx,o=r test1 // 修改 test1 权限
# ls -al test1
-rwxr-xr-- root root Nov : test1
拿掉所有人的可执行权限,其它权限不变
# chmod a-x test1
# ls -al test1
-rw-r--r-- root root Nov : test1

【注】⑴第一种数字权限表示法无需指明身份,第二种需指明身份的简写。

有关文件和目录的属性设置可参考博文:Linux 文件属性

5.文件的特殊操作

5.1 find查找命令

Linux下find命令提供相当多的查找条件,因此功能比较强大,可以在众多文件或目录下查找你想要的任何文件或目录。

find命令语法格式:find  [查找路径]  [查找条件]  [针对查找到的结果逐个处理]

查找路径:指在那个目录下查找,默认为在当前目录;

查找条件:即为搜索条件,可取值如下:

按文件类型(-type),文件名(-name),文件属主(-user),文件所属组)(-group),文件权限(-perm),文件长度(-size),文件修改时间(-mtime)等查找。
文件类型包括:d  目录文件。
                       l  符号链接(指向另一个文件,类似于瘟下的快捷方式) 。 
                      s  套接字文件。
                      b  块设备文件,二进制文件。
                      c  字符设备文件。
                         p  命名管道文件。
                         -  普通文件,或更准确地说,不属于以上几种类型的文件。
文件权限包括:r    读文件
                         w   写文件
                         x    执行文件操作
示例:
(1)按文件类型查找:find test1 -type d
(2)按文件名查找:find -name test.sh
针对查找到的结果逐个处理:
-print: 打印查找到的文件名,此为默认的处理
-exec: 对查找的结果逐个执行某种shell命令。命令的形式为command { }  \;,其中“{ }  \;”是固定写法,变化的仅仅是command,且需注意他们之间的空格。
示例:
#在当前目录下查找名为test.sh的文件,首先打印出文件名,再输出文件的内容
[root@localhost bash]# find -name test.sh -print -exec cat {} \;
./test.sh
#!/bin/bash
echo "Hello World !"
#只输出文件的内容,不打印文件名
[root@localhost bash]# find -name test.sh -exec cat {} \;
#!/bin/bash
echo "Hello World !"
-ok:和-exec的作用相同,只不过是以一种更为安全的模式来对查询结果执行某种shell命令。在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
[root@localhost bash]# find -name test.sh -ok cat {} \;
< cat ... ./test.sh > ? y
#!/bin/bash
echo "Hello World !"
[root@localhost bash]# find -name test.sh -ok cat {} \;
< cat ... ./test.sh > ? n
[root@localhost bash]#

【OS_Linux】Linux系统中目录及文件管理的更多相关文章

  1. VMware下的Linux系统中Windows的共享目录,不支持创建软连接

    [问题]  在编译VMware下的Linux系统对从Windows中共享过来的文件,进行编译的时候,遇到:  ln: creating symbolic link XXXXXX : Operation ...

  2. Linux系统中的一些重要的目录

    Linux系统中的一些重要的目录 1)bin目录 :基础系统所需要的命令位于此目录,是最小系统所需要的命令,如:ls, cp, mkdir等.这个目录中的文件都是可执行的,一般的用户都可以使用2)sb ...

  3. 用户管理 之 在Linux系统中,批量添加用户的操作流程

    一.阅读此文件您需要掌握的基础知识: <Linux 用户(user)和用户组(group)管理概述><用户(user)和用户组(group)配置文件详解><Linux 用 ...

  4. 在linux系统中安装VSCode(Visual Studio Code)

    在linux系统中安装VSCode(Visual Studio Code) 1.从官网下载压缩包(话说下载下来解压就直接可以运行了咧,都不需要make) 访问Visual Studio Code官网  ...

  5. Linux /dev目录详解和Linux系统各个目录的作用

    Linux /dev目录详解(转http://blog.csdn.net/maopig/article/details/7195048) 在linux下,/dev目录是很重要的,各种设备都在下面.下面 ...

  6. Linux系统中配置jdk

    在Linux系统下安装jdk 1.到Oracle公司的官网里下载好jdk,网址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8 ...

  7. Linux 系统中用户切换

    1. Linux系统中用户切换的命令为su,语法为: su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]] 参 ...

  8. 深入理解linux系统的目录结构(总结的非常详细)

    对于每一个Linux学习者来说,了解Linux文件系统的目录结构,是学好Linux的至关重要的一步.,深入了解linux文件目录结构的标准和每个目录的详细功能,对于我们用好linux系统只管重要,下面 ...

  9. Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf 动态库的后缀为*.so 静态库的后缀为 libxxx.a ldconfig 目录名

    Linux系统中“动态库”和“静态库”那点事儿 /etc/ld.so.conf  动态库的后缀为*.so  静态库的后缀为 libxxx.a   ldconfig   目录名 转载自:http://b ...

随机推荐

  1. ISCC 2018线上赛 writeup

    今天有机会去ISCC2018参加了比赛,个人的感受是比赛题目整体难度不高,就是脑洞特别大,flag形式不明确,拿到flag后也要猜测flag格式,贼坑 废话不多说,以下是本人的解题思路 MISC 0x ...

  2. vue 脚手架 图片预加载

    $('.back-img').onload =function(){ var img =new Image(); img.src = '../assets/dt-bj.png'; } 该组件内的图片加 ...

  3. Codeforces 1142B(倍增)

    1.先预处理出在循环中某数前面的数是谁. 2.读入a数列时贪心选取最晚的父亲. 3.链上倍增预处理二进制祖先. 4.对于每个位置,预处理第n-1个祖先位置最早要从哪里开始,技巧上再顺手与前一位的最早位 ...

  4. morhpia(4)-更新

    更新由2部分组成:一个查询和一组更新操作符.本例是跟所有薪水小于等于2000的员工涨工资500. @Test public void update() throws Exception { //第一步 ...

  5. 107 Binary Tree Level Order Traversal II 二叉树的层次遍历 II

    给定一个二叉树,返回其节点值自底向上的层次遍历. (即按从叶节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7],    3   / \  9 ...

  6. python 多继承(新式类) 二

    在python中,要调用父类的某个方法,python2.2之前需要如下代码: class A:def __init__(self):   print "enter A"   pri ...

  7. VMware下OSSIM 5.2.0的下载、安装和初步使用(图文详解)

    不多说,直接上干货! 入门阶段不建议选用最新的版本. 采用OSSIM 4.11 到 OSSIM5.0.3 之间任何版本做实验,sensor的状态都会是“V”.   建议,入门,采用OSSIM5.0.0 ...

  8. Unity Shader入门精要学习笔记 - 第3章 Unity Shader 基础

    来源作者:candycat   http://blog.csdn.net/candycat1992/article/ 概述 总体来说,在Unity中我们需要配合使用材质和Unity Shader才能达 ...

  9. 如何在spring环境中做单元测试

    在测试类的上方加入以下注解 @RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:spring.xm ...

  10. select *from where 和select *from jion on 语句的差别

    https://zhidao.baidu.com/question/541791438.html select 学号 a,成绩 a,姓名 b from 成绩表 a,学生表 b where a.学号=b ...