debian学习的日志
debian学习的日记
写在前边: 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里搜索到相应脚本执行;