1.1 Linux 认证
国外对职业资格要求认证的比较严格,国内,不表示你没有证你就不可以从事LINUX工作,而且鼓动你去考证的通常是一些教育培训机构,要知道考一个证书,你就要参加培训,学习一些通过技巧,花费一定的大洋(通常都是好几百美元)。在Linux系统管理员这块通常有如下一些证书,可以尝试考取,不用都考。没有也没关系,有了也不一定就牛。
其中Linux+于2001年9月21日由CompTIA推出,通常认为是技术性认证,主要涵盖硬件及系统方面的维护。只需要一场考试。适用于初级入门者。
LPI针对高级管理者,目前是LPIC-1,需要考两门,需要掌握大部分LINUX知识点。
LCP同LPI类似,需要考四门,但目前国内基本不认可。
RHCE,目前国内最认可的认证。考试需要一天时间,目前在北京、上海、广州有授权培训中心,适用至少1到2年的系统管理员,非入门级别,实践性要求非常高。RHCE也分两个级别:专家级和标准级。
1.2 Linux系统启动
Linux系统是一个操作系统,基本的计算机启动过程是一样的,首先读取BIOS,接着读取MBR中的BOOT Loader。后面根据不同的操作系统的要求,进行系统初始化。
从上图可以看常见的LINUX(这里指标准LINUX)的启动过程如下:
【1】加载BIOS的硬件信息,执行BIOS内置程序
【2】读取MBR(Master Boot Record)中Boot Loader中的引导信息
【3】加载内核Kernel boot到内存中
【4】内核开始执行/sbin/init,并加载/etc/inittab执行rc.sysinit
【5】启动核心的外挂模块/etc/modules.conf
【6】按照启动级别执行/etc/rc.d/下运行脚本
【7】执行/bin/login程序
【8】登陆后(以SHELL登陆或者Xwindows)管理主机
Linux登陆有两种,一种是XWINDOWS登陆,另一种是Shell登陆。前一种登陆方式通常是用VNC,后一种通常是telnet/SSH
VNC 通过窗口登陆
LINUX系统分成6个系统启动级别,可以用init 2/3/5/6来进行级别切换,查看系统运行级别可以查看/etc/inittab
如果想要看系统启动过程发生的动作,可以使用dmesg 来查看,或者vi打开/var/log/dmesg进行查看,分析LINUX启动问题。
通常管理系统需要注意/etc/inittab,/etc/grub.conf,/etc/rc.d/rc(123456).d/S*.sh.如果需要增加一些自己的启动应用可以放在rc.local或者rc(123456).d中
1.3用户与组
linux可以是单用户单任务运行,也可以是多任务多用户执行,这是由不同的运行级别来决定的,多用户下,用户管理分成组和用户。
用户的密码与账号存储在/etc/passwd和/etc/shadow中,组的账号也是一样,/etc/group和/etc/gshadow中。
用户查看可用命令WHO,ID,FINGER, 其中who 主要用于查看当前线上的用户情况。具体选项可参见MAN手册。
另外还可以用ID和finger来查看用户的组及ID 等系统的详细信息
用户创建与删除命令useradd/userdel,组创建删除 groupadd/groupdel,用户与组后面修改分别用usermod 和groupmod进行用户属性修改。
密码修改用password。用户切换su,如果加上-表明以切换用户的环境变量工作。
1.4文件系统
linux文件系统与WINDOW最大的区别就是文件在前,分区在后,文件上可以挂载不同的分区。比喻说/var/log可以挂hd5也可以挂hd3。同时文件名称也区分大小写。
还有一点不同的就是LINUX以“/”,而windows以“\”,作为文件间隔符。Linux文件路径以/开始,windows以硬盘盘符c:\\开始。
linux 文件系统是按块分配的文件系统,系统使用meta-data记录文件的相关系统,通常也称之为inode索引节点,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。
Linux文件系统通常有是不同的硬盘分区采用不同的文件系统,常见的文件系统是EXT2,EXT3,SWAP等。
创建文件系统用mkfs –t 文件系统 存储设备 检查文件fsck 挂载文件系统 mount –t 文件系统 设备 目录
在Linux中所有东西都称之为文件,按文件又分为普通文件、管道文件、块文件、链接文件等。可以通过文件权限的第一个字母进行标识:
-:一般文件
d:目录文件
b:块设备文件
c:字符设备文件
l:链接文件
p:人工管道
对文件权限又分为两种,普通文件权限如UGO分为RWX,对一些特殊文件权限分为SET UID、SETGID、SIGBIG等权限。
文件权限分成三类用户,一个是当前用户的创建者(拥有者),一个是当前用户所在组,最后一个就是其它用户,每种用户有读写执行三种权限。可以用chmod进行权限修改,可以用chown修改文件的拥有者。
每一个文件都有一个拥有者,文件的拥有者可以改变文件的权限,root用户可以用chown改变文件的拥有者。如果不想将一个文件拷贝到不同目录,可以使用ln (-s) 源文件 新文件名 对文件进行软链接或者硬链。
1.5LINUX计划任务
所谓计划任务指的是能够自动在指定时间执行某个任务, 在Linux中默认有四种支持方式,AT,CRON,anacron及Tmpwatch
at 和batch通常用来在指定时间运行一个任务。cron是有一个指定的时间表,每到这个时间表中列出的时间就运行一个任务。
1.6 X WINDOWS
当前一些配置基本上都可以启动X window,老的显卡可能会有一些问题。
1.7 常用Shell命令:
- cat 察看文件内容
- more 逐屏查看文件内容
- less 逐行查看文件内容,可以回看
- clock time date cal 查看日期及日历
- du/df 查看磁盘和文件目录大小
- head/tail 显示文件前十行内容,分别是头和尾部
- su - 切换用户(完全切换) lastb (last bad)显示登陆不成功用户
- 重起 reboot / shutdown –r now / init 6
- 关机 halt / showdown –h now / poweroff /init 0
- ls cp rmdir mkdir 文件列表拷贝删除目录创建目录等命令
- ls 显示当前目录下的文件 –a 显示当前目录下所有文件包括隐含文件 –l 显示当前目录下文件的详细信息
- dir 显示当前目录下的文件,不带颜色
- pwd在屏幕显示当前的工作目录
- stat 显示文件的相关信息,包括修改时间,创建时间等
- uname 显示操作系统信息 hostname 显示主机名称 dmesg 显示系统最后一次启动时内核的内部缓存信息
- free 显示当前内存和交换分区的使用情况 locale显示系统的语言设置
- cat /etc/issue 显示当前系统的发行版本 cat /proc/cpuinfo 显示CPU的相关信息 cat /proc/interrupts 显示系统中正在使用的中断号 cat /proc/filesystems 显示当前正在使用的文件系统类型
- sysctl –a 显示系统中可以设置的内核参数 lsmod显示目前已加载的内核模块
- uptime显示系统自上次启动到现在运行时间
- top 动态显示当前系统中消耗资源最多的进程 pstree 将所进程以树的方式显示,-a 显示进程完整的指令及参数 –p 显示进程号 -h 高亮显示当前进程和父进程
- history 用于保存最近执行的命令,mesg用于设置是否允许其它用户向自己发送信息。
- ps 监测进程的工作信息,ps –aux ps –elF -e显示所有进程 –u 显示用户UID, –A 显示所有进程 –l 长格式输出 –f 全格式-w 宽格式输出。
- killall kill用来杀死进程 可以-9强制杀死。 killall后面可以跟上进程名称。否则使用进程ID号。
- mkbootdisk创建系统启动盘 –device devicefile 默认/dev/fd0 在设备文件中创建启动镜像。 –noprompt 使用软盘制作启动盘。 --iso 制作ISO启动盘
- clear 清屏并把光标移到在上角。 reboot重启 shutdow 把内存中数据写回硬盘并关闭系统 shutdown –r now 重起 shutdown –h now 关闭系统 sync 将内存中数据写入磁盘. halt 关闭系统 exit 退出并关闭命令行终端
- &可将一个程序运行在后台,可以使用jobs为查看这个后台程序,可以使用fg 让后台变前台
- chattr 是ext2和ext3文件系统中特有的安全机制,用于设置一个文件的immutable属性,也就i属性 chattr +i file lsattr 显示文件的i属性
- wc 统计文本文件中的行、单词和字符数目 –l 显示文件的行数 -w显示文件中包含的单词数据 -显示文件中包含的字符数
[root@windriver-machine ~]# cat /etc/issue
Fedora release 7 (Moonshine)
Kernel \r on an \m
[root@windriver-machine ~]# cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Xeon(R) CPU E3110 @ 3.00GHz
stepping : 10
cpu MHz : 2000.000
cache size : 6144 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr lahf_lm
bogomips : 6003.02
clflush size : 64
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Xeon(R) CPU E3110 @ 3.00GHz
stepping : 10
cpu MHz : 2000.000
cache size : 6144 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr lahf_lm
bogomips : 5999.96
clflush size : 64
[root@windriver-machine ~]# cat /proc/interrupts
CPU0 CPU1
0: 292 4548 IO-APIC-edge timer
1: 1 1 IO-APIC-edge i8042
6: 1 1 IO-APIC-edge floppy
8: 2 1 IO-APIC-edge rtc
9: 0 0 IO-APIC-fasteoi acpi
16: 16 294229 IO-APIC-fasteoi uhci_hcd:usb1, ehci_hcd:usb4, eth0
17: 2917187 4659 IO-APIC-fasteoi uhci_hcd:usb2, ioc0, libata, libata
18: 0 0 IO-APIC-fasteoi uhci_hcd:usb3
NMI: 0 0
LOC: 98998796 44602201
ERR: 0
MIS: 0
[root@windriver-machine ~]# cat /proc/filesystems
nodev sysfs
nodev rootfs
nodev bdev
nodev proc
nodev cpuset
nodev binfmt_misc
nodev debugfs
nodev securityfs
nodev sockfs
nodev usbfs
nodev pipefs
nodev futexfs
nodev tmpfs
nodev inotifyfs
nodev eventpollfs
nodev devpts
nodev ramfs
nodev hugetlbfs
iso9660
nodev mqueue
ext3
nodev rpc_pipefs
nodev autofs
[root@windriver-machine ~]# jobs
[root@windriver-machine ~]# fg
-bash: fg: current: no such job
[root@windriver-machine ~]# ls
anaconda-ks.cfg dead.letter install.log install.log.syslog linux-3.0.tar.gz mbox
[root@windriver-machine ~]# vim install.log &
[1] 26963
[root@windriver-machine ~]# jobs
[1]+ Stopped vim install.log
[root@windriver-machine ~]# fg
vim install.log
[root@windriver-machine ~]# lsattr install.log
------------- install.log
[root@windriver-machine ~]# chattr +i install.log
[root@windriver-machine ~]# vi install.log
[root@windriver-machine ~]# lsattr install.log
----i-------- install.log
[root@windriver-machine ~]# chattr -i install.log
[root@windriver-machine ~]# lsattr install.log
------------- install.log