一、Linux文件系统
在Linux中,所有的设备都是文件。文件的类型是根据文件头字段来判断,而非文件的后缀名。
用户配置文件:~/.bashrc ~/.bash_profile ~/.bash_logout
全局配置文件:/etc/profile /etc/bashrc
二、Linux文件系统目录结构
linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录。深刻理解linux文件目录是非常重要的。
linux下的根目录中重要的目录如下是系统自动分配的:root目录、home目录、bin目录、sbin目录、mnt目录、etc目录、var目录、boot目录、usr目录、tmp目录(均为同级目录)。
/:系统根目录。
root目录:用于存放root用户相关文件的目录
home目录:用于存放普通用户的相关文件的目录
bin目录:用于存放常用命令的目录
sbin目录:用于存放要具有一定权限才可以使用的命令的目录
mnt目录:用于默认挂载软驱、光驱的目录
etc目录:用于存放配置相关的文件的目录
var目录:用于存放经常变化的文件的目录
boot目录:用于存放系统引导文件的目录(重要)
usr目录:用于存放安装的默认目录(安装文件会默认安装在usr目录里)
/usr/doc /usr/share/doc:帮助文档
/usr/share:共享文件和数据
/usr/bin:几乎所有的命令程序
/usr/sbin:系统管理的命令
/usr/include:C语言头文件
/usr/lib:库文件和数据文件
/usr/local:本地安装的软件
/usr/src:Linux源代码
tmp目录:用于存入临时文件的目录
cd /返回到主目录下。ls与dir功能相同,列出当前目录下的所有文件名。pwd命令显示当前在哪个路径下面。
当前目录:pwd命令可以显示当前目录。
相对路径:以当前目录开始寻找目标文件或文件夹 . .. ~。
绝对路径:以根目录开始寻找目录文件或文件夹 /目录。
工作目录:就是执行文件所在的目录。
三、挂载文件系统
挂载是指将一个硬件设备(例如硬盘、U盘、光盘等)对应到一个已存在的目录上。若要访问设备中的文件,必须将文件挂载到一个已存在的目录上,然后通过访问这个目录来访问存储设备。
注意:挂载目录可以不为空,但挂载后这个目录下以前的内容将不可用。
可以通过mount命令来挂载文件系统,语法为:
mount -t file_system_type device_to_mount directory_to_mount_to
例如:$ mount -t iso9660/dev/cdrom /mnt/cdrom
将 CD-ROM 挂载到 /mnt/cdrom 目录。
注意:file_system_type用来指定文件系统类型,通常可以不指定,Linux会自动正确选择文件系统类型。
可以通过umount命令来卸载文件系统。例如,卸载cdrom:$ umount /dev/cdrom
不过,大部分现代的Linux系统都有自动挂载卸载功能,unmount 命令较少用到。
四、文件操作常用命令
1、toucha.txt
如果a.txt不存在,生成一个新的空文档a.txt。如果a.txt存在,那么只更改该文档的时间信息。
2、ls
是list的简写,列出当前目录下的所有文件名ls -l a.txt列出文件的详细信息,ls –a会显示当前目录下所有文件(包括隐藏文件)。
3、cp a.txt b.txt
cp是copy的简写,用来复制文件。在工作目录下,将a.txt复制到文件b.txtcp a.txt ..:将a.txt复制到父目录的a.txt。
4、mva.txt c.txt
mv是move的简写,用来移动文件。将a.txt移动成为c.txt (相当于重命名rename)。mv c.txt /home/vamei:将c.txt移动到/home/vamei目录。
5、rma.txt
rm是remove的缩写,用于删除文件。删除a.txt。rm -r /home/vamei :删除从/home/vamei向下的整个子文件系统。-r表示recursive,是指重复删除的操作,/home/vamei文件夹为空,然后删除/home/vamei文件夹本身。($rm -rf /:它会删除整个文件树。f的目的是告诉rm放心干,不用再确认了…… 一般情况下,应该没有人会用这个命令。)
6、mkdir /home/vamei/good:创建一个新的目录。
7、rmdir /home/vamei/good:删除一个空的目录。
8、pwd:显示当前工作目录。
9、cd[dirName]
改变目录至dirName。其中dirName可为绝对路径或相对路径。若目录命令省略,则变换至使用者登录时所在的目录(Home directory)。另外,“~”也表示为Home目录的意思,“.”则是表示当前所在的目录,“..”则表示当前目录位置的上一层目录。
10、ln
命令ln:建立符号连接,ln –s 源目标。ln -s /etc/inittab inittab [inittab指向实际文件/etc/inittab]。
五、Linux文件名通配符表达式
(wild card, 也叫filename pattern matching)之前所讲的命令,比如ls, mv, cp都可以接收多个参数,比如:
ls -l a.txt b.txt c.txt:就可以列出这三个文件的所有信息。有时候,我们想列出工作目录下所有的以.txt结尾的文件的信息,可以用下面的方式:ls -l *.txt。
*.txt的写法就运用了Linux通配表达式。它与正则表达式相类似,但语法有所不同。
Filename Pattern Matching |
对应含义 |
* |
任意多个任意字符 |
? |
任意一个字符 |
[kl] |
字符k或者字符l |
[0-4] |
数字0到4字符中的一个 |
[b-e] |
b到e字符中的一个 |
[^mnp] |
一个字符,这个字符不是m,n,p |
Linux会找到符合表达式的文件名,然后用这些文件名作为参数传递给命令。注意,当使用rm的时候,要格外小心。下面两个命令,只相差一个空格,但效果大为不同:
rm * .txt rm *.txt:前一个命令会删除当前目录下所有文件!
六、Linux文件权限
1、chmod 755a.txt:(必须是文件a.txt的拥有者才能运行此命令。或者以$sudo chmod 755 a.txt的方式,以超级用户的身份运行该命令。)
change mode改变a.txt的读、写以及执行权限。每个文件都有九位的读写执行权限,分为三组,分别对应拥有者(owner),拥有组(owner group)中的用户和所有其他用户(other)。在这里,我们也有三个数字,755,对应三个组。7被分配给拥有者,5被分配给拥有组,最后一个5分配给其它用户。Linux规定:4为有读取的权利(r),2为有写入的权利(w),1为有执行的权利(x)。我们看到的7实际上是4 + 2 + 1,表示拥有者有读、写、执行三项权利。
这时,运行$ls -l a.txt, 应该看到九位的权限变成了rwxr-xr-x。根据自己的需要,你可以用比如444, 744代替755,来让文件有不同的权限。
- rw- r-- r--
-为文件类型,-为普通文件,d为文件夹, l为链接
rw-文件的所有者对该文件的权限。r--文件所在组对该文件的权限。r--其它组的用户对该文件的权限。
注:修改文件访问权限只有root用户和文件所有者。查看当前操作人员命令who am i。
chmod 777 用户名
解释:- --- --- --- 000 - r-- r-- r— 444 - rw- rw- rw- 666
- rwx rwx rwx 777 - rwx rw- r-- 764
2、sudo chownroot a.txt
changeowner改变文件的拥有者为root用户。这个命令需要有超级用户权限才能执行,所以我们在命令之前加上sudo。
3、sudo chgrp root a.txt
change group 改变文件的拥有组为root组。