项目二:管理与维护linux系统
子任务一 熟悉Linux系统的目录结构树
文件结构是文件存放在磁盘等存储设备上的的组织方法,目录提供了一个方便而有效的途径。
第一步 理解linux系统的目录结构树
/bin
/boot
/dev
/etc
/home
/lib
/mnt
/usr
linux系统的目录采用的树形结构。
ls -a 列出文件下所有的文件,包括以“.“开头的隐藏文件(linux下文件隐藏文件是以.开头的,如果存在..代表存在着父目录)。
ls -l 列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等。
ls -F 在每一个文件的末尾加上一个字符说明该文件的类型。”@”表示符号链接、”|”表示FIFOS、”/”表示目录、”=”表示套接字。
ls -s 在每个文件的后面打印出文件的大小。 size(大小)
ls -t 按时间进行文件的排序 Time(时间)
ls -A 列出除了”.”和”..”以外的文件。
ls -R 将目录下所有的子目录的文件都列出来,相当于我们编程中的“递归”实现
ls -L 列出文件的链接名。Link(链接)
ls -S 以文件的大小进行排序
第二步 对比理解linux的文档结构
有一块硬盘,分成了四个分区,分别是/、boot、/usr和windows下的FAT。 在linux系统里面,分区被称作“挂载点”,简单明了的说,“挂载点”意思就是:把一部分硬盘容量,“分”成一个文件夹的形式,用来干什么事情。这个文件夹的名字,就叫做:“挂载点”。所以,和Windows有着本质上的超级大的区别,你在任何linux发行版系统里面,绝对不会看到C盘,D盘,E 盘这样的,你能看到的,只有“文件夹”形式存在的“挂载点”。第三步 列出linux下一些常用目录的功能
/bin 该目录中存放Linux的常用命令。
/boot 该目录默认下存放的是Linux的启动文件和内核。
/cdrom 该目录在刚安装系统时是空的,你可以将光驱文件系统挂在这个目录下。
/dev 该目录包含了Linux系统中使用的所有外部设备,它实际上是访问这些外部设备的端口,你可以访问这些外部设备,与访问一个文件或一个目录没有区别。例如在系统中键入“cd /dev/cdrom”,就可以看到光驱中的文件;键入“cd /dev/mouse”即可看鼠标的相关文件。
/etc 该目录存放系统管理时要用到的各种配置文件和子目录,例如网络配置文件、文件系统、X系统配置文
件、设备配置信息、设置用户信息等。
/home 如果建立一个名为“xx”的用户,那么在/home目录下就有一个对应的“/home/xx”路径,用来存放该
用户的主目录。
/lib 该目录用来存放系统动态链接共享库,几乎所有的应用程序都会用到该目录下的共享库。
/media:提供挂载(mounting)和自动挂载设备的标准位置,如远程文件系统和可移动介质(目录名为cdrecorder、floppy等)。
/mnt 临时将别的文件系统挂在该目录下。
/opt 第三方软件在安装时默认会找这个目录,所以你没有安装此类软件时它是空的,但如果你一旦把它删除了
,以后在安装此类软件时就有可能碰到麻烦。
/proc 可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的,该目录的内容不在硬盘上而在内存里。
/root 如果你是以超级用户的身份登录的,这个就是超级用户的主目录。
/sbin 该目录用来存放系统管理员使用的管理程序。初始化的内存盘。在linux内核启动前,boot loader会将存储介质(一般是硬盘)中的
/sys:一个类似与/proc的文件系统,在Linux2.6内核中最新出现的,包含的文件用于获得硬件状态并反映内核看到的系统设备树。它使用了/proc中的很多帮助。
/tmp 用来存放不同程序执行时产生的临时文件,该目录会被系统自动清理干净。
/usr 用户的应用程序和文件几乎都存放在该目录下。
/var 该目录存放那些经常被修改的文件,包括各种日志、数据文件。
/initrd 它的英文含义是boot loader initialized RAM disk,就是由boot loader,文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的initrd文件系统。
子任务二 了解linux系统中的路径规则
linux系统中,路径就是一个文件存在的地方,如果告诉系统的这个路径,那么系统就可以找到这个文件,在linux中,存在着绝对路径和相对路径。第一步 理解绝对路径绝对路径:路径的写法一定是由根目录“/”写起,例如/usr/local/mysql就是绝对路径。
第二步 理解相对路径
相对路径:路径的写法不是由根目录“/”写起,例如,用户进入到/然后在进入到home,命令为【cd /home】,然后再使用【cd/test】命令,此时用户所在的路径为/home/test。第一个cd命令后/home,第二个cd命令后跟test,并没有/,这个test是相对/home目录而言的,所以叫相对路径【子任务三】 掌握linux系统中的基本命令
第一步:使用【pwd】命令打印出当前所在目录
子任务三 掌握Linux系统中的基本命令
在linux系统中,只显示当前的目录没有显示完整的路径
、
第二步:使用【cd】命令进入文件的目录
cd ~ 进入用户主目录;
cd - 返回进入此目录之前所在的目录;
cd .. 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../.. 返回上两级目录;
cd !$ 把上个命令的参数作为cd参数使用。
第三步:使用【is】命令显示文件信息
【is】命令是列表的命令,在命令后加上-l就是长列表的形式显示出来,内容较【is】命令更加具体。
【is】或【ll】显示当前文件内文件详细信息。
【is-a】显示文件内隐藏文件。
【is~】显示用户宿主目录的文件信息。
第四步:使用【more】或【less】命令分屏显示文件与目录
【more】是一页一页形式显示文件,按space键向后翻页,按b键向前翻页。
【is/etc|more】让etc中文件与目录分屏显示,只能向下查看。
【is/etc|less】让etc中文件与目录分屏显示,可以上、下查看。
【less/etc/squid/squid.conf】分屏显示squid.conf中的内容。
第五步:使用【cat】命令查看文件内容
【cat】命令是linux下的一个文本输出命令,通常是用来查看某个文件的内容。主要有三大功能
一是一次显示整个文件
二是从键盘创建一个文件
三是将几个文件合并为一个文件
第六步:使用【mkdir】命令创建目录
【mkdir yhy】在当前路径中创建yhy目录。
【mkdir yhy1 yhy2 yhy3】在当前路径中同时创建yhy1 yhy2 yhy3共3个目录。
语法:mkdir[-m 或-p][目录名称],-p -m为其选择项。当输入【mkdir/tmp/test/yhy】命令并运行时,系统提示错误,无法创建。
第七步:使用【touch】命令创建文件
【touch】命令用于创建新的空文档或者修改已有文件的时间戳,用法如下。
【touch fileA】若果存在,使用命令可以更改这个文件或目录的日期时间,包括存取时间和更改时间。
【touch A B】在当前目录下创建A B俩个文件。
注意:【touch】命令后跟的是文件,【mkdir】命令后跟的是目录。
第八步:使用【rmdir】命令删除目录
【rmdir/tmp/test/yhy】删除yhy目录。
【is/tmp/test】查看test目录下的文件及目录。
第九步:使用【rm】命令删除目录或文件
【rmdir】命令只能删除目录但不能删除文件或非空目录 ,要想删除一个文件,则要用【rm】命令。
【rm】命令也有-f -i -r 等多选项。
【rm -f /root/dir2/myfie1】使用绝对路径删除文件myfile1。-f是强制的意思,如果不使用这个选项,当删除一个而不存在的文件时会报错。
【rm -rf/root/dir2】删除dir2子目录,包括里面的文件。
第十步:使用【cp】命令复制文件
【cp etc/grub.conf./】将/etc/grub.conf文件复制到当前目录中。
【cp/etc/passwd/root/passwd.bak】复制/etc/passwd文件到/root/中.并命名为passwd.bak。
【cp/root/*.mp3/soft/ab】复制拓展名为mp3的所有文件到/soft/ab目录中。
【cp file1 file2 dir1】将file2 和file2复制到dir1中。
第十一步:使用【mv】命令移动或重命名目录/文件
mv文件名 路径 (mv源文件 目的地)
mv aa.txt ../android/ 把当前目录下的文件aa.txt剪切到上一级目录的子目录android目录里
mv aa.txt .. 把文件aa.txt移动到上一级目录
2.、重命名(假如把剪切的文件存放在同一个目录中,则是重命名)
mv 文件名 文件名 (mv源文件 目标名称)
mv bb.txt cc.txt 把文件bb.txt重命名为cc.txt
mv dir1 new_dir 重命名/移动 一个目录
第十二步:重启与关机
重启命令:
1、reboot
2、shutdown -r now 立刻重启(root用户使用)
3、shutdown -r 10 过10分钟自动重启(root用户使用)
4、shutdown -r 20:35 在时间为20:35时候重启(root用户使用)
如果是通过shutdown命令设置重启的话,可以用shutdown -c命令取消重启
关机命令:
1、halt 立刻关机
2、poweroff 立刻关机
3、shutdown -h now 立刻关机(root用户使用)
4、shutdown -h 10 10分钟后自动关机
如果是通过shutdown命令设置关机的话,可以用shutdown -c命令取消重启
第十三步:查看系统相关状态
【df】命令显示磁盘占有空时间
【free】命令用于显示系统内存的使用情况信息。
total:内存总数;
used:已经使用的内存数;
free:空闲的内存数;
shared:当前已经废弃不用;
buffers Buffer:缓存内存数;
cached Page:缓存内存数。
【cat/proc/meminfo】命令查看内存使用的详细信息。
【cat/proc/cpuinfo】命令查看CPU信息(型号)。
第十四步:熟悉一下常用命令以及功能
ls 显示文件或目录
-l 列出文件详细信息l(list)
-a 列出当前目录下所有文件及目录,包括隐藏的a(all)
mkdir 创建目录
-p 创建目录,若无父目录,则创建p(parent)
cd 切换目录
touch 创建空文件
echo 创建带有内容的文件。
cat 查看文件内容
cp 拷贝
mv 移动或重命名
rm 删除文件
-r 递归删除,可删除子目录及文件
-f 强制删除
find 在文件系统中搜索某文件
wc 统计文本中行数、字数、字符数
grep 在文本文件中查找某个字符串
rmdir 删除空目录
tree 树形结构显示目录,需要安装tree包
pwd 显示当前目录
ln 创建链接文件
more、less 分页显示文本文件内容
head、tail 显示文件头、尾内容
ctrl+alt+F1 命令行全屏模式
系统管理命令
stat 显示指定文件的详细信息,比ls更详细
who 显示在线登陆用户
whoami 显示当前操作用户
hostname 显示主机名
uname 显示系统信息
top 动态显示当前耗费资源最多进程信息
ps 显示瞬间进程状态 ps -aux
du 查看目录大小 du -h /home带有单位显示目录信息
df 查看磁盘大小 df -h 带有单位显示磁盘信息
ifconfig 查看网络情况
ping 测试网络连通
netstat 显示网络状态信息
man 命令不会用了,找男人? 如:man ls
clear 清屏
alias 对命令重命名 如:alias showmeit=”ps -aux” ,另外解除使用unaliax showmeit
kill 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。
打包压缩相关命令
gzip:
bzip2:
tar: 打包压缩
-c 归档文件
-x 压缩文件
-z gzip压缩文件
-j bzip2压缩文件
-v 显示压缩或解压缩过程 v(view)
-f 使用档名
子任务四 挂载外部文件到linux系统中
第一步:理解挂载的概念
Liunx采用树形的文件管理系统,也就是在Linux系统中,可以说已经没有分区的概念了。分区在Linux和其他设备一样都只是一个文件。要使用一个分区必须把它加载到文件系统中。这可能难于理解,继续往下看。
Linux中树形的文件结构,最顶层是/ 目录。在安装系统时,你必须选择把一个主分区挂载在/ 目录下,因为系统需要安装在/挂载的主分区下。否则系统会提示你。这里又一次提到了挂载。所以挂载就是把目录和分区连接起来,和上面说的WINDOWS下的映射关系是一样的。不同的是WINDOWS是把分区映射到一个盘符,而LINUX下是映射到一个目录。 这是理解他们不同最重要的地方,而导致不同的是因为文件系统结构不同。
上面说了Linux的文件系统是树形的,安装的系统必须是在/ 目录下,因为/目录下挂载了一个主分区。/目录是树形的根,其他所有目录都是他的子节点。 我们安装系统的时候已经把分区1挂载到 / 目录下了. 而这个时候没有挂载其他任何分区,所以/ 目录下的所有其他目录都在这个分区下,也就是说,我在任何目录下读写操作实际都是操作的这个1号分区。如果我们想使用其他分区,就必须把这个分区挂载到一个目录下,这个目录可以是已经存在的目录,比如/home,也可以是我们自己建立的目录,比如/oracle。当然有些目录比如/lib, /dev, /etc, /usr这些都不能挂载其他分区,因为他们都存放着系统需要的文件,一旦被挂载其他分区,那没OS就无法找到所需的文件,系统就会崩溃。比如我们把分区2挂载到/usr/X11目录下时,系统就无法通过X11目录找到分区1上的文件,这个时候系统图形界面就无法使用了. 虽然文件还在硬盘上。前面说过,目录 --- 分区 是通过挂载吧他们联系起来。你更换了分区,也就破坏了联系,就无法在找到之前的文件了。我们在看分区5和分区6,我们把它挂载到/home/ftp 和 /oracle目录下,这个时候我们在操作这2个目录是,就是操作对用的分区了.
而WINDOWS就没这么复杂,她不是采用树形的结构,每个分区对应一个盘符,一旦建立映射关系就无法在修改。实际上,LINUX的每个挂载了分区的目录就相当于WINDOWS系统中的盘符,比如上面的,/home/ftp 和 /oracle目录我们就可以把她看做一个盘符和一个分区关联,只是因为LINUX文件系统,使得她更加灵活,所以也更复杂和难以理解。
df 命令可以查看分区挂载情况, fdisk 命令可以查看系统分区情况。
LINUX下所有设备都被认为是文件,而/dev目录存放所有系统设备文件的,而一个分区就是一个文件,名字就是分区的名字.
1、通过mount挂载文件 来挂载磁盘分区(或存储设备)
mount挂载文件 [-t 文件系统 ] [-o 选项] 设备 目录
-t 通过这个参数,我们来指定文件系统的类型,一般的情况下不必指定有时也能识别
-o 这个选项,主要选项有权限、用户、磁盘限额、语言编码等
设备 指存储设备,比如/dev/hda1, /dev/sda1 ,cdrom 等...至于您的系统中有哪些存储设备,主要通过 fdisk -l 或者查看 /etc/fstab 或 dmesg ;一般的情况下光驱设备是/dev/cdrom ;软驱设备是/dev/fd0 ;硬盘及移动硬盘以 fdisk -l 的输出为准;
1)对光驱和软驱的挂载;
我们先建一个目录,然后执行Linux mount挂载文件 命令,这样cdrom 就挂在 /mnt/cdrom 中了;我们就可以在/mnt/cdrom 中查看光盘中资料和文件;这个目录您想怎么建就怎么建。用什么目录不是最重要的。重要的是您知道自己在做什么就行了。比如我们也可以把这个目录建成 dvdrom ;然后用 Linux mount挂载文件 /dev/cdrom /mnt/dvdrom 来挂载;
2)挂载硬盘和移动硬盘的文件系统;
一个分区只有创建了文件系统后才能使用,前面我们说过了,我们在Linux大多用的是ext2 、ext3、reiserfs、fat32、msdos 、ntfs等;
[1]挂载Linux文件系统;
首先我们得建一个文件系统挂载的目录;我们前面已经提到了;一个有文件系统的分区要挂到系统中,必须要有一个挂载点;这个挂载点就是一个目录;比如我们通过fdisk -l 得知hda5 是Linux分区,并且创建了文件系统,比如是reiserfs 文件系统吧;
步骤:
先创建一个挂载目录;比如/mnt/hda5
设置/mnt/hda5的权限为任何用户可写可读可执行;这样所有的用户都能在写入;
通过-t reiserfs 来指定/dev/hda5是reiserfs 文件系统, 并且挂载到/mnt/hda5目录;
假如我们不知道hda5上reiserfs 文件系统,我们可以用 -t auto 让系统定夺,然后挂载到/mnt/hda5
不加任何参数,直接 Linux mount挂载文件 /dev/hda5 到/mnt/hda5;系统自动判断分区文件系统;
通过df -lh 来查看是不是被挂载了;
第二步:使用挂在命令的参数
1.-t vfstype 指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:
光盘或光盘镜像:iso9660
DOS fat16文件系统:msdos
Windows 9x fat32文件系统:vfat
Windows NT ntfs文件系统:ntfs
Mount Windows文件网络共享:smbfs
UNIX(LINUX) 文件网络共享:nfs
2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有:
loop:用来把一个文件当成硬盘分区挂接上系统
ro:采用只读方式挂接设备
rw:采用读写方式挂接设备
iocharset:指定访问文件系统所用字符集
3.device 要挂接(mount)的设备。
4.dir设备在系统上的挂接点(mount point)。
必要参数:
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程
选择参数:
-S “-S<字尾备份字符串> ”或 “--suffix=<字尾备份字符串>”
-V “-V<备份方式>”或“--version-control=<备份方式>”
--help 显示帮助信息
--version 显示版本信息
挂载一个文件系统
mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经存在
umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 '/ mnt/hda2' 退出
fuser -km /mnt/hda2 当设备繁忙时强制卸载
umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用
mount /dev/fd0 /mnt/floppy 挂载一个软盘
mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom
mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom
mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom
mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件
mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统
mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备
mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享
子任务五 掌握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: 绑定目录到另一个目录上;
注意:查看内核追踪到的已挂载的所有设备:cat /proc/mounts
………………………………………………………………………………………………………………………
-o options:(挂载文件系统的选项)
async:异步模式;
sync:同步模式;
atime/noatime:包含目录和文件;
diratime/nodiratime:目录的访问时间戳
auto/noauto:是否支持自动挂载
exec/noexec:是否支持将文件系统上应用程序运行为进程
dev/nodev:是否支持在此文件系统上使用设备文件;
suid/nosuid:是否支持在此文件系统上使用特殊权限
remount:重新挂载
ro:只读
rw:读写
user/nouser:是否允许普通用户挂载此设备
acl:启用此文件系统上的acl功能
注意:上述选项可多个同时使用,彼此使用逗号分隔;
默认挂载选项:defaults:rw, suid, dev, exec, auto, nouser, and async
当linux再次启动时,系统会读取该文件,linux系统就会把文件挂到/mnt/iso目录下面。