一直在用linux,也在点点滴滴的学习,不过都不很系统。很早时朋友推荐了《鸟哥的linux私房菜》,最近看了看觉得不错。也下定决心系统的学习一下。这里记录的都是一些在基本的知识,已做记录。
1. 1BB(Brontobyte 一千亿亿亿字节) = 1024YB
1YB(Yottabyte 尧字节) = 1024ZB
1ZB(Zettabyte 泽字节) = 1024EB
1EB(Exabyte 艾字节) = 1024PB
1PB(Petabyte 拍字节) = 1024TB
1TB(Trillionbyte 太字节) = 1024GB
1GB(Gigabyte 吉字节) = 1024MB
1MB(Megabyte 兆字节) = 1024KB
1KB(Kilobyte 千字节) =1024Byte
1Byte = 8byte
2. 在Linux系统中每个装置都被当成一个目录来对待
IDE硬盘的文件名一般为为 /dev/hd[a-d], 例如:/dev/hda, /dev/hdb.....
SCSI/SATA/USB硬盘的文件名一般为为 /dev/sd[a-p]
软驱为 /dev/fd[0-1]
打印机 串口 /dev/lp[0-2],USB口 /dev/usb/lp[0-15]
鼠标 PS2口 /dev/psaux,USB口 /dev/usb/mouse[0-15]
DVDROM /dev/cdrom
磁带机 SCSI接口 /dev/st0
网络卡 /dev/eth[0-n]
3. 硬盘分区表大小为64byte,最多只能支持4个主分区, 或3个主分区和1个扩展分区,扩展分区只能有一个。
4. 在Linux系统中,IDE硬盘最多有59个逻辑分区(5-63), SATA硬盘最多有11个逻辑分区(5-11)
5. 硬盘的第一个扇区记录了两个重要信息:
1) 主启动记录去(MBR):可以安装开机管理程序的地方,有446bytes;
2) 分区表(Partition Table):记录整个硬盘的状态,有64bytes。
6. 开机流程:BIOS-->MBR-->Boot Loader -->操作系统
7. Boot Loader的主要功能是提供开机选单,加载核心,转交控制权给其他的loader。boot loader可以安装到MBR或Boot Sector
8. 在笔记本安装linux时无法正常安装,可以尝试在安装的时候使用命令行安装,告诉linux核心不加载一些针对台式机和服务器的特殊功能:
boot: linux nofb apm=off acpi=off pci=noacpi
其中:apm(Advanced Power Management)是早期的电源管理模块,acpi(Advanced Configuration and Power Interface)是近期的电源管理模块,某些笔记本可能不能支持这些功能;nofb是显卡上面的缓冲存储器侦测,笔记本如果说是自带显卡可能检测不到这个模块;
9. 关于kdump:kdump的功能是当linux核心出现错误的时候,将内存中的信息写入日志,为日后查找问题提供依据。不过kdump会占用大量的硬盘空间,并且日志的内容不是一般使用者能够看懂的,建议不是核心开发人员不用启动kdump功能。
10. 在X windows中使用 [Ctrl]+[Alt]+[Backspace]重启X Windows。
11. [Ctrl]+[Alt]+[F1]~[F7]来切换终端窗口,其中:
[Ctrl]+[Alt]+[F1]~[F6] 文字窗口 tty1~tty6
[Ctrl]+[Alt]+[F7] X Windows图形窗口
12. 使用Man命令后,被查询命令后【】中数字的意义:
1-用户在shell环境中可以操作的指令或可执行文件
2-系统核心可调用的函数和工具等
3-函数(function)、函数库(library)、大部分为C的函数库(libc)
4-设备文件的说明,通常在/dev下的文件
5-配置问价暖和是某些文件的格式
6-游戏
7-惯例与协议等,例如linux文件系统、网络协议、ASCII Code等的说明
8-系统管理员可用的惯例指令
9-跟kernel有关的文件
13. 查看系统使用情况:
谁在线操作 who
网络的联机状态 netstat -a
查看后台执行程序 ps- aux
14. 关机前建议执行sync命令进行磁盘回写。
15. 关机和重启
关机和重启的常用命令 shutdown, init, halt, poweroff, reboot
shutdown -t sec 几秒钟后关机,如加now为立即关机
shutdown -k 不真的关机,只是发送警告信息
shutdown -h 将系统的服务停止后,立即关机
shutdown -c 取消关机的操作
shutdown -r 将系统的服务停止后,立即重启
例子:
shutdown - h now 立即关机
shutdown - t 10 10秒后关机
shutdown -h 17:50 当天17:50关机,如在当天17:50后下达命令,将于第二天17:50关机
shutdown -k 'The system will reboot' 发送警告信息,但不关机
init 0 关机
init 3 文字模式
init 5 图形模式
init 6 重启
reboot 重启
16. 建议单独划分分区的目录
/
/boot
/usr
/home
/var
17. 找回root密码
重启系统,读秒时按任意键;进入开机菜单,按e键进入GRUB编辑模式,选择“kernel /vmlinuz-2.6.32-220.e16.x86_64 or root=UUID=XXXXXXX”这一行,按e键进入编辑模式,在最后面输入single,回车确认后按b键重启,重启后就进入了单用户模式,这是可以使用passwd命令重新设置root密码。
18. 关于文档
使用list命令查看文档,屏幕显示分为7部分,1-权限 2-连接 3-拥有者 4-组 5-文档大小 6-修改日期 7-文档名
权限是由10个字符表示 ,其中:
第一个字符代表文档类型,其中[d]为目录, [-]为文档, [l]为连接文档(link file), [b]为可供存储的接口设备,[c]为串口设备,例如鼠标、键盘
后面三组,三个字符为一组,为[rwx]三个参数组合,其中[r]代表可读(read),[w]代表可写(write),[x]代表可执行(execute),位置不会改变,如果没有权限为[-]
第一组为[拥有者的权限], 第二组为[同组的权限],第三组为[其他非同组的权限]
chgrp 更改所属组, chown 更改文档所有者,chmod 更改文档权限。
使用chmod改变权限时,可以使用数字方式,r:4 w:2 x:1,每种身份(owner/group/other)各自的三个权限累加,例如: chmod 770 filename 就是修改为-rwxrwx---的权限, chmod 754 filename 就是修改为-rwxr-xr--的权限。
也可以使用符号方式,u代表user,g代表group,o代表other, a代表所有,例如:chmod ug=rwx,o-rwx filename就是修改为-rwxrwx---的权限, chmod a+x filename就是为每个身份添加可执行的权限。
19. 关于目录
使用list命令查看目录,权限第一个字符为[d],其中[r]代表可读取目录结构列表,[w]代表可改动目录结构列表,例如建立删除新的文档和目录、对文档和目录改名、移动文档或目录,[x]代表此目录是工作目录(work directory),可以进入此目录进行操作。
目录的分类,linux目录的配置一般遵循FHS(Filesystem Hierarchy Standard)标准,分为四种交互作用的形态:
1. 不可变动的(static) - 可分享的(shareable):/usr(软件放置处) /opt(配置文件)
2. 不可变动的(static) - 不可分享(unshareable):/etc(配置文件) /boot(开机与核心档)
3. 可变动的(variable) - 可分享的(shareable):/var/mail(使用者邮件信箱) /var/spool(新闻组)
4. 可变动的(variable) - 不可分享(unshareable): /var/run(程序相关) /var/lock(程序相关)
FHS标准中定义的目录: /和/root - 开机系统有关
/usr (unix software resource) - 与软件安装/执行有关
/var (variable) - 与系统运作过程有关
必须与根目录一起放置的目录: /etc:配置文件
/bin:重要执行文件
/dev:所需要的装置目录
/lib:执行文档所需的函数库与核心所需要的模块
/sbin:重要的系统执行文件
20. 创建多级目录: mkdir -p /home/user1/test/dir1
预设目录权限:mdsir -m 711 赋予新目录drwx--x--x的权限
21. cp -a 可以复制原文件的权限和所有者
cp -l 硬链接
cp -s 软连接
cp -u 目的文件与原文件有差异时才复制,常用在备份工作。
22. 文档的三个变动时间
atime - access time 文档内容被取用,如使用cat读取文档,此时间变更
ctime - status time 权限或属性被修改后,此时间变更
mtime - modification time 修改文档的内容后,此时间变更
touch filename 如文档不存在,建立一个空档案;如存在,此时atime/ctime/mtime都会更新为当前时间。
touch -a 仅修订atime
touch -c 仅ctime,如文档不存在则不建立新文档
touch -m 仅修改mtime
touch -t 可以修改任意制定时间,格式为[YYMMDDhhmm]
23. cat 由第一行开始显示文档内容
tac 由最后一行开始显示文档内容
nl 显示的时候顺道输出行号
more 一页一页的显示文档内容
less 可前后翻页的显示文档内容
head 只看都几行
tail 只看最后几行
od 以二级制方式读取文档
24. 文件及目录的默认权限 umask
直接输入umask会显示数字形式的权限设置,例如0022,其中第一个0为特殊权限(4-SUID, 2-SGID,1-SBIT),后三个数字代表【文件或目录默认值需要减掉的权限】,文件的默认值为666 (-rw-rw-rw),即没有可执行的权限,目录的默认值为777(drwxrwxrwx)。
因为r,w,x分别为4,2,1分,022代表拥有着保留了所有权限、同组使用者去掉了写的权限,其他人去掉了写的权限,
即,建立文件: (-rw-rw-rw-) - (-----w--w-) ==> -rw-r--r--
建立目录: (drwxrwxrwx) - (d----w--w) ==> d-rwxr-xr-x
25. 配置文件隐藏属性 chattr
chattr -a 文件只能增加数据,不能删除和修改,只有root才能设定此权限
chattr -i 不能删除、改名、设定连接
26. 查看文件隐藏属性 lsatrr
lsattr -a:查看隐藏文件的属性
lsattr -d:如果是目录,也列出目录本身的属性而非目录内的文件名
lsattr -R:连同子目录的数据也列出来
27. 观察文件类型 file
28. 搜索文件和命令
which -a 列出由PATH目录中可以找出的指令
whereis, locate 搜索数据库,速度较快,可使用updatedb命令更新数据库
find 直接搜索硬盘,速度较慢,其中:
find -mtime n: n为数字,n天前被改动的文件
find -mtime +n:列出n天前(不含n天本身)被改动的文件
find -mtime -n:列出n天内(含n天本身)被改动的文件
fiind -newer file:file为一个存在的文件,列出比file还要新的文件名
29. fdisk不支持大于2TB的分区,如果想使用大于2TB的分区需要使用parted命令
30. 磁盘检查: fsck, badlocks
建议在单用户模式使用fsck,执行fsck时被挂接的分区需要在卸除的状态。
badlocks用于检查硬盘是否有坏道的指令,大多时部使用这个指令。
31. 硬盘的挂接与卸载
1) 单一文件系统不应该被重复挂接在不同的挂载点(目录)中
2) 单一目录不应该重复挂载多个文件系统
3) 要作为挂载点的目录,理论上应该是空白目录,挂载后原数据暂时被隐藏
挂载:mount 设备名 挂载点名, 例如 mount /dev/hdc6 /mnt/hdc6
mount -t 制定挂载设备类型,类型列表了查询/etc/filesystems;同时/proc/filesystems可以查询已经加载的文件系统类型
mount --bind 挂载一个目录到另外一个目录
重新挂载根目录: mount -o remount,rw,auto /
重新挂载根目录并且赋予读写的权限,一般使用在当根目录只读时,或进入单用户模式时。
使用label名称挂载:dumpe2fs -h 设备名, 找出设备的label名,然后使用mount -L "label name" 挂载点名
卸载:umount [设备名|挂接点名] 卸载时可以使用设备名或者挂接点的目录名,但如果挂接的是目录,必须用挂接点名称
开机自动挂载:/etc/fstab 及 /etc/mtab
根目录是必须挂载的,而且一定要先于其他mount point被挂载进来;
其他mount point必须为已建立的目录,可任意指定
所有mount point在同一时间内,只能挂载一次
所有parition在同一时间内,只能挂载一次
如进行卸载,必须先将工作目录移到mount point之外
32. 创建ISO镜像文件 mkisofs
mkisofs -r -v -0 iso文件名 目录名/文件名
33. 关于bash
观察所有变量 set
自定义变量变为环境变量 export - 为了能让父进程中自定义的变量也能在子进程中使用,需要把自定义变量改变为环境换量: export 变量名
语言变量 locale
34. 设置IP、网关、DNS
IP 修改/etc/sysconfig/network-scripts/ifcfg-eth0
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #描述网卡对应的设备别名
BOOTPROTO=static #设置网卡获得ip地址的方式,选项可以为为static,dhcp或bootp
BROADCAST=192.168.1.255 #对应的子网广播地址
HWADDR=00:07:E9:05:E8:B4 #对应的网卡物理地址
IPADDR=12.168.1.80 #只有网卡设置成static时,才需要此字段
NETMASK=255.255.255.0 #网卡对应的网络掩码
NETWORK=192.168.1.0 #网卡对应的网络地址,也就是所属的网段
ONBOOT=yes #系统启动时是否设置此网络接口,设置为yes时,系统启动时激活此设备
网关修改/etc/sysconfig/network
# vi /etc/sysconfig/network
NETWORKING=yes #表示系统是否使用网络,一般设置为yes。如果设为no,则不能使用网络。
HOSTNAME=centos #设置本机的主机名,这里设置的主机名要和/etc/hosts中设置的主机名对应/etc/sysconfig/network
GATEWAY=192.168.1.1 #设置本机连接的网关的IP地址。
DNS修改/etc/resolv.conf
# vi /etc/resolv.conf
nameserver 202.106.0.20.8.8.8 #域名服务器
nameserver 192.168.1.1 #域名服务器
35. 关闭IPv4防火墙
观察IPv4防火墙状态 /etc/init.d/iptables status
本次关闭IPv4防火墙 /etc/init.d/iptables stop
重启IPv4防火墙 /etc/init.d/iptables restart
关闭 防火墙外 chkconfig --level 35 iptables off
开放制定端口 /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 开放访问的80端口
设置防火墙的开放端口及规则 vi /etc/sysconfig/iptables