闲来无事 ,整理了一下自己的网盘发现了很久以前保存的一个linux的文章 ,从老师那弄来的。分享给大家2.1 Linux系统文件
Linux使用标准的目录结构,在安装的时候,安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。
2.1.1 Linux系统文件结构
Linux系统文件结构如图1所示:
Linux系统文件结构具体内容为:
/ 根目录
/bin:这是存放诸如ls,mv,rm,mkdir,rmdir,gzip,tar,telnet和ftp等常用执行文件的地方(这些执行文件的执行方法会在后面提到)。有时这个目录的内容与/usr/bin一样(有时甚至会使用链接文件),是专门用于放置一般用户使用的执行程序。
/boot:这是放置Linux核心与启动相关文件的地方,目录下的vmlinuz-xxx就是Linux的内核。如果启动管理程序选择grub,那么这个目录内还有/boot/grub子目录。
/dev:存放与设备有关的文件。基本上, Linux系统均把设备当成文件,例如/dev/fd0代表软驱,相当于Windows系统下的A区,而/dev/cdrom则代表光驱。
/etc:系统在启动过程中需要读取的文件均在这个目录下,例如Lilo的参数、用户账号与密码、系统的主要设定、http架站参数、启动的服务项等,所以在这个目录下工作的时候一定要记得备份,否则文件被意外修改后会很麻烦。
/etc/rc.d:这个目录主要存放开关机过程中用到的脚本文件。
/etc/rc.d/init.d:所有服务默认的启动脚本文件都放在这里,例如,要启动与关闭iptables,可以使用:
/etc/rc.d/init.d/iptables start
/etc/rc.d/init.d/iptables stop
/etc/xinetd.d:这个路径在较新的Linux版本中才有,由于早期版本中用来启动服务的文件是inetd.conf,但是在较新版本中,启动服务已经变成使用xinetd.conf文件。
/etc/X11:这是与X windows有关的配置文件所在的目录,尤其重要的是里面的XF86Config-4。
/home:基本上,这是系统默认的用户根目录(home directory),新增一个一般用户的账号时,默认的用户根目录已在这里设定好。
/lib:在Linux执行或编译某些程序时要用到的函数库(library)就在这个目录下。
/lost+found:系统产生异常错误时,会将一些遗失的片段放置在此目录下,通常这个目录会自动出现在设备目录下。例如您在/disk中加装一块硬盘, 这个目录下就会自动产生目录/disk/lost+found。
/mnt:软驱与光驱默认装载点的地方。通常,软驱挂在/mnt/floppy下,光驱挂在/mnt/cdrom下,不过也不一定,只要您高兴,随便找一个地方装载也可以。
/proc:用于放置系统核心与执行程序所需的一些信息,例如网络状态等问题。这个目录将在启动Linux的时候自动被挂上,而且该目录不会占用硬盘空间,因为里面都是内存中的数据。
/root:系统管理员的根目录。
/sbin:放置系统管理常用的程序,例如fdisk,mke2fs,fsck,mkswap和mount等。与/bin不太一样,这个目录下的程序通常是root等系统管理员使用的程序。
/tmp:这是让一般用户存放临时文件的地方,例如您在安装Linux下的软件时,可能软件的默认安装目录就是/tmp,所以您要定期清理,当然,重要数据最好不要放在这里。
/usr:这是最重要的一个目录,里面含有很多系统信息,其下包含许多子目录,用来存放程序与指令。这个目录有点类似Windows下的Program Files目录。
/usr/include:一些套件的头文件。基本上,当我们以Tarball方式(*.tar.gz方式)安装某些数据时会用到的函数库都在这个目录下。
/usr/lib:内含许多程序与子程序所需的函数库。
/usr/local:在安装完Linux之后,基本上所有的配备您都有了,但软件总要升级,例如您要升级代理服务,则通常软件默认的安装目录就是在/usr/local中(local是“本地”的意思),同时,为了与系统原先的执行文件有所区别,升级后的执行文件通常放在/usr/local/bin目录下(通常,为了便于管理,鸟哥都会将后来安装的软件放在这里)。
/usr/share/doc:放置一些系统说明文件的地方。例如您安装了Lilo,那么在该目录下就可以查到Lilo的说明文件,很是便利。
/usr/share/man:放置一些程序的说明文件的地方,就是您使用man时会查询的路径。例如您使用manls指令时,就会查出/usr/share/man/man1/ls.1.bz2这个说明文件的内容。
/usr/src:是放置核心源代码的默认目录,未来我们要编译核心的时候,就必须到这个目录下。
/usr/X11R6:X Window System存放相关文件的目录。
/var:这个目录也非常重要,所有服务的登录文件或错误信息文件(log files)都在/var/log下,此外,一些数据库如MySQL则在/var/lib下,还有,用户未读邮件的默认存放地点为/var/spool/mail。
2.1.2 Linux操作系统下常见文件类型
操作系统使用不同的文件扩展名区分不同类型的文件,下面给出了不同的文件扩展名和其对应的程序。
1. 压缩和打包文件
.bz2 — 使用bzip2命令压缩的文件,可以使用bzip2-d filename 解包。
.gz — 使用gzip命令压缩的文件,可以使用gunzip-d filename 解包。
.tar — 使用tar打包的文件,即tarball文件,可以使用tar xf filename 解包。
.tbz — 使用tar打完包后再以bzip2命令压缩的文件,可以使用tar jxf filename 解包。
.tgz — 使用tar打完包后再以gzip命令压缩的文件,可以使用tar zxf filename 解包。
2.普通文件格式
.au — 声音文件,可以使用系统的声音播放器或者是JAVA程序播放。
.gif — GIF图像文件,可以使用WEB浏览器查看。
.html/.htm — HTML文件,可以使用WEB浏览器查看。
.jpg — JPEG图像文件,可以使用WEB浏览器查看。
.pdf — 文档的电子版本,PDF是一种电子文档的标准,可以使用xpdf或者是adobeacrobat reader阅读。
.png — PNG图像文件,可以使用WEB浏览器或者图像浏览器查看。
.ps — PostScript文件,一种打印格式文件,可以使用ghostview或者是支持ps查看的图像浏览器查看,也可以直接输出给打印机打印。
.txt — 文本格式文件,可以使用任何编辑器查看。
.wav — 声音文件,可以使用声音播放器播放。
.xpm — XPM图像文件,可以使用图像查看器查看。
3.系统文件
.conf — 某个程序的配置文件,一般可以使用vi进行编辑。
.lock — 某个程序的锁定文件,用于检测某个程序在执行或者某个设备或者资源正在使用。
4. 程序和脚本文件
.c — C语言程序源码文件。
.cpp — C++语言程序源码文件。
.h — C或C++语言的头文件。
.o — 程序对象文件。
.pl — Perl脚本文件。
.so — 动态链接库文件。
.tcl — TCL脚本文件。
2.2 命令行界面常用操作命令
在Ubuntu系统中,无论是在终端窗口还是在控制台,都可以通过命令方式对系统进行操作。
Linux提供的每个命令都是由命令名和若干选项组成的命令行。有些命令中选项可以缺省。命令的一般格式为:
命令名 [选项1] [选项2] [……]
命令名规定了命令的功能,命令执行时按选项的要求完成功能。[ ]表示其中的内容是任选项,在使用命令时,要去掉方括号。
Linux的命令非常丰富,这里仅介绍一些涉及目录和文件的操作命令,还有很多命令在后续的章节中介绍。
1.显示工作目录
命令名称:pwd
命令格式:pwd[--help][--version]
功能说明:显示当前所在的工作目录的绝对路径名称。
命令选项:
--help,在线帮助。
--version,显示版本信息。
范例:
显示当前工作目录
administration@localhost~$ pwd
/home/administrator
2.显示目录内容
命令名称:ls
命令格式:ls [选项] [文件名]
功能说明:显示指定工作目录下的内容(列出当前工作目录所包含的子目录名称或文件名称)。
常用选项:
-a,显示所有文件及目录(包括隐藏文件,隐藏文件以“.”开头)。
-l,使用详细格式列表。
-d,只列出目录。
范例:
①.列出当前工作目录下的所有文件和目录
administration@localhost~$ ls -a
②.详细列出当前工作目录下的所有文件和目录
administration@localhost~$ ls -l
说明:用ls -l命令查看某一个目录会得到一个9个字段的列表,如下所示。
file:///C:/Users/%E5%90%8C%E6%AC%A2/AppData/Local/Temp/msohtmlclip1/01/clip_image004.gif
第1字段,文件属性字段。文件属性字段由10个字母组成,第一个字母表示文件类型。如果这个字母是一个减号"-",说明该文件是一个普通文件;字母是"d"表示该文件是一个目录;字母是"l"表示该文件是一个符号链接,符号链接的概念类似于windows里的快捷方式。其它字母表示权限,具体内容请查看第六章相关内容。
第2字段,文件链接数或目录子目录数。
第3字段,文件拥有者。
第4字段,文件拥有者所在的组。
第5字段,文件文件大小(以字节为单位)。
第6字段,文件创建月份。
第7字段,文件创建日期。
第8字段,文件创建时间。
第9字段,文件或目录名称。如果是一个符号链接,那么会有一个"->" 箭头符号,后面跟一个它指向的文件名。
3.改变当前目录
命令名称:cd
命令格式:cd [dirName]
功能说明:改变当前目录为dirName指定的目录。其中“.”表示当前目录,“..”表示当前目录的上级目录,“~”表示用户目录,“/”表示根目录。
由于操作系统均采用多级目录文件结构,要找到需要的文件就必须知道文件的存储位置,而表示文件存储位置的方式就是路径。路径分为绝对路径和相对路径两种。绝对路径总是以“/”开始,是相对于根目录的路径,所以一个文件的绝对路径是不变的。比如/usr、/etc/X11;相对路径是指文件相对于用户当前目录的路径,例如./cdrom,“.”表示当前目录。
范例:
①.改变当前目录为根目录
administration@localhost~$ cd /
②.改变当前目录为/etc/X11
administration@localhost~$ cd /etc/X11
③.改变当前目录为administrator的主目录
administration@localhost~$ cd ~
④.进入当前目录的上一级目录
administration@localhost~$ cd ..
4.创建目录
命令名称:mkdir
命令格式:mkdir [选项] dirName
功能说明:创建名称为“dirName”的子目录。
常用选项:
-p,确保目录存在,不存在就建立一个。
范例:
在当前目录下创建一个名为game的子目录
administration@localhost~$ mkdir game
5.删除目录
命令名称:rmdir
命令格式:rmdir [选项] dirName
功能说明:删除名称为dirName且已经清空的目录,如有文件则无法删除。
常用选项:
-p,若此目录的上层目录也为空,则一并把它的上层目录删除。
范例:
删除之前建立的game子目录
administration@localhost~$ rmdir game
6.显示文本文件内容
命令名称:cat
命令格式:cat [选项] [File]
功能说明:显示名称为File的文件内容。
常用选项:
-n,由1开始对所有输出的行数编号。
-b,和 -n 相似,只不过对于空白行不编号。
-s,当遇到有连续两行以上的空白行,就代换为一行的空白行。
>,重新输出导向符号。
范例:
①.显示main.c文件的内容
administration@localhost~$ cat main.c
②.将a1.txt和a2.txt合并成a3.txt
administration@localhost~$ cat a1.txt a2.txt > a3.txt
7.复制文件
命令名称:cp
命令格式:
复制文件到另一文件
cp [选项] 源文件名目标文件名
复制文件到目录
cp [ ] 源文件名 目标目录
复制目录到目录
cp [ 选项] 源目录 目标目录
功能说明:复制文件
常用选项:
-i,覆盖既有文件之前先询问用户。
-u,除非目的地的同名文件比较旧,它才覆盖过去。
-R,复制目录及目录内的所有项目。
范例:
①.在当前目录做一个文件副本。复制 prog.c 到 prog.bak。
administration@localhost~$ cp prog.c prog.bak
如果 prog.bak 现在不存在,则 cp 命令创建它。如果它存在,cp 命令用 prog.c 命令的副本取代它。
②.复制当前目录下的文件jones到 /home/nick/clients/目录下面
administration@localhost~$ cp jones /home/nick/clients
③.复制/home/janet/clients目录下的所有文件到/home/nick/customers 目录中
administration@localhost~$ cp /home/janet/clients/* /home/nick/customers
④.复制/home/nick/clients目录包括其所有的文件和子目录到/home/nick/customers目录
administration@localhost~$ cp -R /home/nick/clients /home/nick/customers
⑤.复制 programs 目录下以 .c 结尾的文件到当前目录
administration@localhost~$ cp programs/*.c .
注意:当前目录表示为单个 . (点号),点号前有一个空格。
8.删除文件
命令名称:rm
命令格式:rm [选项] [文件或目录名称]
功能说明:删除文件或目录(整个目录,包括目录下的子目录和文件)。
常用选项:
-i,删除之前先询问用户是否确定。
-r,将目录及其文件全部删除。
-f,强制删除文件或目录。
范例:
①.删除/var/log/httpd/access.log这个文件
administration@localhost~$ rm /var/log/httpd/access.log
②.强制删除/var/log/httpd/access目录以及其下所有文件、文件夹。
administration@localhost~$ rm -rf/var/log/httpd/access
9.文件重命名
命令名称:rename
命令格式:rename 旧文件名 新文件名
10.编辑文本文件
编辑文本文件通常使用的命令是vi。
命令名称:vi
命令格式:vi 文件名
命令功能:
①.vi工作模式
vi有三种状态,分别是命令模式(Commandmode)、插入模式(Insertmode)和底行模式(Lastline mode),各模式的功能区分如下:
l 命令行模式:控制屏幕光标的移动,字符、字或行的删除,移动复制某区段。
l 插入模式:只有在插入模式下,才可以做文字输入,按「ESC」键可回到命令行模式。
l 底行模式:将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等。
不过一般我们在使用时把vi简化成两个模式,就是将底行模式也算入命令行模式。
②.vi的基本操作
a) 进入vi
在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑界面。如果编辑一个叫做myfile的文件,使用下列命令:
$ vi myfile
进入vi之后,是处于命令行模式,需要切换到插入模式才能够输入文字。
b) 切换至插入模式编辑文件
在“命令行模式”下按一下字母“i”就可以进入“插入模式”,这时候就可以开始输入文字了。
c)插入模式的切换
在“插入模式”就只能一直输入文字,如果发现输错了字,想用光标键往回移动,将该字删除,就要先按一下“ESC”键转到“命令行模式”再删除文字。
常用的删除命令:
d) 退出vi及保存文件
在“命令行模式”下,按一下“:”再输入命令,冒号键进入“底行模式”,常用命令如下:
: w filename ,将文章以指定的文件名filename保存。
: wq,存盘并退出vi。
: q! ,不存盘强制退出vi。
11.设置命令搜索路径
$PATH是一个环境变量,代表执行命令时,Shell 的搜索路径。
执行一个命令时,Shell 会到 $PATH 变量定义的路径去搜索,并运行与命令同名的可执行文件。如果程序、脚本等可执行文件并不在上面的路径中,就必须使用绝对路径或者相对路径定位可执行文件。
使用 echo $PATH可以显示 $PATH 变量,输出如下:
/usr/local/sbin: /usr/local/bin : /usr/sbin : /usr/bin: /sbin :/bin:/usr/bin/X11: /usr/games :/usr/X11R6/bin
可以修改 /etc/environment 文件来设定命令搜索路径。
谢谢赞赏
(微信扫一扫或长按识别)