跳转到内容

鸟哥私房菜笔记

很久以前学习鸟哥私房菜教程时记录的内容

  • 分区分出一部分空间作为新的挂载点
[root@www ~]* dd if=/dev/zero of=/home/loopdev bs=1M count=512
512+0 records in <==读入512笔资料
512+0 records out <==输出512笔资料
536870912 bytes (537 MB) copied, 12.3484 seconds, 43.5 MB/s
#这个指令的简单意义如下:
* if是input file ,输入档案。 那个/dev/zero是会一直输出0的装置!
* of是output file ,将一堆零写入到后面接的档案中。
* bs是每个block大小,就像档案系统那样的block意义;
* count则是总共几个bs的意思。
  • 挂载光盘:mount -t iso9660 /dev/cdrom /media/cdrom
[root@www ~]* mount -o loop /home/loopdev /media/cdrom/
範例六:將 / 重新掛載,並加入參數為 rw 與 auto
[root@www ~]* mount -o remount,rw,auto /
  • 解压缩:
#tar -jcv -f xxx.tar.bz2 a b c ...
#tar -jcv -f xxx.tar.bz2 --exclude=/etc/* --exclude=b (排除压缩)
#tar -jt -f xxx.tar.bz2
#tar -jxv -f xxx.tar.bz2
#tar -jxv -f xxx.tar.bz2 b (解压单一文件)
[root@www ~]* tar ![pic](-j|-z) ![pic](xv) ![pic](-f建立的档名) ![pic](-C目录) <==解压缩
选项与参数:
-c :建立打包档案,可搭配-v来察看过程中被打包的档名(filename)
-t :察看打包档案的内容含有哪些档名,重点在察看『档名』就是了;
-x :解打包或解压缩的功能,可以搭配-C (大写)在特定目录解开特别留意的是, -c, -t, -x不可同时出现在一串指令列中。
-j :透过bzip2的支援进行压缩/解压缩:此时档名最好为*.tar.bz2
-z :透过gzip的支援进行压缩/解压缩:此时档名最好为*.tar.gz
-v :在压缩/解压缩的过程中,将正在处理的档名显示出来!
-f filename:-f后面要立刻接要被处理的档名! 建议-f单独写一个选项啰!
-C目录:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
其他后续练习会使用到的选项介绍:
-p :保留备份资料的原本权限与属性,常用于备份(-c)重要的设定档-P :保留绝对路径,亦即允许备份资料中含有根目录存在之意;
--exclude=FILE:在压缩的过程中,不要将FILE打包!
  • 备份:
dd if=/dev/sda of=/dev/sdb ,就能够让两颗磁碟一模一样,甚至/dev/sdb不需要分割与格式化, 因为该??指令可以将/dev/sda 内的所有资料,包括MBR 与partition table 也复制到/dev/sdb
  • 使用反单引号『指令』或『$(指令)』
双引号仍然可以保有变数的内容,但单引号内仅能是一般字元,而不会有特殊符号。
PS1 :(提示字元的设定) 如:[root@www /home/dmtsai 16:50 #12]#
$ :(关于本shell的PID)
? : (关于上个执行指令的回传值) echo $?
[root@www ~]* read ![pic](-pt) variable
选项与参数:
-p :后面可以接提示字元!
-t :后面可以接等待的『秒数! 』这个比较有趣~不会一直等待使用者啦!
loginshell与none-loginshell: 当你取得non-login shell时,该bash设定档仅会读取~/.bashrc
指令下达情况 说明
cmd1 && cmd2 1. 若cmd1 执行完毕且正确执行($?=0),则开始执行cmd2。
2. 若cmd1 执行完毕且为错误($?≠0),则cmd2 不执行。
cmd1 || cmd2 1. 若cmd1 执行完毕且正确执行($?=0),则cmd2 不执行。
2. 若cmd1 执行完毕且为错误($?≠0),则开始执行cmd2。
  • 正则部分:
<< 特殊符号 >>
grep : -n 显示行号; -i不区分大小写; -v搜索不包含指定关键字的行; --color=auto显示着色
其实![pic](list)里面不论有几个字元,他都谨代表某『一个』字元
![pic](n1-n2)列出需要截取的字元范围
\{m,n\}: 意义:连续n到m个的『前一个RE字符』
意义:若为\{n\}则是连续n个的前一个RE字符,
意义:若是\{n,\}则是连续n个以上的前一个RE字符!
  • 调整进程优先级:
nice 值可调整的范围为-20 ~ 19 ;
root 可随意调整自己或他人程序的Nice 值,且范围为-20 ~ 19 ;
一般使用者仅可调整自己程序的Nice 值,且范围仅为0 ~ 19 (避免一般用户抢占系统资源);
一般使用者仅可将nice 值越调越高,例如本来nice 为5 ,则未来仅能调整到大于5;
可使用renice命令
[root@www ~]* nice ![pic](-n数字) command
选项与参数:
-n :后面接一个数值,数值的范围-20 ~ 19。
  • fuser使用
#[root@www ~]* fuser ![pic](-umv) [-k ![pic](i) [-signal]] file/dir
选项与参数:
-u :除了程序的PID之外,同时列出该程序的拥有者;
-m :后面接的那个档名会主动的上提到该档案系统的最顶层,对umount不成功很有效!
-v :可以列出每个档案与程序还有指令的完整相关性!
-k :找出使用该档案/目录的PID ,并试图以SIGKILL这个讯号给予该PID;
-i :必须与-k配合,在删除PID之前会先询问使用者意愿!
-signal:例如-1 -15等等,若不加的话,预设是SIGKILL (-9)啰!
范例一:找出目前所在目录的使用PID/所属帐号/权限为何?
[root@www ~]* fuser -uv .
USER PID ACCESS COMMAND
.: root 20639 ..c.. (root)bash
  • rpm包管理
[root@www ~]* rpm -qa <==已安装软体
[root@www ~]* rpm -q![pic](licdR)已安装的软体名称 <==已安装软体
[root@www ~]* rpm -qf存在于系统上面的某 ??个档名 <==已安装软体
[root@www ~]* rpm -qp![pic](licdR)未安装的某个档案名称 <==查阅RPM档案
选项与参数:
查询已安装软体的资讯:
-q :仅查询,后面接的软体名称是否有安装;
-qa :列出所有的,已经安装在本机Linux系统上面的所有软体名称;
-qi :列出该软体的详细资讯(information),包含开发商、版本与说明等;
-ql :列出该软体所有的档案与目录所在完整档名(list);
-qc :列出该软体的所有设定档(找出在/etc/底下的档名而已)
-qd :列出该软体的所有说明档(找出与man有关的档案而已)
-qR :列出与该软体有关的相依软体所含的档案(Required的意思)
-qf :由后面接的档案名称,找出该档案属于哪一个已安装的软体;
查询某个RPM档案内含有的资讯:
-qp![pic](icdlR):注意-qp后面接的所有参数以上面的说明一致。 但用途仅在于找出某个RPM档案内的资讯,而非已安装的软体资讯! 注意!
  • 硬盘挂载
1) fdisk /dev/sdb
2) mke2fs /dev/sdb1
3) mount /mnt/temp /dev/sdb1