鸟哥私房菜学习心得.doc_第1页
鸟哥私房菜学习心得.doc_第2页
鸟哥私房菜学习心得.doc_第3页
鸟哥私房菜学习心得.doc_第4页
鸟哥私房菜学习心得.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

FilezillaSPFdisk 国人开发的fdisk分区工具间 警告讯息 选项与参数: -t sec : -t 后面加秒数,亦即过几秒后关机的意思 -k : 不要真的关机,只是发送警告讯息出去! -r : 在将系统的服务停掉之后就重新启动(常用) -h : 将系统的服务停掉后,立即关机。 (常用) -n : 不经过 init 程序,直接以 shutdown 的功能来关机 -f : 关机并开机之后,强制略过 fsck 的磁盘检查 -F : 系统重新启动之后,强制进行 fsck 的磁盘检查 -c : 取消已经在进行的 shutdown 指令内容。 时间 : 这是一定要加入的参数!指定系统关机的时间!时间的范例底下会说明。 范例: rootwww # /sbin/shutdown -h 10 I will shutdown after 10 mins # 告诉大家,这部机器会在十分钟后关机!并且会显示在目前登入者的屏幕前方! # 至于参数有哪些呢?以下介绍几个吧!此外,需要注意的是,时间参数请务必加入指令中,否则shutdown会自动跳到 run-level 1 (就是单人维护的登入情况),这样就伤脑筋了!底下提供几个时间参数的例子吧: rootwww # shutdown -h now 立刻关机,其中 now 相当于时间为 0 的状态 rootwww # shutdown -h 20:25 系统在今天的 20:25 分会关机,若在21:25才下达此指令,则隔天才关机 rootwww # shutdown -h +10 系统再过十分钟后自动关机 rootwww # shutdown -r now 系统立刻重新启动 rootwww # shutdown -r +30 The system will reboot 再过三十分钟系统会重新启动,并显示后面的讯息给所有在在线的使用者 rootwww # shutdown -k now This system will reboot 仅发出警告信件的参数!系统并不会关机啦!吓唬人!fsck /dev/sda1每个账号都有多个群组支持当为 d 则是目录,例如上表档名为.gconf的那一行;当为 - 则是档案,例如上表檔名为install.log那一行;若是 l 则表示为连结档(link file);若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。如果/usr是安装时会占用较大硬盘容量的目录,那么/var就是在系统运作后才会渐渐占用硬盘容量的目录。 因为/var目录主要针对常态性变动的档案,包括快取(cache)、登录档(log file)以及某些软件运作所产生的档案, 包括程序档案(lock file, run file),或者例如MySQL数据库的档案等等. :代表当前的目录,也可以使用 ./ 来表示;. :代表上一层目录,也可以 ./ 来代表。网络文件常常提到类似./run.sh之类的数据,这个指令的意义为何? 答: 由于指令的执行需要变量(bash章节才会提到)的支持,若你的执行文件放置在本目录,并且本目录并非正规的执行文件目录(/bin, /usr/bin等为正规),此时要执行指令就得要严格指定该执行档。./代表本目录的意思,所以./run.sh代表执行本目录下,名为run.sh的档案啰!rootwww # pwd -P 选项: -P :显示出确实的路径,而非使用链接 (link) 路径。 范例:单纯显示出目前的工作目录: rootwww # pwd /root = 显示出目录啦 范例:显示出实际的工作目录,而非链接文件本身的目录名而已 rootwww # cd /var/mail =注意,/var/mail是一个连结档 rootwww mail# pwd /var/mail =列出目前的工作目录 rootwww mail# pwd -P /var/spool/mail spool/mail # 看到这里应该知道为啥了吧?因为 /var/mail 是连结档,连结到 /var/spool/mail # 所以,加上 pwd -P 的选项后,会不以连结文件的数据显示,而是显示正确的完整路径啊!pwd(3)如果想要让root在任何目录均可执行/root底下的ls,那么就将/root加入PATH当中即可。加入的方法很简单,就像底下这样: rootwww # PATH=$PATH:/root我们前面介绍的完整文件名 (包含目录名称与文件名) 当中提到,完整档名最长可以到达 4096 个字符。 那么你怎么知道那个是档名?那个是目录名?嘿嘿!就是利用斜线 (/) 来分辨啊! 其实,取得文件名或者是目录名称,一般的用途应该是在写程序的时候,用来判断之用的啦 所以,这部分的指令可以用在第三篇内的 shell scripts 里头喔! 底下我们简单的以几个范例来谈一谈 basename 与 dirname 的用途! rootwww # basename /etc/sysconfig/network network = 很简单!就取得最后的档名 rootwww # dirname /etc/sysconfig/network /etc/sysconfig = 取得的变成目录名了!cat 由第一行开始显示档案内容? tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!? nl 显示的时候,顺道输出行号!? more 一页一页的显示档案内容? less 与 more 类似,但是比 more 更好的是,他可以往前翻页!? head 只看头几行? tail 只看尾巴几行? od 以二进制的方式读取档案内容!modification time (mtime): 当该档案的内容数据变更时,就会更新这个时间!内容数据指的是档案的内容,而不是档案的属性或权限喔!? status time (ctime): 当该档案的状态 (status)改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间啊。? access time (atime): 当该档案的内容被取用时,就会更新这个读取时间 (access)。举例来说,我们使用 cat 去读取 /etc/man.config , 就会更新该档案的 atime 了。chattr 增加隐藏属性+ :增加某一个特殊参数,其他原本存在参数则不动。 - :移除某一个特殊参数,其他原本存在参数则不动。 = :设定一定,且仅有后面接的参数 A :当设定了 A 这个属性时,若你有存取此档案(或目录)时,他的访问时间 atime 将不会被修改,可避免I/O较慢的机器过度的存取磁盘。这对速度较慢的计算机有帮助 S :一般档案是异步写入磁盘的(原理请参考第五章sync的说明),如果加上 S 这个 属性时,当你进行任何档案的修改,该更动会同步写入磁盘中。 a :当设定 a 之后,这个档案将只能增加数据,而不能删除也不能修改数据,只有root 才能设定这个属性。 c :这个属性设定之后,将会自动的将此档案压缩,在读取的时候将会自动解压缩, 但是在储存的时候,将会先进行压缩后再储存(看来对于大档案似乎蛮有用的!) d :当 dump 程序被执行的时候,设定 d 属性将可使该档案(或目录)不会被 dump 备份 i :这个 i 可就很厉害了!他可以让一个档案不能被删除、改名、设定连结也无法 写入或新增资料!对于系统安全性有相当大的帮助!只有 root 能设定此属性 s :当档案设定了 s 属性时,如果这个档案被删除,他将会被完全的移除出这个硬盘 空间,所以如果误删了,完全无法救回来了喔! u :与 s 相反的,当使用 u 来配置文件案时,如果该档案被删除了,则数据内容其实还 存在磁盘中,可以使用来救援该档案喔! 注意:属性设定常见的是 a 与 i 的设定值,而且很多设定值必须要身为 root 才能设定 范例:请尝试到/tmp底下建立档案,并加入 i 的参数,尝试删除看看。 rootwww # cd /tmp rootwww tmp# touch attrtest =建立一个空档案 rootwww tmp# chattr +i attrtest =给予 i 的属性 rootwww tmp# rm attrtest =尝试删除看看 rm: remove write-protected regular empty file attrtest? y rm: cannot remove attrtest: Operation not permitted=操作不许可 # 看到了吗?呼呼!连 root 也没有办法将这个档案删除呢!赶紧解除设定! 范例:请将该档案的 i 属性取消! rootwww tmp# chattr -i attrtestlsattr 查看隐藏属性rootwww # lsattr -adR 档案或目录 选项与参数: -a :将隐藏文件的属性也秀出来; -d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名; -R :连同子目录的数据也一并列出来! rootwww tmp# chattr +aij attrtest rootwww tmp# lsattr attrtest -ia-j- attrtestfile 查看文件类型which查找文件rootwww # which -a command 选项或参数: -a :将所有由 PATH 目录中可以找到的指令均列出,而不止第一个被找到的指令名称 范例一:分别用root与一般账号搜寻 ifconfig 这个指令的完整文件名 rootwww # which ifconfig /sbin/ifconfig =用 root 可以找到正确的执行档名喔! rootwww # su - vbird =切换身份成为 vbird 去! vbirdwww $ which ifconfig /usr/bin/which: no ifconfig in (/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin :/home/vbird/bin) =见鬼了!竟然一般身份账号找不到! # 因为 which 是根据用户所设定的 PATH 变量内的目录去搜寻可执行文件的!所以, # 不同的 PATH 设定内容所找到的指令当然不一样啦!因为 /sbin 不在 vbird 的 # PATH 中,找不到也是理所当然的啊!瞭乎? vbirdwww $ exit =记得将身份切换回原本的 root 范例二:用 which 去找出 which 的档名为何? rootwww # which which alias which=alias | /usr/bin/which -tty-only -read-alias -show-dot /usr/bin/which # 竟然会有两个 which ,其中一个是 alias 这玩意儿呢!那是啥? # 那就是所谓的命令别名,意思是输入 which 会等于后面接的那串指令啦! # 更多的数据我们会在 bash 章节中再来谈的! 范例三:请找出 cd 这个指令的完整文件名 rootwww # which cd /usr/bin/which: no cd in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin :/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin) # 瞎密?怎么可能没有 cd ,我明明就能够用 root 执行 cd 的啊!最后一个范例最有趣,怎么 cd 这个常用的指令竟然找不到啊!为什么呢?这是因为 cd 是bash 内建的指令啦! 但是 which 预设是找 PATH 内所规范的目录,所以当然一定找不到的啊!那怎办?没关系!我们可以透过 type 这个指令喔!whereis (寻找特定档案)因为 whereis 与 locate 是利用数据库来搜寻数据,所以相当的快速,而且并没有实际的搜寻硬盘, 比较省时间啦!rootwww # whereis -bmsu 档案或目录名 选项与参数: -b :只找 binary 格式的档案 -m :只找在说明文件 manual 路径下的档案 -s :只找 source 来源档案 -u :搜寻不在上述三个项目当中的其他特殊档案范例一:请用不同的身份找出 ifconfig 这个档名 rootwww # whereis ifconfig ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz rootwww # su - vbird =切换身份成为 vbird vbirdwww $ whereis ifconfig =找到同样的结果喔! ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz vbirdwww $ exit =回归身份成为 root 去! # 注意看,明明 which 一般使用者找不到的 ifconfig 却可以让 whereis 找到! # 这是因为系统真的有 ifconfig 这个档案,但是使用者的 PATH 并没有加入 /sbin # 所以,未来你找不到某些指令时,先用档案搜寻指令找找看再说! 范例二:只找出跟 passwd 有关的说明文件档名(man page) rootwww # whereis -m passwd passwd: /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz等updatedb 更新数据库一、让用户能进入某目录成为可工作目录的基本权限为何:? 可使用的指令:例如 cd 等变换工作目录的指令;? 目录所需权限:用户对这个目录至少需要具有 x 的权限? 额外需求:如果用户想要在这个目录内利用 ls 查阅文件名,则用户对此目录还需要 r 的权限。二、用户在某个目录内读取一个档案的基本权限为何?? 可使用的指令:例如本章谈到的 cat, more, less等等? 目录所需权限:用户对这个目录至少需要具有 x 权限;? 档案所需权限:使用者对档案至少需要具有 r 的权限才行!三、让使用者可以修改一个档案的基本权限为何?? 可使用的指令:例如 nano 或未来要介绍的 vi 编辑器等;? 目录所需权限:用户在该档案所在的目录至少要有 x 权限;? 档案所需权限:使用者对该档案至少要有 r, w 权限四、让一个使用者可以建立一个档案的基本权限为何?? 目录所需权限:用户在该目录要具有 w,x 的权限,重点在 w 啦!五、让用户进入某目录并执行该目录下的某个指令之基本权限为何?? 目录所需权限:用户在该目录至少要有 x 的权限;? 档案所需权限:使用者在该档案至少需要有 x 的权限df:列出文件系统的整体磁盘使用量;du:评估文件系统的磁盘使用量(常用在推估目录所占容量)rootwww # df -ahikHTm 目录或文件名 选项与参数: -a :列出所有的文件系统,包括系统特有的 /proc 等文件系统; -k :以 KBytes 的容量显示各文件系统; -m :以 MBytes 的容量显示各文件系统; -h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示; -H :以 M=1000K 取代 M=1024K 的进位方式; -T :连同该 partition 的 filesystem 名称 (例如 ext3) 也列出; -i :不用硬盘容量,而以 inode 的数量来显示 范例一:将系统内所有的 filesystem 列出来! rootwww # df Filesystem 1K-blocks Used Available Use% Mounted on /dev/hdc2 9920624 3823112 5585444 41% / /dev/hdc3 4956316 141376 4559108 4% /home /dev/hdc1 101086 11126 84741 12% /boot tmpfs 371332 0 371332 0% /dev/shm # 在 Linux 底下如果 df 没有加任何选项,那么默认会将系统内所有的 # (不含特殊内存内的文件系统与 swap) 都以 1 Kbytes 的容量来列出来! # 至于那个 /dev/shm 是与内存有关的挂载,先不要理他! 范例二:将容量结果以易读的容量格式显示出来 rootwww # df -h Filesystem Size Used Avail Use% Mounted on /dev/hdc2 9.5G 3.7G 5.4G 41% / /dev/hdc3 4.8G 139M 4.4G 4% /home /dev/hdc1 99M 11M 83M 12% /boot tmpfs 363M 0 363M 0% /dev/shm # 不同于范例一,这里会以 G/M 等容量格式显示出来,比较容易看啦! 范例三:将系统内的所有特殊文件格式及名称都列出来 rootwww # df -aT Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/hdc2 ext3 9920624 3823112 5585444 41% / proc proc 0 0 0 - /proc sysfs sysfs 0 0 0 - /sys devpts devpts 0 0 0 - /dev/pts /dev/hdc3 ext3 4956316 141376 4559108 4% /home /dev/hdc1 ext3 101086 11126 84741 12% /boot tmpfs tmpfs 371332 0 371332 0% /dev/shm none binfmt_misc 0 0 0 - /proc/sys/fs/binfmt_misc sunrpc rpc_pipefs 0 0 0 - /var/lib/nfs/rpc_pipefs # 系统里面其实还有很多特殊的文件系统存在的。那些比较特殊的文件系统几乎 # 都是在内存当中,例如 /proc 这个挂载点。因此,这些特殊的文件系统 # 都不会占据硬盘空间喔! _ 范例四:将 /etc 底下的可用的磁盘容量以易读的容量格式显示 rootwww # df -h /etc Filesystem Size Used Avail Use% Mounted on /dev/hdc2 9.5G 3.7G 5.4G 41% / # 这个范例比较有趣一点啦,在 df 后面加上目录或者是档案时, df # 会自动的分析该目录或档案所在的 partition ,并将该 partition 的容量显示出来, # 所以,您就可以知道某个目录底下还有多少容量可以使用了! _范例五:将目前各个 partition 当中可用的 inode 数量列出 rootwww # df -ih Filesystem Inodes IUsed IFree IUse% Mounted on /dev/hdc2 2.5M 147K 2.3M 6% / /dev/hdc3 1.3M 46 1.3M 1% /home /dev/hdc1 26K 34 26K 1% /boot tmpfs 91K 1 91K 1% /dev/shm # 这个范例则主要列出可用的 inode 剩余量与总容量。分析一下与范例一的关系, # 你可以清楚的发现到,通常 inode 的数量剩余都比 block 还要多呢rootwww # du -ahskm 档案或目录名称 选项与参数: -a :列出所有的档案与目录容量,因为默认仅统计目录底下的档案量而已。 -h :以人们较易读的容量格式 (G/M) 显示; -s :列出总量而已,而不列出每个各别的目录占用容量; -k :以 KBytes 列出容量显示; -m :以 MBytes 列出容量显示; 范例一:列出目前目录下的所有档案容量 rootwww # du 8 ./test4 =每个目录都会列出来 8 ./test2 .中间省略. 12 ./.gconfd =包括隐藏文件的目录 220 . =这个目录(.)所占用的总量 # 直接输入 du 没有加任何选项时,则 du 会分析目前所在目录 # 的档案与目录所占用的硬盘空间。但是,实际显示时,仅会显示目录容量(不含档案), # 因此 . 目录有很多档案没有被列出来,所以全部的目录相加不会等于 . 的容量喔! # 此外,输出的数值数据为 1K 大小的容量单位。范例二:同范例一,但是将档案的容量也列出来 rootwww # du -a 12 ./install.log.syslog =有档案的列表了 8 ./.bash_logout 8 ./test4 8 ./test2 .中间省略. 12 ./.gconfd 220 . 范例三:检查根目录底下每个目录所占用的容量 rootwww # du -sm /* 7 /bin 6 /boot .中间省略. 0 /proc .中间省略. 1 /tmp 3859 /usr =系统初期最大就是他了啦! 77 /var # 这是个很常被使用的功能利用通配符 * 来代表每个目录, # 如果想要检查某个目录下,那个次目录占用最大的容量,可以用这个方法找出来 # 值得注意的是,如果刚刚安装好 Linux 时,那么整个系统容量最大的应该是 /usr # 而 /proc 虽然有列出容量,但是那个容量是在内存中,不占硬盘空间。由于文件系统几乎都有 superblock , 我们的 Linux 可以透过分析 superblock 搭配 Linux 自己的驱动程序去测试挂载, 如果成功的套和了,就立刻自动的使用该类型的文件系统挂载起来啊! 那么系统有没有指定哪些类型的 filesystem 才需要进行上述的挂载测试呢? 主要是参考底下这两个档案:? /etc/filesystems:系统指定的测试挂载文件系统类型;? /proc/filesystems:Linux系统已经加载的文件系统类型。那我怎么知道我的 Linux 有没有相关文件系统类型的驱动程序呢?我们 Linux 支持的文件系统之驱动程序都写在如下的目录中:? /lib/modules/$(uname -r)/kernel/fs/透过这个 mount -bind 的功能, 您可以将某个目录挂载到其他目录去喔!而并不是整块 filesystem 的啦!所以从此进入 /mnt/home 就是进入 /home 的意思喔!范例九:找出 /dev/hdc6 的 label name,并用 label 挂载到 /mnt/hdc6 rootwww # dumpe2fs -h /dev/hdc6 Filesystem volume name: vbird_logical .底下省略. # 找到啦

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论