写在前边:
NU/linux的结构:用户层(界面,shell)到内核层(包括用户空间,系统空间 层)到硬件层。构建了一个安全,快速
,多用户的操作系统。有高人说:没有 linux就没有互联网。
linux上积累的许多简洁优雅的设计原则值得我们持久学习(可见《UNIX编程艺 
术》 一书); linux是崇尚自由的,其中以发布版debian为代表


第一节
debian启动顺序:
  1.加载BIOS的硬件信息  2.读取MBR(grub)开机信息 3.加载kernel操作系统核心 4.kernel执行init程序并读取
run-level信息 4.启动核心的外挂模块(module,比如驱动程序) 5.init执行/etc/rc?.d下的脚本(demon) ;
6.rc.local(用户要在系统执行完运行级别的程序后,执行的脚本,比如如果作为一台web服务器要开机执行apache)
/boot/grub/menu.list :这里配置grub启动的kernel和默认启动的运行级别;
备注:linux默认有6个运行级别:(/etc/inittab中定义);
Runlevel 0 is halt.
Runlevel 1 is single-user.(安全模式)
Runlevels 2-5 are multi-user.
Runlevel 6 is reboot.

第二章
debian的目录结构,所谓linux一切都基于文件的,有必要先了解下目录结构:
/boot 放置linux核心与开机相关文件的地方,这个目录下的vmlinuz-xxx就是linux的kernel喽,grub就是从这里
加载kernel的
/bin  放置:ls,mv,rm,mkdir,rmdir,gzip,tar,telnet,等等命令的地方,
/dev  放置设备有关的文件。linux系统均把设备当成文件来看待,例如/dev/sda1代表硬盘;/dev/cdrom代表光盘;
要开机自动挂在设备到目录上的配置在/etc/fstab中配置
/etc  系统在开机过程中需要读取的档案均在这个目录中,例如:用户配置文件:/etc/passwd;
网络配置文件:/etc/network/interface等
/etc/rc?.d 开机init执行的demon程序脚本。rc+($runlevel).d 命名;
/etc/X11 x-windows有关的设定放在这里,尤其是xorg.conf配置(存放X-server运行的设备配置);
/home 系统预设的使用者的家目录;(在/etc/passwd里配置)
/lib 在linux执行或者编译一些程序的时候,均会使用到一些函数库(library);
/proc 系统核心和执行程序的一些信息,这个目录在系统启动时自动挂在上,里边的数据都是来自内存,不会占用磁盘
空间,例如查看cpu信息(less cpuinfo)
/sbin 放置一些系统管理常用的程序;如:fdisk,mke2fs,mount等;
/usr  里边放置程序和指令;例示windows的programfiles 目录。
/usr/bin 放置可执行程序;
/usr/sbin 放置管理之使用的程序;和/sbin例示
/var 存放所有服务的登录文件和错误信息文件(log file)都在/var/log里。

设备的挂载规划:
linux的分区和目录结构挂在不同的分区都需要根据机器的用途进行规划;大家可以df命令看看我们线上机器的设备规划;
另外可以利用quota工具来给用户划分硬盘使用空间大小;

第三章
认识x-server ,x-client,window manager:
X只是一种协议,可以通过网络通信,基于tcp/ip协议的;是X-server和X-client通讯的协议。X-server的实现就是
XFree86,主要功能就是管理linux主机上的显示的硬件设备于驱动程序,例如:显示卡,屏幕分辨率,键盘鼠标等等。
X-client:X server主要的功能只是在管理显示的驱动程序与硬件,但是在整个屏幕前面显示给使用者,并且经由使
用者移动鼠标也好、键盘也好,来启动一些『事件』的动作,以响应给X server,并进一步处理一些信息,则是需要
一些X的软件来进行,这些关于X的软件,我们就可以称为是X client啰!反正,只要是关于一些窗口的行为、显示在屏幕
的行为等等,使用者都是透过X client来告诉X server的啦
window manager:也是一个x-client,主要是作为x-client跟x-server的接口。比如:kde,gnome;
通俗的说:用户面前使用的机器上安装X-server(负责显示,和client发送接受相应),原端机器上安装x-client应用程
序(负责计算)
常用的配置命令:
重新设置默认启动的窗口管理器:update-alternatives --config x-window-manager;
update-alternatives --config x-session-manager
重新设置默认浏览器update-alternatives --config x-www-browser
查看系统启动进程的配置文件:
系统默认启动的终端为7个:前6个为字符终端(通过ctrl+shift+f1--6切换),第七个终端为x-windows;
从/etc/inittab中可以配置;

第四章
网络设定
常用网络命令:
ifconfig :设定查看网络参数的指令
ifup,ifdown:启动和关闭某个网卡
route :显示和修改路由表指令
traceroute:调查连接到某部主机时,每个节点的联机速度 (非常有用,查看我们的网络数据包在那个路由节点卡住了)
ping:传送一个 ICMP 封包给某部主机
netstat:查看本机网络服务信息
host:显示主机名称和nslookup一样
nslookup:查看主机名称对应的ip(从dns查询:根据/etc/resolv.conf中的DNS来侦测)

例如:设定网卡eth0的ip,netmask,broadcast命令:
ifconfig eth0 192.168.0.2 netmask 255.255.255.0 broadcast 192.168.0.255
查看网卡信息:ifconfig eth0
关闭eth0网卡:ifdown eth0;或者ifconfig eth0 down
开启eth0网卡:ifconfig eth0 up 或者ifup eth0
增加一个路由:route add -net 192.168.0.0 netmask 255.255.255.0 dev eth0
删除一个路由:route del -net 192.168.0.0 netmask 255.255.255.0 dev eth0 
增加一个网关默认路由:route add default gw 192.168.1.0
显示LISTEN(监听状态)以及tcp与udp的联机状态服务:netstat -tul
网络配置文件:
/etc/network/interfaces:配置ip,netmask,broadcast,网关等信息,
开机时:/etc/init.d/networking start会读取这个配置来启动网络连接;
/etc/resolv.conf 用来配置DNS;
/etc/hosts 用来配置ip和主机的对应关系;
/etc/services :
/etc/hosts.allow和/etc/hosts.deny

总结:我们公司内网使用dhcp动态分配网络;和802.1验证的。所以需要安装dhcp-client。
wpa_supplicant来验证(当时折腾了好久才搞定验证);
我的interface文件配置如下:
auto lo eth0
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
pre-up wpa_supplicant -B -Dwired -i eth0 -c /etc/wpa_supplicant/wired_connection.conf &> /dev/null 
#连接以前先验证
wired_connection.conf配置如下:
ap_scan=0
ctrl_interface=/var/run/wpa_supplicant
network={
	proto=WPA
	key_mgmt=IEEE8021X
	pairwise=TKIP
	group=TKIP
	eap=PEAP
        eapol_flags=0
	identity="hz\zhaopeng.xuzp"
	password="pass"
	phase1="peaplabel=0"
	phase2="auth=MSCHAPV2"
}


第五章
环境变量
/etc/profile 全局配置变量;
~/.bash_profile 用话家目录下的登录到sh时执行的;
~/.bashrc 没启动一个新sh,启动的变量
~/.bash_history  sh 历史命令配置文件
./bash_logout 登出时执行的sh


第六章
软件管理(aptitude)
大家都知道linux发布版多种多样,redhat用rpm来管理软件包。ubuntu是基于debian的都是用apt来管理软件包的;这里介绍apt:
命令行方式:
安装软件: apt-get install package-name
删除: apt-get remove packageName
彻底删除(包括配置): apt-get purge packageName
更新软件包列表: apt-get update packageName (修改过/etc/apt/source.list软件源后)
升级软件: apt-get upgrade 
查找软件包信息: apt-cache showpkg packageName
字符方式:
aptitude软件;(建议一直使用,因为会建立缓存,使用的方式不同会缓存不一致)
图形界面新立得软件包管理器;

第七章
帐号管理
相关命令:groupadd,groupdel,useradd,userdel;passwd,su,sudo,visudo;
useradd命令:变更的配置文件包括:/etc/passwd,/etc/shadow,/etc/group;/etc/gshadow;
/etc/default/useradd和/etc/login.defs配置命令执行时的默认配置:比如默认建立的家目录/home;
默认启动sh:/bin/sh
id,finger都可以查看用户的详细信息;

手工建立用户的过程如下:(模拟命令groupadd,useradd的过程)
1.先建立群组:vi /etc/group
2.建立帐号属性:vi /etc/passwd
3.将passwd和shadow同步:psconv
4.建立帐号密码: passwd username
5.建立user家目录:cp -r /etc/skel /home/usernama
6.更改家目录属性 : chown -R username:passwd /home/username;


待续:
第八章
进程和资源管理

第九章
shell编程
shell编程的学习把握2个字:“替换”,我们执行的命令都通过环境变量$PATH里搜索到相应脚本执行;