Linux启动过程概述
过程:1)BIOS自检(无论哪个操作系统都会执行该步骤)
2)启动GRUB/LILO
3)运行Linux内核并检测硬件
4)运行系统的第一个进程init
5)init进程读取系统引导配置文件/ect/inittab中的信息进行初始化
6)/etc/rc.d/rc.sysinit 系统初始化脚本(这是一个很强大的文件,涉及到Linux内核,如果能读懂这个文件,将会很牛逼)
7)/ect/rc.d/rcX.d/[KS]* - 根据运行级别X配置服务。终止以'K'开头的服务,启动以'S'开头的服务
8)/etc/rc.d/rc.local 执行本地特殊配置
9)其它特殊服务
Linux中的进程和线程
进程概念:正在执行的程序,每一个进程都会被分配一个ID号
线程特点:1)轻量级的进程
2)进程有独立的地址空间,线程没有
3)线程不能独立存在,它是由进程创建的。Linux-->fork,Windows-->Thread
4)相对讲,线程耗费的CPU和内存,小于,进程
查看进程 | |
---|---|
ps -a | 显示当前终端的所有进程信息 |
ps -u | 以用户的格式显示进程信息 |
ps -x | 显示后台进程运行的参数 PID:进程识别号 TTY:终端机号 TIME:此进程所耗CPU的时间 COMMAND:正在执行的命令或进程名 |
终止进程 | |
kill PID | 干掉指定PID的进程 |
killall | 慎用:干掉该进程及其所有的子进程 |
kill -9 1777 | 强制干掉PID为1777进程 |
top命令 | |
top | 该命令执行后,会在终端显示类似如下的信息 14:06:22 up 4 min, 1 user, load avcrage:0.02, 0.12, 0.07 37 processes; 36 sleeping, 1 running, 0 zombie, 0 stopped CPU states: 0.0% user 0.1% system 0.0% nice 0.0% iowait 99.8% idle Mem: 255264k av, 39428k used, 215836k free, 0k shrd, 5528k buff 30632k actv, 140k in_d, 292k in_c Swap: 257832k av, 0k used, 257832k free, 19376k cached //当前的系统时间为14:06:22。系统启动已启动了4分钟。当前已有一个用户登录到Linux //load avcrage:系统负载情况。值越小系统越轻松。当三个数的和除以3,大于0.6时,说明系统资源很紧张了 //zombie:僵尸进程。指某进程异常终止,但由于某种原因未通知其父进程,此时该进程所占用的CPU和内存不会被系统回收 //idle:当前有99.8%的CPU处于闲置状态 //255264k av:内存的总大小为256MB //257832k av:虚拟内存的大小 |
top -d 10 | 指定系统更新进程的时间为10s |
top [u] | 监视特定用户:输入top命令后列出所执行的进程,再输入'u'回车,输入用户名即可。按'q'会退出top显示列表 |
top [k] | 终止特定进程:输入top命令后列出所执行的进程,然后输入'k'回车,再输入要结束的进程ID号 |
系统日期 | |
date | 直接在终端输入'date'命令后,即可查看系统时间 |
date MMDDHHMMCCYY.SS | 利用'date'命令更改系统时间,后面跟'月月日日时时分分年年年年.秒秒' |
cal 3 2012 | 查看2012年03月的月历 |
cal 2012 | 查看2012年的年历 |
网络状态 | |
netstat | 显示整个系统目前的网络情况。例如目前的连接、数据包传递数据、路由表内容等 |
netstat -anp | 显示内容如tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 1840/java 这说明当前8080端口已被监听,监听该端口的进程ID号为1840,那么使用kill -9 1840命令即可干掉该进程 |
ping | 检测主机连接。主要检测远程主机是否正常、两部主机间的介质是否断开、网线是否脱落、网卡故障等 |
traceroute | 检测数据包在网络上传输的过程,即从本机到远程的主机完整路径。用法如 traceroute www.sohu.com |
route | 查看本机路由的情况。路由是指数据由来源网络送往目的地网络的操作 大型网络中的路由是非常复杂的,因为数据包在抵达目的地时,可能经过的节点有很多 路由表是存储在路由器或一些其它链接设置上的窗体,记录了到指定目的地的网络路径,及路径的相关数值 |
任务调度
概述:系统在某个时间执行的特定的命令或程序。系统中的/etc/crontab文件指的就是任务调度文件
分类:系统工作:有些重要的工作必须周而复始地执行,如病毒扫描等
个别工作:个别用户可能希望执行某个程序
使用:1)设置任务: crontab -e
终止任务: crontab -r
列出当前的任务调度: crontab -l
2)分配任务:进入INSERT模式后,输入 0 2 * * * date >> /home/mydate11 ,即每天02:00将系统时间追加到mydate11文件中
3)保存退出: :wq 。若提示 crontab: installing new crontab 则表示定时调度任务分配完毕,它会在指定时间执行指定任务
调度多个任务:第一种方式:在[crontab -e]中直接换行写第二个任务
第二种方式:把所有的任务,写入到一个可执行(shell编程)文件中
1)vi mytask.sh
2)[date >> /home/mydate22] [cp /home/mydate22 /root] //这里定义了两个任务到mytask.sh中了
3)chmod 744 mytask.sh //默认的mytask.sh是没有x权限的,所以这里为该文件设定可执行的权限
4)crontab -e
5)进入INSERT模式后,输入 0 2 * * * /root/mytask.sh 命令,即可
调度文件的规则:如下表所示
字段名称 | 说明 | 范围 |
---|---|---|
分钟 | 每小时中的第几分钟执行 | 0----59 |
小时 | 每日的第几个小时执行 | 0----23 |
日期 | 每月的第几天执行 | 1----31 |
月历 | 每年的第几月执行 | 1----12 |
星期 | 每周的第几天执行 | 0----6 |
命令名称 | 欲执行的命令名称及其参数 |
网络环境配置
第一种方法:1)修改/etc/sysconfig/network-scripts/ifcfg-eth0文件
2)再运行 /etc/rc.d/init.d/network restart 命令,使网卡配置生效
3)说明:老程序员比较喜欢这种最底层的方法,也说明Linux的所有设备都是文件
这里eth0代表第一块网卡,这个名字可以在 ifcfg-eth0 文件里面随便改
第二种方法:1)用root运行 setup 命令,进入 text mode setup utiliy进行配置网络
2)再运行 /etc/rc.d/init.d/network restart 命令,使网卡配置生效
3)说明:这里会进入一个类似Windows中的BIOS设置的界面
第三种方法:1)使用 ifconfig eth0 x.x.x.x 设置网卡
2)使用 ifconfig eth0 network x.x.x.x 命令设置子网掩码
3)说明:此时网络配置会临时生效,一旦重启系统,网络配置会自动还原
4)备注:ifconfig eth0 up 命令:打开eth0
ifconfig eth0 down 命令:禁止使用eth0
连通Windows与VMware中的Linux
思路:配置Windows的网卡与VMware的网卡的IP,让二者处于同一个网段中,即可
步骤:1)在windows的cmd下使用ipconfig查看本机所有网卡信息
我们会发现有两块虚拟的网卡VMnet8和VMnet1,这是VMware自动为我们安装的
这里假设VMnet8和VMnet1网卡的网段分别为192.168.222.1和192.168.77.1
2)将linux的IP配置为192.168.222.8
3)虚拟机---->设置---->硬件---->以太网---->自定义---->选择VMnet8(NAT)作为虚拟机的网卡
4)在windows中ping 192.168.222.8,如果ping得通,则说明Windows与VMware连上了
Shell简述
概述:成功登录Linux后,系统会出现不同的提示符号,如$、~、#等
然后就可以输入需要的命令,若命令正确,系统便依据命令的要求来执行,直到注销系统为止
而Shell就是负责,在登录到注销期间,将用户输入的命令解释成内核可执行的代码,并执行
作为命令语言互动式地解释和执行用户输入的命令,这只是Shell功能的一个方面
Shell还可以用来进行程序设计,它提供了定义变量和参数的手段以及丰富的程序控制结构
使用Shell编程类似于DOS中的批处理文件,称为Shell scrip,又叫Shell程序或Shell命令文件
种类:常用的Shell有以下几种
注意:不同的Shell对同一操作所使用的命令未必相同 | ||
---|---|---|
Shell名称 | 开发者 | 命令名称 |
Bourne | S.R.Bourne | /bin/sh |
C | Bill Joy | /bin/csh |
Kom | David | /bin/ksh |
查看和修改当前的shell | ||
ls -l /bin/*sh | 查看当前系统所支持的Shell | |
env | 显示当前操作系统的环境变量。它可以看到当前所使用的shell | |
chsh -s 新shell | 修改所使用的shell。。如 chsh -s /bin/csh 修改完所使用的Shell后,注销后重新登录方生效 |