认识Linux的文件系统
【子任务一】:熟悉Linux系统中的目录结构:
文件结构是文件存放在磁盘等存储设备上的的组织方法,主要体现在对文件和目录的组织上。目录提供了管理文件的一个方便而有效的途径。
第一步:理解Linux系统的目录结构树
Linux使用标准的目录结构,在安装的时候,安装程序已经为用户创建了文件系统和完整而固定的目录组成形式,并指定每个目录的作用和其中的文件类型。
Linux系统的目录结构采用的是树结构。最上层是根目录,其他的所有目录都是由根目录而生成的。微软的DOS和Windows系统也是采用树结构,但是在DOS和Windows中,这样的树形结构的根是磁盘分区的盘符,有几个分区就有几个树形结构,他们之间的关系是并列的,各个磁盘分区上的树形目录是不一定并列的。
第二步:对比理解Linux系统的文档结构
比如有一块硬盘分成了4个分区,分别为/、/boot、/usr和Windows下的FAT,对于/和/boot或者/和/usr,他们是从属关系,而/boot和/usr它们是并列关系。
如果把Windows下的FAT分区挂载到/mnt/winc下,那么对于/mnt/winc和/usr或/mnt/winc和/boot来说,它们是从属于目录树上没有任何关系的两个分支。
因为Linux是一个多用户系统,所以要制定一个固定的目录规划,这样有助于对系统文件和不同的用户文件进行统一管理。
第三步:列出Linux下一些常用目录的功能
/,根目录;
/bin,存放必要的命令;
/boot,存放内核以及启动所需文件。
/dev,存放设备文件。
/etc,存放系统配置文件;
/home,普通用户的宿主目录,用户数据存放在其主目录中;
/lib,存放必要的运行库;
/mnt,存放临时的映像文件系统,通常用来挂载;
/proc,存放存储进程和系统信息;
/root,超级用户的主目录;
/sbin,存放系统管理程序;
/tmp,存放临时文件;
/usr,存放应用程序、命令程序文件、程序库、手册和其他文档;
/var,在正常操作中被改变的文件。
【子任务二】 了解Linux系统中的路径规则
在Linux系统中什么是一个文件的路径,路径就是一个文件存在的地方。在Linux系统中,存在着绝对路径和相对路径:
第一步:理解绝对路径
绝对路径:路径的写法一定由根目录“/”写起,列如:/usr/local/mysql就是绝对路径。
第二步:理解相对路径
相对路径:路径的写法不是由根目录“/”写起,例如:用户首先进入到/,然后再进入到home,命令为【cd /home】然后使用【cd test】命令,此时用户所在的路径为/home/test。第一个cd命令后跟/home,第二个cd命令后跟test,并没有斜杠,这个test是相对于/home目录而言的,所以叫做相对路径。
【子任务三】 掌握Linux系统中的基本命令
使用Linux命令执行任务是一个最基本的要求。下面这些命令是每一个Linux系统管理员都必须掌握的基本命令。
第一步:使用【pwd】命令打印出当前所在目录
在Linux中,只显示当前工作的目录,没有显示完整的路径,使用【pwd】打印出当前完整的工作路径。
第二步:使用【cd】命令进入文件目录
【cd】命令是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用【cd】命令基础之上的。
【cd /usr/local】进入到/usr/local目录。
【pwd】打印当前工作目录。
【cd ./】还是当前目录。
【cd ../】进入当前目录的上级目录。
路径【./】指的是当前目录,【../】指的是当前目录的上级目录。
第三步:使用【ls】命令显示 文件信息
【ls】命令是列表的命令,在【ls】命令后加上-1就是以长列表的形式显示出来,内容较【ls】命令具体。
【ls -1】或者【11】显示当前文件夹内文件详细信息。
【ls-a】显示当前文件夹内隐藏文件。
【ls~】显示用户宿主目录的文件信息。
第四步:使用【more】或【less】命令分屏显示文件与目录
【more】以一页一页十五形式显示文件;按Space键向后翻页;按b键向前翻页。
【less】命令作用与【more】命令相似,都可以用来浏览文字档案的内容,不同的是【less】命令允许使用者往回卷动的方式查看文件,浏览速度较vi文本编辑器快;【j】以行为单位向下;【k】以行为单位向上。
【ls /etc| more】让/etc中文件与目录分屏显示,只能向下查看。
【ls /etc| less】让/etc中文件与目录分屏显示,可以上下查看。
【ls /etc/squid/squid.conf】分屏显示squid.conf中的内容。
第五步: 使用【cat】命令查看文件内容
【cat】命令是Linux下的一个文本输出命令;【cat】命令主要有3大功能。
(1)一次显示整个文件:【cat filenname】.
(2)从键盘创建一个文件:【cat > filenname】,只能创建新文件,不能编辑已有文件。
(3)将几个文件合并为一个:【cat filel file2 > file】。
【cat /etc/passwd】查看文件passwd文件中的内容。
【cat /etc/passwd | less】查看文件passwd文件中的内容,可以上下移动,按q键退出。
【cat /etc/fstab】查看/etc/fstab文件的内容。
第六步: 使用【mkdir】命令创建目录
【mkdir yhy】在当前路径中创建yhy目录。
【mldir yhy1 yhy2 yhy3】在当前路径中同事创建yhy1、yhy2、yhy3共三个目录。
第七步: 使用【touch】命令创建文件
认识Linux的文件系统
【子任务一】:熟悉Linux系统中的目录结构:
文件结构是文件存放在磁盘等存储设备上的的组织方法,主要体现在对文件和目录的组织上。目录提供了管理文件的一个方便而有效的途径。
第一步:理解Linux系统的目录结构树
Linux使用标准的目录结构,在安装的时候,安装程序已经为用户创建了文件系统和完整而固定的目录组成形式,并指定每个目录的作用和其中的文件类型。
Linux系统的目录结构采用的是树结构。最上层是根目录,其他的所有目录都是由根目录而生成的。微软的DOS和Windows系统也是采用树结构,但是在DOS和Windows中,这样的树形结构的根是磁盘分区的盘符,有几个分区就有几个树形结构,他们之间的关系是并列的,各个磁盘分区上的树形目录是不一定并列的。
第二步:对比理解Linux系统的文档结构
比如有一块硬盘分成了4个分区,分别为/、/boot、/usr和Windows下的FAT,对于/和/boot或者/和/usr,他们是从属关系,而/boot和/usr它们是并列关系。
如果把Windows下的FAT分区挂载到/mnt/winc下,那么对于/mnt/winc和/usr或/mnt/winc和/boot来说,它们是从属于目录树上没有任何关系的两个分支。
因为Linux是一个多用户系统,所以要制定一个固定的目录规划,这样有助于对系统文件和不同的用户文件进行统一管理。
第三步:列出Linux下一些常用目录的功能
/,根目录;
/bin,存放必要的命令;
/boot,存放内核以及启动所需文件。
/dev,存放设备文件。
/etc,存放系统配置文件;
/home,普通用户的宿主目录,用户数据存放在其主目录中;
/lib,存放必要的运行库;
/mnt,存放临时的映像文件系统,通常用来挂载;
/proc,存放存储进程和系统信息;
/root,超级用户的主目录;
/sbin,存放系统管理程序;
/tmp,存放临时文件;
/usr,存放应用程序、命令程序文件、程序库、手册和其他文档;
/var,在正常操作中被改变的文件。
【子任务二】 了解Linux系统中的路径规则
在Linux系统中什么是一个文件的路径,路径就是一个文件存在的地方。在Linux系统中,存在着绝对路径和相对路径:
第一步:理解绝对路径
绝对路径:路径的写法一定由根目录“/”写起,列如:/usr/local/mysql就是绝对路径。
第二步:理解相对路径
相对路径:路径的写法不是由根目录“/”写起,例如:用户首先进入到/,然后再进入到home,命令为【cd /home】然后使用【cd test】命令,此时用户所在的路径为/home/test。第一个cd命令后跟/home,第二个cd命令后跟test,并没有斜杠,这个test是相对于/home目录而言的,所以叫做相对路径。
【子任务三】 掌握Linux系统中的基本命令
使用Linux命令执行任务是一个最基本的要求。下面这些命令是每一个Linux系统管理员都必须掌握的基本命令。
第一步:使用【pwd】命令打印出当前所在目录
在Linux中,只显示当前工作的目录,没有显示完整的路径,使用【pwd】打印出当前完整的工作路径。
第二步:使用【cd】命令进入文件目录
【cd】命令是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用【cd】命令基础之上的。
【cd /usr/local】进入到/usr/local目录。
【pwd】打印当前工作目录。
【cd ./】还是当前目录。
【cd ../】进入当前目录的上级目录。
路径【./】指的是当前目录,【../】指的是当前目录的上级目录。
第三步:使用【ls】命令显示 文件信息
【ls】命令是列表的命令,在【ls】命令后加上-1就是以长列表的形式显示出来,内容较【ls】命令具体。
【ls -1】或者【11】显示当前文件夹内文件详细信息。
【ls-a】显示当前文件夹内隐藏文件。
【ls~】显示用户宿主目录的文件信息。
第四步:使用【more】或【less】命令分屏显示文件与目录
【more】以一页一页十五形式显示文件;按Space键向后翻页;按b键向前翻页。
【less】命令作用与【more】命令相似,都可以用来浏览文字档案的内容,不同的是【less】命令允许使用者往回卷动的方式查看文件,浏览速度较vi文本编辑器快;【j】以行为单位向下;【k】以行为单位向上。
【ls /etc| more】让/etc中文件与目录分屏显示,只能向下查看。
【ls /etc| less】让/etc中文件与目录分屏显示,可以上下查看。
【ls /etc/squid/squid.conf】分屏显示squid.conf中的内容。
第五步: 使用【cat】命令查看文件内容
【cat】命令是Linux下的一个文本输出命令;【cat】命令主要有3大功能。
(1)一次显示整个文件:【cat filenname】.
(2)从键盘创建一个文件:【cat > filenname】,只能创建新文件,不能编辑已有文件。
(3)将几个文件合并为一个:【cat filel file2 > file】。
【cat /etc/passwd】查看文件passwd文件中的内容。
【cat /etc/passwd | less】查看文件passwd文件中的内容,可以上下移动,按q键退出。
【cat /etc/fstab】查看/etc/fstab文件的内容。
第六步: 使用【mkdir】命令创建目录
【mkdir yhy】在当前路径中创建yhy目录。
【mldir yhy1 yhy2 yhy3】在当前路径中同事创建yhy1、yhy2、yhy3共三个目录。
第七步: 使用【touch】命令创建文件
【touch】命令用于创建新的空气文件或者修改已有文件的时间戳,
【touch fileA】如果file存在,使用【touch】指令可以更改这个文件或目录的日期时间,包括存取时间和更改时间;如果fileA不存在,【touch】指令会在当前目录下新建个空白文件fileA。
【touch file1 file2】在当前目录创建文件file1 file2两个文件。
【touch /home/file1 file2】在/home目录下创建文件file1 file2两个文件。
【touch -t 201601142234.50 log.log】设定文件的时间戳为201601142234.50。
【mkdir dir1 dir2】在当前目录下创建子目录dir1和dir2,两个文件夹。
【touch】命令后跟的是文件,【mkdir】命令后跟的是目录。
第八步:使用【rmkdir】命令删除目录
【rmdir /tmp/test/yhy】删除目录。
【ls /tmp/test】查看test目录下的文件及目录。
【mkdir -p d1/d2/d3】一次建立d1/d2/d3文件夹。
【rmkdir -p d1/d2/d3】一次删除d3/d2/d1文件夹。
第九步:使用【rm】命令删除文件或者目录:
rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。
1命令格式:
rm [选项] 文件…
2命令功能:
删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
3命令参数:
-f, --force 忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除
-r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose 详细显示进行的步骤
--help 显示此帮助信息并退出
--version 输出版本信息并退出
第十步:使用【cp】命令复制文件:
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。
如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点.或点点..的形式。例如,下面的命令将指定文件复制到当前目录下:
cp ../mary/homework/assign .
第十一步:使用【mv】命令移动或者重命名文件或者目录:
在linux系统中,mv命令可以用于对文件,目录的重命名以及移动操作,系统将会根据其参数的类型,自动判断是移动还是重命名操作。注意:文件的移动非常快,这是因为文件的实际内容并没有移动,而是将文件表中的某个指针改变,因此,文件的大小并不影响mv命令的执行速度。
格式:mv [选项] [源文件或目录] [目标文件或目标目录]
-i 或--interactive 交互方式操作。如果操作中导致对已经存在的目标文件的覆盖,此时系统会问是否重写。(y/n)
-f 或 --force 禁止交互操作,即覆盖时不给任何提示。此时i不起作用。
例:
1、把当前目录下的abc 移动到/home目录下面,并重命名为cdy
mv -i abc /home/cdy
可以用ll查看一下: ll /home/cdy
注意:由于把文件移动到/home目录下,因此必须对该目录具有写权限。
2、把一个目录移动到另位一个地方。
mv test cdy/ #把test目录移动到cdy目录中了,如果没有cdy则改名了。
3、文件或目录重命名
mv dir1 dir2 #目录重命名
mv file1 file2 #文件重名合
第十二步:重启与关机:
在Linux系统下一些常用的关机/重启命令有【shutdown】、【halt】、【reboot】、【init】都可以达到重启系统的目的:
(1)重启命令:
【reboot】重启系统;
【shutdown -r now】立刻重启(root用户使用);
【shutdown -r 10】10分钟后自动重启(root用户使用);
【shutdown -r 20:35】在时间20:35时重启(root用户使用);
(2)关机命令:
【halt】立刻关机;
【poweroff】立刻关机;
【shutdown -h now】立刻关机(root用户使用);
【shutdown -h 10】10分钟后自动关机;
如果通过【shutdown】命令设置关机或重启,可以用【shutdown -c】取消重启或关机。
【子任务四】:挂载外部文件到Linux系统中:
一.Linux挂载U盘:
1、插入u盘到计算机,如果目前只插入了一个u盘而且你的硬盘不是scsi的硬盘接口的话,那它的硬件名称为:sda1。
2、在mnt目录下先建立一个usb的目录(如:[root@localhost root]# mkdir /mnt/usb)
3、挂载U盘:mount -t vfat /dev/sda1 /mnt/usb
4、卸载U盘:umount /mnt/usb
5、删除usb目录:rm -rf /mnt/usb
二.Linux挂载硬盘:
1.加挂FAT32文件系统
最简单的用法
mount /dev/hda6 /mnt/wine
/dev/hda6是Windows的E盘,/mnt/wine是目录加挂点。Linux会识别到/dev/hda6分区的文件系统类型是什么,然后加挂的。当然也可以指定分区的文件系统类型,命令如下:
mount -t vfat /dev/hda6 /mnt/wine
在实际中操作中,直接加挂一个windows的分区,中文的文件名和目录名会出现乱码,为了避免这种情况可以指定字符集,命令如下:
mount /dev/hda6 /mnt/d -o codepage=936,iocharset=cp936
mount -t vfat /dev/hda6 /mnt/d -o codepage=936,iocharset=cp936
mount -t vfat -o iocharset=cp936,codepage=936 /dev/hda6 /mnt/wine(作者常用)
卸载所挂的硬盘 umount /mnt/wine
删除所挂的硬盘 rm -rf /mnt/wine
2.加挂NTFS文件系统
在目前多数的Linux版本上,需要重编译Linux核心才能,加挂NTFS分区(编译方法请参阅其它文章)。核心支持NTFS后,可以用以下命令加挂载:
mount -t ntfs /dev/hda2 /mnt/c
同样对于中文的文件名和目录名会出现乱码的问题可以指定字符集,不过和加挂vfat分区不同,实际中用以下命令是可行的:
mount -t ntfs -o iocharset=cp936 /dev/hda2 /mnt/c -r
mount -t ntfs -o iocharset=cp936,rw /dev/hda2 /mnt/c
【子任务五】掌握Linux系统中自动挂载:
挂载与卸载
挂载方法:mount DECE MOUNT_POINT
mount:通过查看/etc/mtab(文章最后会对/etc/mtab有个解释)文件显示当前系统已挂载的所有设备
命令使用格式:mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要挂载的设备;
(1) 设备文件:例如/dev/sda5
(2) 卷标:-L 'LABEL', 例如 -L 'MYDATA
(3) UUID, -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'
(4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
dir:挂载点
事先存在;建议使用空目录;
进程正在使用中的设备无法被卸载;
常用命令选项:
-t vsftype:指定要挂载的设备上的文件系统类型;
-r: readonly,只读挂载;
-w: read and write, 读写挂载;
n: 不更新/etc/mtab;
-a:自动挂载所有支持自动挂载的设备;(定义在了/etc/fstab文件中,且挂载选项中有“自动挂载”功能)
-L 'LABEL': 以卷标指定挂载设备;
-U 'UUID': 以UUID指定要挂载的设备;
-B, --bind: 绑定目录到另一个目录上;
o options:(挂载文件系统的选项)
async:异步模式;
sync:同步模式;
atime/noatime:包含目录和文件;
diratime/nodiratime:目录的访问时间戳
auo/noauto:是否支持自动挂载
exec/noexec:是否支持将文件系统上应用程序运行为进程
dev/nodev:是否支持在此文件系统上使用设备文件;
suid/nosuid:是否支持在此文件系统上使用特殊权限
remount:重新挂载
ro:只读
rw:读写
user/nouser:是否允许普通用户挂载此设备
acl:启用此文件系统上的acl功能
命令演示如下:
[root@localhost /]# fdisk -l
...
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 4196351 1048576 5 Extended
/dev/sdb5 2101248 2306047 102400 83 Linux
/dev/sdb6 2308096 2512895 102400 83 Linux
/dev/sdb7 2514944 2719743 102400 83 Linux
/dev/sdb8 2721792 2926591 102400 83 Linux
...
[root@localhost /]# mount /dev/sdb8 /device
[root@localhost /]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/CentOS-root 18307072 4724136 13582936 26% /
devtmpfs 485368 0 485368 0% /dev
tmpfs 500664 84 500580 1% /dev/shm
tmpfs 500664 7160 493504 2% /run
tmpfs 500664 0 500664 0% /sys/fs/cgroup
/dev/sda1 508588 142620 365968 29% /boot
tmpfs 100136 20 100116 1% /run/user/42
tmpfs 100136 0 100136 0% /run/user/0
/dev/sdb8 98988 5280 93708 6% /device
[root@localhost /]# blkid /dev/sdb8
/dev/sdb8: UUID="a3c4bf06-3695-45e8-8a07-a063498f0578" TYPE="xfs"
[root@localhost /]# umount /device
[root@localhost /]# mount -t ext2 /dev/sdb8 /device
mount: 文件系统类型错误、选项错误、/dev/sdb8 上有坏超级块、
缺少代码页或助手程序,或其他错误
[root@localhost /]# cd /device/
[root@localhost device]# ll
总用量 0
[root@localhost device]# touch 11 22
[root@localhost device]# ll
总用量 0
-rw-r--r--. 1 root root 0 3月 17 10:14 11
-rw-r--r--. 1 root root 0 3月 1710:14 22
[root@localhost device]# ll
总用量 0
[root@localhost device]# ll -a
总用量 4
drwxr-xr-x. 2 root root 6 3月 17 09:27 .
dr-xr-xr-x. 21 root root 4096 3月 17 09:29 ..
[root@localhost device]# cd ..
[root@localhost /]# umount /device/
[root@localhost /]# cd /device/
[root@localhost device]# ll
总用量 0
-rw-r--r--. 1 root root 0 3月 17 10:14 11
-rw-r--r--. 1 root root 0 3月 17 10:14 22
这就是我对Linux系统文件的认识。
文件结构是文件存放在磁盘等存储设备上的的组织方法,主要体现在对文件和目录的组织上。目录提供了管理文件的一个方便而有效的途径。
第一步:理解Linux系统的目录结构树
Linux使用标准的目录结构,在安装的时候,安装程序已经为用户创建了文件系统和完整而固定的目录组成形式,并指定每个目录的作用和其中的文件类型。
Linux系统的目录结构采用的是树结构。最上层是根目录,其他的所有目录都是由根目录而生成的。微软的DOS和Windows系统也是采用树结构,但是在DOS和Windows中,这样的树形结构的根是磁盘分区的盘符,有几个分区就有几个树形结构,他们之间的关系是并列的,各个磁盘分区上的树形目录是不一定并列的。
第二步:对比理解Linux系统的文档结构
比如有一块硬盘分成了4个分区,分别为/、/boot、/usr和Windows下的FAT,对于/和/boot或者/和/usr,他们是从属关系,而/boot和/usr它们是并列关系。
如果把Windows下的FAT分区挂载到/mnt/winc下,那么对于/mnt/winc和/usr或/mnt/winc和/boot来说,它们是从属于目录树上没有任何关系的两个分支。
因为Linux是一个多用户系统,所以要制定一个固定的目录规划,这样有助于对系统文件和不同的用户文件进行统一管理。
第三步:列出Linux下一些常用目录的功能
/,根目录;
/bin,存放必要的命令;
/boot,存放内核以及启动所需文件。
/dev,存放设备文件。
/etc,存放系统配置文件;
/home,普通用户的宿主目录,用户数据存放在其主目录中;
/lib,存放必要的运行库;
/mnt,存放临时的映像文件系统,通常用来挂载;
/proc,存放存储进程和系统信息;
/root,超级用户的主目录;
/sbin,存放系统管理程序;
/tmp,存放临时文件;
/usr,存放应用程序、命令程序文件、程序库、手册和其他文档;
/var,在正常操作中被改变的文件。
【子任务二】 了解Linux系统中的路径规则
在Linux系统中什么是一个文件的路径,路径就是一个文件存在的地方。在Linux系统中,存在着绝对路径和相对路径:
第一步:理解绝对路径
绝对路径:路径的写法一定由根目录“/”写起,列如:/usr/local/mysql就是绝对路径。
第二步:理解相对路径
相对路径:路径的写法不是由根目录“/”写起,例如:用户首先进入到/,然后再进入到home,命令为【cd /home】然后使用【cd test】命令,此时用户所在的路径为/home/test。第一个cd命令后跟/home,第二个cd命令后跟test,并没有斜杠,这个test是相对于/home目录而言的,所以叫做相对路径。
【子任务三】 掌握Linux系统中的基本命令
使用Linux命令执行任务是一个最基本的要求。下面这些命令是每一个Linux系统管理员都必须掌握的基本命令。
第一步:使用【pwd】命令打印出当前所在目录
在Linux中,只显示当前工作的目录,没有显示完整的路径,使用【pwd】打印出当前完整的工作路径。
第二步:使用【cd】命令进入文件目录
【cd】命令是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用【cd】命令基础之上的。
【cd /usr/local】进入到/usr/local目录。
【pwd】打印当前工作目录。
【cd ./】还是当前目录。
【cd ../】进入当前目录的上级目录。
路径【./】指的是当前目录,【../】指的是当前目录的上级目录。
第三步:使用【ls】命令显示 文件信息
【ls】命令是列表的命令,在【ls】命令后加上-1就是以长列表的形式显示出来,内容较【ls】命令具体。
【ls -1】或者【11】显示当前文件夹内文件详细信息。
【ls-a】显示当前文件夹内隐藏文件。
【ls~】显示用户宿主目录的文件信息。
第四步:使用【more】或【less】命令分屏显示文件与目录
【more】以一页一页十五形式显示文件;按Space键向后翻页;按b键向前翻页。
【less】命令作用与【more】命令相似,都可以用来浏览文字档案的内容,不同的是【less】命令允许使用者往回卷动的方式查看文件,浏览速度较vi文本编辑器快;【j】以行为单位向下;【k】以行为单位向上。
【ls /etc| more】让/etc中文件与目录分屏显示,只能向下查看。
【ls /etc| less】让/etc中文件与目录分屏显示,可以上下查看。
【ls /etc/squid/squid.conf】分屏显示squid.conf中的内容。
第五步: 使用【cat】命令查看文件内容
【cat】命令是Linux下的一个文本输出命令;【cat】命令主要有3大功能。
(1)一次显示整个文件:【cat filenname】.
(2)从键盘创建一个文件:【cat > filenname】,只能创建新文件,不能编辑已有文件。
(3)将几个文件合并为一个:【cat filel file2 > file】。
【cat /etc/passwd】查看文件passwd文件中的内容。
【cat /etc/passwd | less】查看文件passwd文件中的内容,可以上下移动,按q键退出。
【cat /etc/fstab】查看/etc/fstab文件的内容。
第六步: 使用【mkdir】命令创建目录
【mkdir yhy】在当前路径中创建yhy目录。
【mldir yhy1 yhy2 yhy3】在当前路径中同事创建yhy1、yhy2、yhy3共三个目录。
第七步: 使用【touch】命令创建文件
认识Linux的文件系统
【子任务一】:熟悉Linux系统中的目录结构:
文件结构是文件存放在磁盘等存储设备上的的组织方法,主要体现在对文件和目录的组织上。目录提供了管理文件的一个方便而有效的途径。
第一步:理解Linux系统的目录结构树
Linux使用标准的目录结构,在安装的时候,安装程序已经为用户创建了文件系统和完整而固定的目录组成形式,并指定每个目录的作用和其中的文件类型。
Linux系统的目录结构采用的是树结构。最上层是根目录,其他的所有目录都是由根目录而生成的。微软的DOS和Windows系统也是采用树结构,但是在DOS和Windows中,这样的树形结构的根是磁盘分区的盘符,有几个分区就有几个树形结构,他们之间的关系是并列的,各个磁盘分区上的树形目录是不一定并列的。
第二步:对比理解Linux系统的文档结构
比如有一块硬盘分成了4个分区,分别为/、/boot、/usr和Windows下的FAT,对于/和/boot或者/和/usr,他们是从属关系,而/boot和/usr它们是并列关系。
如果把Windows下的FAT分区挂载到/mnt/winc下,那么对于/mnt/winc和/usr或/mnt/winc和/boot来说,它们是从属于目录树上没有任何关系的两个分支。
因为Linux是一个多用户系统,所以要制定一个固定的目录规划,这样有助于对系统文件和不同的用户文件进行统一管理。
第三步:列出Linux下一些常用目录的功能
/,根目录;
/bin,存放必要的命令;
/boot,存放内核以及启动所需文件。
/dev,存放设备文件。
/etc,存放系统配置文件;
/home,普通用户的宿主目录,用户数据存放在其主目录中;
/lib,存放必要的运行库;
/mnt,存放临时的映像文件系统,通常用来挂载;
/proc,存放存储进程和系统信息;
/root,超级用户的主目录;
/sbin,存放系统管理程序;
/tmp,存放临时文件;
/usr,存放应用程序、命令程序文件、程序库、手册和其他文档;
/var,在正常操作中被改变的文件。
【子任务二】 了解Linux系统中的路径规则
在Linux系统中什么是一个文件的路径,路径就是一个文件存在的地方。在Linux系统中,存在着绝对路径和相对路径:
第一步:理解绝对路径
绝对路径:路径的写法一定由根目录“/”写起,列如:/usr/local/mysql就是绝对路径。
第二步:理解相对路径
相对路径:路径的写法不是由根目录“/”写起,例如:用户首先进入到/,然后再进入到home,命令为【cd /home】然后使用【cd test】命令,此时用户所在的路径为/home/test。第一个cd命令后跟/home,第二个cd命令后跟test,并没有斜杠,这个test是相对于/home目录而言的,所以叫做相对路径。
【子任务三】 掌握Linux系统中的基本命令
使用Linux命令执行任务是一个最基本的要求。下面这些命令是每一个Linux系统管理员都必须掌握的基本命令。
第一步:使用【pwd】命令打印出当前所在目录
在Linux中,只显示当前工作的目录,没有显示完整的路径,使用【pwd】打印出当前完整的工作路径。
第二步:使用【cd】命令进入文件目录
【cd】命令是Linux中最基本的命令语句,其他的命令语句要进行操作,都是建立在使用【cd】命令基础之上的。
【cd /usr/local】进入到/usr/local目录。
【pwd】打印当前工作目录。
【cd ./】还是当前目录。
【cd ../】进入当前目录的上级目录。
路径【./】指的是当前目录,【../】指的是当前目录的上级目录。
第三步:使用【ls】命令显示 文件信息
【ls】命令是列表的命令,在【ls】命令后加上-1就是以长列表的形式显示出来,内容较【ls】命令具体。
【ls -1】或者【11】显示当前文件夹内文件详细信息。
【ls-a】显示当前文件夹内隐藏文件。
【ls~】显示用户宿主目录的文件信息。
第四步:使用【more】或【less】命令分屏显示文件与目录
【more】以一页一页十五形式显示文件;按Space键向后翻页;按b键向前翻页。
【less】命令作用与【more】命令相似,都可以用来浏览文字档案的内容,不同的是【less】命令允许使用者往回卷动的方式查看文件,浏览速度较vi文本编辑器快;【j】以行为单位向下;【k】以行为单位向上。
【ls /etc| more】让/etc中文件与目录分屏显示,只能向下查看。
【ls /etc| less】让/etc中文件与目录分屏显示,可以上下查看。
【ls /etc/squid/squid.conf】分屏显示squid.conf中的内容。
第五步: 使用【cat】命令查看文件内容
【cat】命令是Linux下的一个文本输出命令;【cat】命令主要有3大功能。
(1)一次显示整个文件:【cat filenname】.
(2)从键盘创建一个文件:【cat > filenname】,只能创建新文件,不能编辑已有文件。
(3)将几个文件合并为一个:【cat filel file2 > file】。
【cat /etc/passwd】查看文件passwd文件中的内容。
【cat /etc/passwd | less】查看文件passwd文件中的内容,可以上下移动,按q键退出。
【cat /etc/fstab】查看/etc/fstab文件的内容。
第六步: 使用【mkdir】命令创建目录
【mkdir yhy】在当前路径中创建yhy目录。
【mldir yhy1 yhy2 yhy3】在当前路径中同事创建yhy1、yhy2、yhy3共三个目录。
第七步: 使用【touch】命令创建文件
【touch】命令用于创建新的空气文件或者修改已有文件的时间戳,
【touch fileA】如果file存在,使用【touch】指令可以更改这个文件或目录的日期时间,包括存取时间和更改时间;如果fileA不存在,【touch】指令会在当前目录下新建个空白文件fileA。
【touch file1 file2】在当前目录创建文件file1 file2两个文件。
【touch /home/file1 file2】在/home目录下创建文件file1 file2两个文件。
【touch -t 201601142234.50 log.log】设定文件的时间戳为201601142234.50。
【mkdir dir1 dir2】在当前目录下创建子目录dir1和dir2,两个文件夹。
【touch】命令后跟的是文件,【mkdir】命令后跟的是目录。
第八步:使用【rmkdir】命令删除目录
【rmdir /tmp/test/yhy】删除目录。
【ls /tmp/test】查看test目录下的文件及目录。
【mkdir -p d1/d2/d3】一次建立d1/d2/d3文件夹。
【rmkdir -p d1/d2/d3】一次删除d3/d2/d1文件夹。
第九步:使用【rm】命令删除文件或者目录:
rm是常用的命令,该命令的功能为删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
rm是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比如在/(根目录)下执行rm * -rf)。所以,我们在执行rm之前最好先确认一下在哪个目录,到底要删除什么东西,操作时保持高度清醒的头脑。
1命令格式:
rm [选项] 文件…
2命令功能:
删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。
3命令参数:
-f, --force 忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除
-r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose 详细显示进行的步骤
--help 显示此帮助信息并退出
--version 输出版本信息并退出
第十步:使用【cp】命令复制文件:
cp命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
-a:此参数的效果和同时指定"-dpR"参数相同;
-d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
-f:强行复制文件或目录,不论目标文件或目录是否已存在;
-i:覆盖既有文件之前先询问用户;
-l:对源文件建立硬连接,而非复制文件;
-p:保留源文件或目录的属性;
-R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
-s:对源文件建立符号连接,而非复制文件;
-u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
-b:覆盖已存在的文件目标前将目标文件备份;
-v:详细显示命令执行的操作。
如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被破坏。此命令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点.或点点..的形式。例如,下面的命令将指定文件复制到当前目录下:
cp ../mary/homework/assign .
第十一步:使用【mv】命令移动或者重命名文件或者目录:
在linux系统中,mv命令可以用于对文件,目录的重命名以及移动操作,系统将会根据其参数的类型,自动判断是移动还是重命名操作。注意:文件的移动非常快,这是因为文件的实际内容并没有移动,而是将文件表中的某个指针改变,因此,文件的大小并不影响mv命令的执行速度。
格式:mv [选项] [源文件或目录] [目标文件或目标目录]
-i 或--interactive 交互方式操作。如果操作中导致对已经存在的目标文件的覆盖,此时系统会问是否重写。(y/n)
-f 或 --force 禁止交互操作,即覆盖时不给任何提示。此时i不起作用。
例:
1、把当前目录下的abc 移动到/home目录下面,并重命名为cdy
mv -i abc /home/cdy
可以用ll查看一下: ll /home/cdy
注意:由于把文件移动到/home目录下,因此必须对该目录具有写权限。
2、把一个目录移动到另位一个地方。
mv test cdy/ #把test目录移动到cdy目录中了,如果没有cdy则改名了。
3、文件或目录重命名
mv dir1 dir2 #目录重命名
mv file1 file2 #文件重名合
第十二步:重启与关机:
在Linux系统下一些常用的关机/重启命令有【shutdown】、【halt】、【reboot】、【init】都可以达到重启系统的目的:
(1)重启命令:
【reboot】重启系统;
【shutdown -r now】立刻重启(root用户使用);
【shutdown -r 10】10分钟后自动重启(root用户使用);
【shutdown -r 20:35】在时间20:35时重启(root用户使用);
(2)关机命令:
【halt】立刻关机;
【poweroff】立刻关机;
【shutdown -h now】立刻关机(root用户使用);
【shutdown -h 10】10分钟后自动关机;
如果通过【shutdown】命令设置关机或重启,可以用【shutdown -c】取消重启或关机。
【子任务四】:挂载外部文件到Linux系统中:
一.Linux挂载U盘:
1、插入u盘到计算机,如果目前只插入了一个u盘而且你的硬盘不是scsi的硬盘接口的话,那它的硬件名称为:sda1。
2、在mnt目录下先建立一个usb的目录(如:[root@localhost root]# mkdir /mnt/usb)
3、挂载U盘:mount -t vfat /dev/sda1 /mnt/usb
4、卸载U盘:umount /mnt/usb
5、删除usb目录:rm -rf /mnt/usb
二.Linux挂载硬盘:
1.加挂FAT32文件系统
最简单的用法
mount /dev/hda6 /mnt/wine
/dev/hda6是Windows的E盘,/mnt/wine是目录加挂点。Linux会识别到/dev/hda6分区的文件系统类型是什么,然后加挂的。当然也可以指定分区的文件系统类型,命令如下:
mount -t vfat /dev/hda6 /mnt/wine
在实际中操作中,直接加挂一个windows的分区,中文的文件名和目录名会出现乱码,为了避免这种情况可以指定字符集,命令如下:
mount /dev/hda6 /mnt/d -o codepage=936,iocharset=cp936
mount -t vfat /dev/hda6 /mnt/d -o codepage=936,iocharset=cp936
mount -t vfat -o iocharset=cp936,codepage=936 /dev/hda6 /mnt/wine(作者常用)
卸载所挂的硬盘 umount /mnt/wine
删除所挂的硬盘 rm -rf /mnt/wine
2.加挂NTFS文件系统
在目前多数的Linux版本上,需要重编译Linux核心才能,加挂NTFS分区(编译方法请参阅其它文章)。核心支持NTFS后,可以用以下命令加挂载:
mount -t ntfs /dev/hda2 /mnt/c
同样对于中文的文件名和目录名会出现乱码的问题可以指定字符集,不过和加挂vfat分区不同,实际中用以下命令是可行的:
mount -t ntfs -o iocharset=cp936 /dev/hda2 /mnt/c -r
mount -t ntfs -o iocharset=cp936,rw /dev/hda2 /mnt/c
【子任务五】掌握Linux系统中自动挂载:
挂载与卸载
挂载方法:mount DECE MOUNT_POINT
mount:通过查看/etc/mtab(文章最后会对/etc/mtab有个解释)文件显示当前系统已挂载的所有设备
命令使用格式:mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要挂载的设备;
(1) 设备文件:例如/dev/sda5
(2) 卷标:-L 'LABEL', 例如 -L 'MYDATA
(3) UUID, -U 'UUID':例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e'
(4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
dir:挂载点
事先存在;建议使用空目录;
进程正在使用中的设备无法被卸载;
常用命令选项:
-t vsftype:指定要挂载的设备上的文件系统类型;
-r: readonly,只读挂载;
-w: read and write, 读写挂载;
n: 不更新/etc/mtab;
-a:自动挂载所有支持自动挂载的设备;(定义在了/etc/fstab文件中,且挂载选项中有“自动挂载”功能)
-L 'LABEL': 以卷标指定挂载设备;
-U 'UUID': 以UUID指定要挂载的设备;
-B, --bind: 绑定目录到另一个目录上;
o options:(挂载文件系统的选项)
async:异步模式;
sync:同步模式;
atime/noatime:包含目录和文件;
diratime/nodiratime:目录的访问时间戳
auo/noauto:是否支持自动挂载
exec/noexec:是否支持将文件系统上应用程序运行为进程
dev/nodev:是否支持在此文件系统上使用设备文件;
suid/nosuid:是否支持在此文件系统上使用特殊权限
remount:重新挂载
ro:只读
rw:读写
user/nouser:是否允许普通用户挂载此设备
acl:启用此文件系统上的acl功能
命令演示如下:
[root@localhost /]# fdisk -l
...
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 4196351 1048576 5 Extended
/dev/sdb5 2101248 2306047 102400 83 Linux
/dev/sdb6 2308096 2512895 102400 83 Linux
/dev/sdb7 2514944 2719743 102400 83 Linux
/dev/sdb8 2721792 2926591 102400 83 Linux
...
[root@localhost /]# mount /dev/sdb8 /device
[root@localhost /]# df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/CentOS-root 18307072 4724136 13582936 26% /
devtmpfs 485368 0 485368 0% /dev
tmpfs 500664 84 500580 1% /dev/shm
tmpfs 500664 7160 493504 2% /run
tmpfs 500664 0 500664 0% /sys/fs/cgroup
/dev/sda1 508588 142620 365968 29% /boot
tmpfs 100136 20 100116 1% /run/user/42
tmpfs 100136 0 100136 0% /run/user/0
/dev/sdb8 98988 5280 93708 6% /device
[root@localhost /]# blkid /dev/sdb8
/dev/sdb8: UUID="a3c4bf06-3695-45e8-8a07-a063498f0578" TYPE="xfs"
[root@localhost /]# umount /device
[root@localhost /]# mount -t ext2 /dev/sdb8 /device
mount: 文件系统类型错误、选项错误、/dev/sdb8 上有坏超级块、
缺少代码页或助手程序,或其他错误
[root@localhost /]# cd /device/
[root@localhost device]# ll
总用量 0
[root@localhost device]# touch 11 22
[root@localhost device]# ll
总用量 0
-rw-r--r--. 1 root root 0 3月 17 10:14 11
-rw-r--r--. 1 root root 0 3月 1710:14 22
[root@localhost device]# ll
总用量 0
[root@localhost device]# ll -a
总用量 4
drwxr-xr-x. 2 root root 6 3月 17 09:27 .
dr-xr-xr-x. 21 root root 4096 3月 17 09:29 ..
[root@localhost device]# cd ..
[root@localhost /]# umount /device/
[root@localhost /]# cd /device/
[root@localhost device]# ll
总用量 0
-rw-r--r--. 1 root root 0 3月 17 10:14 11
-rw-r--r--. 1 root root 0 3月 17 10:14 22
这就是我对Linux系统文件的认识。
更多推荐
项目二:管理与维护Linux系统 之任务二:认识Linux的文件系统
发布评论