这是一个熟悉Linux的心路历程><

嗯。。目的是快速熟悉Linux操作系统= =

一.首先了解Linux文件系统

1.根目录: 所有目录、文件、设备都在/之下,就是Linux文件系统的组织者,也是最上级的领导者。

2./bin:binary,在一般的系统中,你都可以在这个目录下找到linux常用的命令。系统所需要的那些命令都位于此目录下,比如ls、cp、mkdir等命令;功能和/usr/bin类似,这个目录中的文件都是可执行的、普通用户都可以使用命令。作为基础系统所需要的最基础的命令就是放在这里。

3./bootlinux内核及引导系统程序所需要的文件目录,比如vmlinuzinitrd.img文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录。

4./cdrom:这个目录在你刚刚安装系统的时候是空的。你可以将光驱文件系统挂在这个目录下。例如:mount /dev/cdrom /cdrom   

5./dev:dev 是设备(device)的英文缩写。这个目录对所有的用户都十分重要。因为在这个目录中包含了所有linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序。这一点和我们常用的windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口。我们可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。   
6./etc:etc这个目录是linux系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。我们要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下。

7./home:如果我们建立一个用户,用户名是"xx",那么在/home目录下就有一个对应的/home/xx路径,用来存放用户的主目录。   
8./lib:lib是库(library)英文缩写。这个目录是用来存放系统动态连接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。因此,千万不要轻易对这个目录进行什么操作,一旦发生问题,你的系统就不能工作了。   
8./lost+found   在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。

9./mnt:这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom 等目录。可以参看/etc/fstab的定义。有时我们可以把让系统开机自动挂载文件系统,把挂载点放在这里也是可以的。主要看/etc/fstab中怎么定义了;比如光驱可以挂载到/mnt/cdrom。  
10./media:有些linux的发行版使用这个目录来挂载那些usb接口的移动硬盘(包括U盘)、CD/DVD驱动器等等。   
11./opt:这里主要存放那些可选的程序。你想尝试最新的firefox测试版吗?那就装到/opt目录下吧,这样,当你尝试完,想删掉firefox的时候,你就可 以直接删除它,而不影响系统其他任何设置。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面。   
12./proc:可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的。操作系统运行时,进程信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里。/proc目录伪装的文件系统proc的挂载目录,proc并不是真正的文件系统,它的定义可以参见 /etc/fstab

13./root   Linux超级权限用户root的家目录。   
14./sbin   这个目录是用来存放系统管理员的系统管理程序。大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin; /usr/X11R6/sbin或/usr/local/sbin目录是相似的;我们记住就行了,凡是目录sbin中包含的都是root权限才能执行的。   

15./selinux 好像是对SElinux的一些配置文件目录,SElinux可以让你的linux更加安全。   
16./srv 服务启动后,所需访问的数据目录,举个例子来说,www服务启动读取的网页数据就可以放在/srv/www中   
17./sys    Linux 内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与 proc 有些类似,但除了与 proc 相同的具有查看和设定内核参数功能之外,还有为 Linux 统一设备模型作为管理之用。 

18./tmp   临时文件目录,用来存放不同程序执行时产生的临时文件。有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文件的。/var/tmp目录和这个目录相似。  
19./usr   这是linux系统中占用硬盘空间最大的目录。用户的很多应用程序和文件都存放在这个目录下。在这个目录下,你可以找到那些不适合放在/bin或/etc目录下的额外的工具。比如像游戏啊,一些打印工具拉等等。/usr目录包含了许多子目录:/usr/bin目录用于存放程序;/usr/share用于存放一些共享的数据,比如音乐文件或者图标等等;/20.usr/lib目录用于存放那些不能直接 运行的,但却是许多程序运行所必需的一些函数库文件。你的软件包管理器(应该是“新立得”吧)会自动帮你管理好/usr目录的。   
21./usr/local   这里主要存放那些手动安装的软件,即不是通过“新立得”或apt-get安装的软件。它和/usr目录具有相类似的目录结构。让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面,我想这应该是个不错的主意。   
22./usr/share    系统共用的东西存放地,比如 /usr/share/fonts 是字体目录,/usr/share/doc和/usr/share/man帮助文件。   
23./var   这个目录的内容是经常变动的,看名字就知道,我们可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。/var/ www目录是定义Apache服务器站点存放目录;/var/lib 用来存放一些库文件,比如MySQL的,以及MySQL数据库的的存放地。


二.一些非常Basic的命令

注:下面仅简要介绍一些代表性的命令,关于某一命令更具体的信息可以   man 命令

1.ls:【list】    ls [option] [file]

ls        #显示所有文件-及文件夹d,默认当前目录;
ls -l     #显示所有文件及文件夹,包括详细信息,默认当前目录;
ls -al    #显示所有文件及文件夹,包括隐藏的,包括详细信息,默认当前目录;
ls -l /tmp   #/tmp目录下

2.chgrp chown chmod:其中mod指九个属性 rwxrwxrwx,rwx分别对应数字421

chown bin /tmp/testing    #将文件testing的owner改为bin

3.关于目录的:cd   mkdir rmdir pwd(显示当前目录,Print Working Directory )

[root@linux mail]# <strong>pwd</strong>
/var/mail
[root@linux mail]# <strong>pwd -P</strong>
/var/spool/mail   <== 怎么回事?有没有加 -P 差很多~
[root@linux mail]# ls -l /var/mail
lrwxrwxrwx  1 root root 10 Jun 25 08:25 /var/mail -> spool/mail
# 看到这里应该知道为啥了吧?因为 /var/mail 是连结档,连结到 /var/spool/mail 
# 所以,加上 pwd -P 的参数后,会不以连结文件的数据显示,而是显示正确的完整路径啊!
</pre><pre name="code" class="plain">[root@linux ~]# mkdir [-mp] 目录名称
参数:
<strong>-m </strong>:配置文件案的权限喔!直接设定,不需要看预设权限 (umask) 的脸色~
<strong>-p </strong>:帮助你直接将所需要的目录递归建立起来!
[root@linux tmp]# mkdir test1/test2/test3/test4
mkdir: cannot create directory `test1/test2/test3/test4': 
No such file or directory  <== 没办法直接建立此目录啊!
[root@linux tmp]# mkdir -p test1/test2/test3/test4
# 加了这个 -p 的参数,可以自行帮您建立多层目录!
[root@linux tmp]# <strong>mkdir -m 711 test2</strong>
4.复制、移动与删除: cp, rm, mv

[root@linux ~]# <strong>cp [-adfilprsu] 来源档(source) 目的檔(destination)</strong>
[root@linux ~]# cp [options] source1 source2 source3 .... directory
参数:
-a  :相当于 -pdr 的意思;
-d  :若来源文件为链接文件的属性(link file),则复制链接文件属性而非档案本身;
-f  :为强制 (force) 的意思,若有重复或其他疑问时,不会询问使用者,而强制复制;
-i  :若目的檔(destination)已经存在时,在覆盖时会先询问是否真的动作!
-l  :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;
-p  :连同档案的属性一起复制过去,而非使用默认属性;
-r  :递归持续复制,用于目录的复制行为;
-s  :复制成为符号链接文件 (symbolic link),亦即『快捷方式』档案;
-u  :若 destination 比 source 旧才更新 destination !
最后需要注意的,如果来源档有两个以上,则最后一个目的文件一定要是『目录』才行!



三.Linux档案种类与附档名

任何装置在 Linux 底下都是档案, 不仅如此,连数据沟通的接口也有专属的档案在负责~所以,您会了解到, Linux 的档案种类真的很多~ 除了前面提到的那个 -, d 亦即所谓的一般档案与目录档案之外,还有哪些种类的档案呢?

A.正规档案 (regular file ): 就是一般我们在进行存取的类型的档案,在由 ls –al 所显示出来的属性方面,第一个属性为 [ - ],例如 [-rwxrwxrwx ]。另外,依照档案的内容,又大略可以分为:
a.纯文本档(ASCII):这是 Unix 系统中最多的一种文件类型啰,称为纯文本档是因为内容为我们人类可以直接读到的资料, 例如数字、字母等等。几乎只要我们可以用来做为设定的档案都属于这一种文件类型。 举例来说,您可以下达『 cat ~/.bashrc 』就可以看到该档案的内容。 (cat 是将一个档案内容读出来的指令)
b.二进制文件(binary):还记得我们在『 Linux 是什么 』那一章里面的 GNU 发展史中提过, 我们的系统其实仅认识且可以执行二进制文件 (binary file) 吧?没错~ 您的 Linux 当中的可执行文件 (scripts, 文字型批处理文件不算) 就是这种格式的啦~ 举例来说,刚刚下达的指令 cat 就是一个 binary file 。
c.数据格式文件(data): 有些程序在运作的过程当中会读取某些特定格式的档案,那些特定格式的档案可以被称为数据文件 (data file)。举例来说,我们的 Linux 在使用者登入时,都会将登录的数据记录在 /var/log/wtmp 那个档案内,该档案是一个 data file ,他能够透过 last 这个指令读出来! 但是使用 cat 时,会读出乱码~因为他是属于一种特殊格式的档案。瞭乎?

B.目录 (directory):
就是目录啰~第一个属性为 [ d ],例如 [drwxrwxrwx]。

C.连结档 (link):就是类似 Windows 底下的快捷方式啦!第一个属性为 [ l ], 例如 [lrwxrwxrwx] ;

D.设备与装置文件 (device):与系统周边及储存等相关的一些档案, 通常都集中在 /dev 这个目录之下!通常又分为两种:

a.区块 (block) 设备档 :就是一些储存数据, 以提供系统存取的接口设备,简单的说就是硬盘啦!例如你的一号硬盘的代码是 /dev/hda1 等等的档案啦!第一个属性为 [ b ];

b.字符 (character) 设备档 :亦即是一些串行端口的接口设备, 例如键盘、鼠标等等!第一个属性为 [ c ]。

G.资料接口文件 (sockets):既然被称为资料接口文件, 想当然尔,这种类型的档案通常被用在网络上的数据承接了。我们可以启动一个程序来监听客户端的要求, 而客户端就可以透过这个 socket 来进行数据的沟通了。第一个属性为 [ s ], 最常在 /var/run 这个目录中看到这种文件类型了。
H.数据输送文件 (FIFO, pipe): FIFO 也是一种特殊的文件类型,他主要的目的在解决多个程序同时存取一个档案所造成的错误问题。 FIFO 是 first-in-first-out 的缩写。第一个属性为 [p] 。

而关于linux档案附档名,Linux 的档案是没有所谓的『附档名』的,因为由前面的说明我们可以知道, 一个 Linux 档案能不能被执行,与他的第一栏的十个属性有关, 与档名根本一点关系也没有。这个观念跟 Windows 的情况不相同喔!在 Windows 底下,能被执行的档案附档名通常是 .com .exe .bat 等等,而在 Linux 底下, 只要你的属性当中有 x 的话,例如 [ -rwx-r-xr-x ] 即代表这个档案可以被执行喔!不过,可以被执行跟可以执行成功是不一样的~举例来说,在 root 家目录下的 install.log 是一个纯文本档,如果经由修改权限成为 -rwxrwxrwx 后,这个档案能够被执行吗? 当然不行~因为他的内容根本就没有可以执行的数据。所以说,这个 x 代表这个档案具有可执行的能力, 但是能不能执行成功,当然就得要看该档案的内容啰~

虽然附档名没有什么真的帮助,不过,由于我们仍然希望可以藉由附档名来了解该档案是什么东西?!所以, 通常我们还是会以适当的附档名来表示该档案是什么种类的。底下有数种常用的附档名:

  • *.sh : 批处理文件 ( scripts ),因为批处理文件为使用 shell 写成的,所以附档名就编成 .sh 啰;

  • *Z, *.tar, *.tar.gz, *.zip, *.tgz: 经过打包的压缩文件。这是因为压缩软件分别为 gunzip, tar 等等的,由于不同的压缩软件,而取其相关的附档名啰!

  • *.html, *.php:网页相关档案,分别代表 HTML 语法与 PHP 语法的网页档案啰! .html 的档案可使用网页浏览器来直接开启,至于 .php 的档案, 则可以透过 client 端的浏览器来 server 端浏览,以得到运算后的网页结果呢!
嗯。。如果我们想要查询一个档案呢?怎么办~在 Linux 底下也有相当优异的搜寻系统呦!通常 find 不很常用的!因为速度慢之外,也很操硬盘!通常我们都是 先使用 whereis 或者是 locate 来检查,如果真的找不到了,才以 find 来搜寻呦!为什么呢?因为 whereis 与 locate 是 利用数据库来搜寻数据(这是因为 Linux 系统会将系统内的所有档案都记录在一个数据库档案里面),所以相当的快速,而且并没有实际的搜寻硬盘,比较省时间啦!
下面简单介绍一下几个相关的命令~
A. which (寻找『执行档』)
这个指令是 根据『PATH』这个环境变量 所规范的路径,去搜寻『执行档』的档名~ 所以,重点是找出『执行档』而已!且 which 后面接的是『完整档名』喔!若加上 -a 参数,则可以列出所有的可以找到的同名执行文件,而非仅显示第一个而已!
B. whereis (寻找特定档案)
[root@linux ~]# whereis [-bmsu] 档案或目录名
参数:
-b    :只找 binary 的档案
-m    :只找在说明文件 manual 路径下的档案
-s    :只找 source 来源档案
-u    :没有说明档的档案!

C.locate(查找档案的部分名称)
举上面的例子来说,我输入 locate passwd ,那么在完整文件名 (包含路径名称) 当中,只要有 passwd 在其中, 就会被显示出来的!这也是个很方便好用的指令,如果您忘记某个档案的完整档名时~~
但是,显而易见,根据数据库搜寻存在限制,那就是------数据库的建立默认是在每天执行一次 (每个 distribution 都不同, FC4 是每天更新数据库一次!),所以当您 新建立起来的档案, 却还在数据库更新之前搜寻该档案,那么 locate 会告诉您『找不到!』呵呵!因为必须要更新数据库呀!
D.find


四.关于执行文件路径的变量: $PATH
[root@0fshkm0tf5 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
不加路径(相对/绝对路径)的命令,必须在环境变量的路径下;否则需要加上路径,例如我们将ls移动到 /root 底下的话 (mv /bin/ls /root) ,
[root@linux ~]# /root/ls
[root@linux ~]# ./ls







  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值