Linux目录结构,基本命令及文件操作命令

一.Linux系统中的目录结构

1.根目录 (/)

根目录与开机/还原/系统修复等动作有关。目录不要放在非常大的分区, 因为越大的分区内你会放入越多的数据,如此一来根目录所在分区就可能会有较多发生错误的机会。

因此FHS标准建议:根目录(/)所在分区应该越小越好, 且应用程序所安装的软件最好不要与根目录放在同一个分区内,保持根目录越小越好。 说白了,就是根目录和Windows的C盘一个样。

一下介绍根目录下的子目录

 

2.bin目录(二进制)

/bin主要用于存放普通用户可以使用的命令。

该目录为命令文件目录,也称为二进制目录。包含了供系统管理员及普通用户使用的重要的linux命令和二进制(可执行)文件,包含shell解释器等。

3.boot目录(引导)

主要用于存放Linux启动所需的文件,包括内核,引导文件等。

该目录中存放系统的内核文件和引导装载程序文件,/boot/vmlinuz为linux的内核文件,以及/boot/gurb。建议单独分区,分区大小100M即可。

4.dev目录(设备)

/dev: 设备文件目录,存放设备文件。访问该目录下某个文件,相当于访问某个设备存放连接到计算机上的设备(终端、磁盘驱动器、光驱及网卡等)的对应文件,包括字符设备和块设备等,常用的是挂载光驱mount /dev/cdrom/mnt。 

5.etc目录

/etc: 存放系统和服务的配置文件。该目录存放系统的大部分配置文件和子目录(例如系统用户密码,网络接口,防火墙和系统服务的配置文件等)。不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11(X Window系统有关)、/etc/sysconfig(与网络有关)、/etc/xinetd.d若要修改其中文件,要遵循先备份后修改的原则。该目录下的文件由系统管理员来使用,普通用户通常仅能只读

6.home目录

/home: 该目录用于存放普通用户的家目录,用来存放用户的个人文件,系统文件和应用程序的初始化文件等。家目录是用户登录系统后的起始目录。

新增用户账号时,用户的宿主目录都存放在此目录下,~表示当前用户的宿主目录,~test表示用户test的宿主目录。建议单独分区。


7.lib目录

/lib:用于存放系统及相关软件的依赖的库文件

系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,该目录下存放了各种编程语言库。典型的linux系统包含了C、C++和FORTRAN语言的库文件。/lib目录下的库映像文件可以用来启动系统并执行一些命令,目录/lib/modules包含了可加载的内核模块,/lib目录存放了所有重要的库文件,其他的库文件则大部分存放在/usr/lib目录下。


8.lost+fount目录

/lost+fount:如果系统出现意外或掉电关机,文件系统会损失一些文件或产生一些文件碎片。当系统重新启动时会修复这些文件,并将这些文件放入次目录以便管理员恢复。多数情况下系统会自动修复这些碎片文件,该目录只存在于分区挂载目录中。

9.media,mnt目录

/media:用来挂载一些可移动媒体,例如光驱,U盘。

/mnt主要用来临时挂载一些磁盘设备,为某些设备提供默认挂载点.如floppy,cdrom。这样当挂载了一个设备如光驱时,就可以通过访问目录/mnt/cdrom下的文件来访问相应的光驱上的文件了。

10.opt目录

/opt: 给主机额外安装软件所摆放的目录,也可以将需要编译安装的软件放于此目录。如:如果想要自行安装某软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下。

11.proc目录(process)

/proc: 系统运行时将相关的暂存信息放在此目录。此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等。

12、root目录(根)

/root:系统管理员root的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。

13.sbin目录

存放一些系统管理命令。一般情况下普通用户不能执行这些命令。

/sbin,/usr/sbin,/usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等。

与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能"查看"而不能设置和使用。

14.srv目录(serve服务)

/srv: 服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内。

15.usr目录

存放一些应用程序,帮助和文档,有时也存放一些配置文件和程序等。

/usr: 应用程序存放目录,/usr/bin 存放应用程序, /usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件,/usr/local 存放软件升级包,/usr/share/doc 系统说明文件存放目录。/usr/share/man:  程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容。建议单独分区,设置较大的磁盘空间。

16.var目录

放置系统执行过程中经常变化的文件,例如日志文件,数据库文件,和web服务器程序文件等。

随时更改的日志文件 /var/log。/var/log/message: 所有的登录文件存放目录。/var/spool/mail: 邮件存放的目录。 /var/run: 程序或服务启动后。建议单独分区,设置较大的磁盘空间。

17.tmp目录(temporary 临时)

存放系统或进程在运行时产生的临时文件,用户也可以在此存放自己的临时文件。

tmp目录保存的临时文件对所有用户可见,因此此目录的文件可能回泄露并造成一些安全问题。

该目录下的所有文件会被定时删除,且任何人都可以访问,重要数据不可放置在此目录下。10天内未访问,未更改的文件讲自动被删除。以避免临时文件占满整个磁盘。/var/tmp,30内未访问,未更改的文件讲自动被删除。

 

注意:

在没有确认修改文件内容安全之前,不要随意修改目录proc中的任何文件,否则会造成系统崩溃。

/etc,该目录下的文件由系统管理员来使用,普通用户通常仅能只读

/tmp,保存的临时文件对所有用户可见,且所有文件会被定时删除,因此重要数据不可放置在此目录下。

 

 

二.Linux基本命令

1.切换工作目录命令cd

Linux cd命令用于切换当前工作目录至 dirName(目录参数)。

其中 dirName 表示法可为绝对路径(以/开头的)或相对路径(以“ .”或者“../”开头的)。若目录名称省略,则变换至使用者的 home 目录。

另外,"~" 也表示为 home 目录 的意思,"." 则是表示目前所在的目录,".." 则表示目前目录位置的上一层目录。

#查看当前路径
lkw@lkw-PC:~$ pwd              
/home/lkw

#查看上级目录
lkw@lkw-PC:~$ cd ../
lkw@lkw-PC:/home$ pwd
/home


lkw@lkw-PC:/home$ cd /var/log
lkw@lkw-PC:/var/log$ 

#快速返回家目录
lkw@lkw-PC:/var/log$ cd ~
lkw@lkw-PC:~$ pwd
/home/lkw

#cd参数为空,也是返回家目录,与~相同
lkw@lkw-PC:~$ cd /var/log
lkw@lkw-PC:/var/log$ cd 
lkw@lkw-PC:~$ pwd
/home/lkw

目录文件有r x 权限时,可以cd进入一个目录并可以通过ls命令查清该目录文件包含有什么文件。

目录文件有r无x权限时,可以cd不进入一个目录

目录文件有xr权限时,可以cd进入一个目录但不可以通过ls命令查清该目录文件包含有什么文件。

2.查看当前路径命令pwd

3.查看文件列表命令ls

Linux ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录),还可以查看文件的详细信息,例如查看文件的权限,大小,所有者等。

参数:

  • -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
  • -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
  • -r 将文件以相反次序显示(原定依英文字母次序)
  • -t 将文件依建立时间之先后次序列出
  • -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
  • -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
  • -R 若目录下有文件,则以下之文件亦皆依序列出
#查看当前目录下的文件列表
lkw@lkw-PC:~$ ls
1    bf2.c  Desktop            FF.c    phi       rw             sy33     sy4          Templates  新建文本.txt
3    bf.c   Documents          FF.cpp  phi.c     rw.c           sy333    sy44         Videos
3.c  bff.c  Downloads          gd      phiq      screen shot    sy333.c  sy44.c       wf
bf   cc     eclipse-workspace  gd.c    phiq.c    sy2            sy33.c   sy4.c        wf.c
bf2  Code   FF                 Music   Pictures  sy2.c          sy3.c    synopsis?:q  wfz.c




#文件详细信息
lkw@lkw-PC:~$ ls -l
总用量 384
-rw-r--r-- 1 lkw lkw   120 10月 12 20:28 1
-rwxr-xr-x 1 lkw lkw  8784 4月   4  2018 3
-rw-r--r-- 1 lkw lkw  1508 4月   4  2018 3.c
-rwxr-xr-x 1 lkw lkw 18064 5月  10 17:06 bf
-rwxr-xr-x 1 lkw lkw 18064 5月  10 17:08 bf2
-rw-r--r-- 1 lkw lkw 10960 5月  10 17:08 bf2.c
-rw-r--r-- 1 lkw lkw 11178 5月  10 16:45 bf.c
-rw-r--r-- 1 lkw lkw 11219 5月  10 16:23 bff.c
-rw-r--r-- 1 lkw lkw     0 3月  29  2018 cc
drwxr-xr-x 4 lkw lkw  4096 4月   4  2018 Code
drwxr-xr-x 3 lkw lkw  4096 5月  24 17:00 Desktop
drwxr-xr-x 4 lkw lkw  4096 3月  20  2018 Documents
drwxr-xr-x 2 lkw lkw  4096 4月   4  2018 Downloads
drwxr-xr-x 5 lkw lkw  4096 3月  28  2018 eclipse-workspace
-rwxr-xr-x 1 lkw lkw 13144 5月  10 17:06 FF
-rw-r--r-- 1 lkw lkw  6186 5月   3 17:27 FF.c
-rw-r--r-- 1 lkw lkw     0 5月   3 16:51 FF.cpp
-rwxr-xr-x 1 lkw lkw  9192 4月   9  2018 gd
-rw-r--r-- 1 lkw lkw  1187 4月   9  2018 gd.c
.....

  •  第一个字段第一个字符描述文件类型。“ - ”  代表普通文件,” d “代表一个目录,” l “链接文件,” b “块设备文件,”c“字符设备文件,” p “管道文件。
  • 文件的连接数
  • 文件的属主
  • 文件的属组
  • 文件的大小(默认单位为字节)
  • 文件创建的时间
  • 文件及目录名

 绿色表示可执行文件,蓝色表示目录;

 

#参数为目录,查看目录中所有文件

kw@lkw-PC:~$ ls -l /usr
总用量 84
drwxr-xr-x   2 root root  40960 4月   4  2018 bin
drwxr-xr-x   2 root root   4096 3月  17  2018 games
drwxr-xr-x  55 root root   4096 3月  20  2018 include
drwxr-xr-x 116 root root   4096 3月  28  2018 lib
drwxrwsr-x  10 root staff  4096 3月  10  2018 local
drwxr-xr-x   2 root root  12288 3月  20  2018 sbin
drwxr-xr-x 234 root root  12288 4月   4  2018 share
drwxr-xr-x   6 root root   4096 3月  10  2018 src



#参数为目录,用d查看目录
lkw@lkw-PC:~$ ls -ld /usr
drwxr-xr-x 10 root root 4096 3月  10  2018 /usr


#隐藏文件都以点号”.“开头,默认情况下ls不显示隐藏文件,用a显示查看

lkw@lkw-PC:~$ ls  -al
总用量 1028
drwxr-xr-x 32 lkw  lkw    4096 10月 16 21:06 .
drwxr-xr-x  4 root root   4096 3月  10  2018 ..
-rw-r--r--  1 lkw  lkw     120 10月 12 20:28 1
-rw-------  1 lkw  lkw   12288 3月  18  2018 .1.c.swo
-rw-------  1 lkw  lkw   12288 3月  18  2018 .1.c.swp
-rw-r--r--  1 lkw  lkw   12288 10月 12 21:01 .1.swp
-rw-r--r--  1 lkw  lkw   12288 3月  18  2018 .2.c.swp
......

#以k字节
lkw@lkw-PC:~$ ls -lak
总用量 1164
drwxr-xr-x 32 lkw  lkw    4096 10月 16 21:06 .
drwxr-xr-x  4 root root   4096 3月  10  2018 ..
-rw-r--r--  1 lkw  lkw     120 10月 12 20:28 1
-rw-------  1 lkw  lkw   12288 3月  18  2018 .1.c.swo


#以h查看文件大小,k
lkw@lkw-PC:~$ ls -lah
总用量 1.2M
drwxr-xr-x 32 lkw  lkw  4.0K 10月 16 21:06 .
drwxr-xr-x  4 root root 4.0K 3月  10  2018 ..
-rw-r--r--  1 lkw  lkw   120 10月 12 20:28 1
-rw-------  1 lkw  lkw   12K 3月  18  2018 .1.c.swo
-rw-------  1 lkw  lkw   12K 3月  18  2018 .1.c.swp
-rw-r--r--  1 lkw  lkw   12K 10月 12 21:01 .1.swp
-rw-r--r--  1 lkw  lkw   12K 3月  18  2018 .2.c.swp
-rwxr-xr-x  1 lkw  lkw  8.6K 4月   4  2018 3

4.文件链接命令ln

Linux文件系统中,有所谓的链接(link)可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接即一个快捷方式。硬链接,是目标文件的副本。无论目标文件存在多少个副本,这些副本都使用同一块存储区域,其中一个副本内容变化则所有副本和目标文件内容都改变。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。

不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。

软链接

  • 1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
  • 2.软链接可以 跨文件系统 ,硬链接不可以
  • 3.软链接可以对一个不存在的文件名进行链接
  • 4.软链接可以对目录进行链接

硬链接

  • 1.硬链接,是目标文件的副本。无论目标文件存在多少个副本,这些副本都使用同一块存储区域。其中一个副本内容变化则所有副本和目标文件内容都改变。
  • 2.不允许给目录创建硬链接
  • 3.硬链接只有在同一个文件系统中才能创建

命令参数

必要参数

  • -b 删除,覆盖以前建立的链接
  • -d 允许超级用户制作目录的硬链接
  • -f 强制执行
  • -i 交互模式,文件存在则提示用户是否覆盖
  • -n 把符号链接视为一般目录
  • -s 软链接(符号链接)
  • -v 显示详细的处理过程

选择参数

 

(1)创建硬链接

默认为硬链接

  • -S "-S<字尾备份字符串> "或 "--suffix=<字尾备份字符串>"
  • -V "-V<备份方式>"或"--version-control=<备份方式>"
  • --help 显示帮助信息
  • --version 显示版本信息
 #不使用任何选项时ln会创建一个硬链接文件
 #将/home/lkw/1  创建一个硬链接,并命名未lkww
lkw@lkw-PC:~$ ln /home/lkw/1 lkww


 #查看建立的硬链接文件
lkw@lkw-PC:~$ ls -l   lkww
-rw-r--r-- 2 lkw lkw 120 10月 12 20:28 lkww

(2)创建软链接

创建软链接,需使用s选项

#使用s创建软链接文件
lkw@lkw-PC:~$ ln -s  /home/lkw/1  lla 


#查看建立的软链接文件,将显示链接的源文件信息
lkw@lkw-PC:~$ ls -l lla
lrwxrwxrwx 1 lkw lkw 11 10月 17 17:17 lla -> /home/lkw/1

链接文件显示为红色,并且以 l 开头。

 

 

三.文件操作命令

1.文件命名规则

(1)文件命名规则

遵守以下规则:

  • 除了/外,所有的字符都可以
  • 有些字符最好不用,如空格符,制表符,退格符和字符:? @  #  $ & () \ | ;  ‘’  “ ” <> 等;
  • 避免使用+ -或.作为普通文件名的第一个字符(在Linux下以 .  开头的文件是属于隐藏文件);
  • 另外和Windows文件命名不一样的是,在Linux下文件名大小写敏感。

(2)文件扩展名

虽然Linux系统下无扩展名的概念,但某些特殊的程序要求文件必须要有正确的扩展名才可使用。例如,gcc编译器要求源码文件必须  .c 结尾。 .conf表示配置文件。    .sh表示一段shell程序。  .log表示日志文件 

 

(3)特殊字符和隐藏文件

 .  开头的文件都属于隐藏文件。不建议使用

2.创建文件命令touch

touch命令,若文件不存在,用于创建一个空文件。若存在,用来修改文件或者目录的创建时间,包括存取时间和更改时间。若文件不存在,系统会建立一个新的文件。

#创建一个文件ab
lkw@lkw-PC:~$ touch ab

查询ab信息
lkw@lkw-PC:~$ ls -l ab
-rw-r--r-- 1 lkw lkw 0 10月 17 17:42 ab


#创建文件时,使用选项d指定时间
lkw@lkw-PC:~$ touch -d "8/10/16 18:32"  ed

#查询ed文件
lkw@lkw-PC:~$ ls -l ed
-rw-r--r-- 1 lkw lkw 0 8月  10  2016 ed

 3.创建目录命令mkdir( directory)

mkdir命令用于建立目录。

 #创建一个目录
lkw@lkw-PC:~$ mkdir test
 #显示目录 -ld
lkw@lkw-PC:~$ ls -ld test
drwxr-xr-x 2 lkw lkw 4096 10月 17 17:51 test

 #多级目录,-p(目录不存在),若存在不加-p
lkw@lkw-PC:~$ mkdir -p a/b/c/d/e

 #进入目录
lkw@lkw-PC:~$ cd  a/b/c/d/e

 #显示当前目录
lkw@lkw-PC:~/a/b/c/d/e$ pwd
/home/lkw/a/b/c/d/e

4.移动,重命名文件命令mv

mv命令用来为文件或目录改名、或将文件或目录移入其它位置。

参数说明

  • -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
  • -f: 在mv操作要覆盖某已有的目标文件时不给任何指示;

 


#创建文件a
lkw@lkw-PC:~$ touch a
#把文件a移到test目录下
lkw@lkw-PC:~$ mv a test/
lkw@lkw-PC:~$ ls -l test
总用量 0
-rw-r--r-- 1 lkw lkw 0 10月 17 18:00 a


#创建文件b c d
lkw@lkw-PC:~$ touch b c d
#批量移植
lkw@lkw-PC:~$ mv b c d test/
lkw@lkw-PC:~$ ls -l test
总用量 0
-rw-r--r-- 1 lkw lkw 0 10月 17 18:00 a
-rw-r--r-- 1 lkw lkw 0 10月 17 18:01 b
-rw-r--r-- 1 lkw lkw 0 10月 17 18:01 c
-rw-r--r-- 1 lkw lkw 0 10月 17 18:01 d

#重命名文件或目录
lkw@lkw-PC:~$ mv test test1
lkw@lkw-PC:~$ ls
1    bf2    Desktop            FF.c    phi       rw.c           sy333.c  sy4.c        wf
3    bf2.c  Documents          FF.cpp  phi.c     screen shot    sy33.c   synopsis?:q  wf.c
3.c  bf.c   Downloads          gd      phiq      sy2            sy3.c    task         wfz.c
aa   bff.c  eclipse-workspace  gd.c    phiq.c    sy2.c          sy4      Templates    新建文本.txt
ab   cc     ed                 lla     Pictures  sy33           sy44     test1
bf   Code   FF                 Music   rw        sy333          sy44.c   Videos

 

 

5.复制文件命令cp(copy)

 cp命令主要用于复制文件或目录。

参数说明

  • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
  • -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
  • -f:覆盖已经存在的目标文件而不给出提示。
  • -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
  • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
  • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
  • -l:不复制文件,只是生成链接文件。
    #创建目录
lkw@lkw-PC:~$ mkdir  file
lkw@lkw-PC:~$ mkdir test 

    #复制目录。使用R递归复制目录及目录中的文件
lkw@lkw-PC:~$ cp -R test file/

    #用p复制时保留权限
lkw@lkw-PC:~$ cp -p a b

lkw@lkw-PC:~$ ls -l a b
-rw-r--r-- 1 lkw lkw 0 10月 17 20:36 a
-rw-r--r-- 1 lkw lkw 0 10月 17 20:36 b

6.删除文件命令rm

7.删除空目录命令rmdir

#创建b文件夹
lkw@lkw-PC:~$ mkdir b
lkw@lkw-PC:~$ ls -l
总用量 28
-rw-r--r-- 1 lkw lkw    0 10月 17 21:02 a
drwxr-xr-x 2 lkw lkw 4096 10月 17 21:03 b
drwxr-xr-x 2 lkw lkw 4096 10月 17 20:54 Desktop
drwxr-xr-x 3 lkw lkw 4096 10月 17 20:55 Documents
drwxr-xr-x 2 lkw lkw 4096 10月 17 20:54 Downloads
drwxr-xr-x 2 lkw lkw 4096 10月 17 20:54 Music
drwxr-xr-x 2 lkw lkw 4096 10月 17 20:54 Pictures
drwxr-xr-x 2 lkw lkw 4096 10月 17 20:54 Videos

    #删除空文件夹b
lkw@lkw-PC:~$ rmdir b
lkw@lkw-PC:~$ ls -l
总用量 24
-rw-r--r-- 1 lkw lkw    0 10月 17 21:02 a
drwxr-xr-x 2 lkw lkw 4096 10月 17 20:54 Desktop
drwxr-xr-x 3 lkw lkw 4096 10月 17 20:55 Documents
drwxr-xr-x 2 lkw lkw 4096 10月 17 20:54 Downloads

    #p创建一个路径上的目录
lkw@lkw-PC:~$ mkdir -p b/c/d
lkw@lkw-PC:~$ ls -l b
总用量 4
drwxr-xr-x 3 lkw lkw 4096 10月 17 21:04 c

    #-p删除一个路径上的目录
lkw@lkw-PC:~$ rmdir -p b/c/d
lkw@lkw-PC:~$ ls -l  b
ls: 无法访问'b': 没有那个文件或目录

8.查看文件类型命令file

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值