Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1565373
  • 博文数量: 1481
  • 博客积分: 26784
  • 博客等级: 上将
  • 技术积分: 17045
  • 用 户 组: 普通用户
  • 注册时间: 2011-07-12 09:22
文章分类

全部博文(1481)

文章存档

2014年(10)

2013年(353)

2012年(700)

2011年(418)

分类: IT职场

2011-09-05 09:10:25

Linux基本概述应用领域与安装
Linux种类
嵌入式应用
基于内核开发新系统
Linux优点
x Window特点
Linux分时概念


学习方法:忘记Windows思维方式
使用虚拟机
命令的练习和学习
习惯性查看错误
记录常用英文代码
每天学习一定的英语单词
笔记要经过实践
完成练习和自测


linux安装方式:
CentOS MD5:75C92246479DF172DE41B14C9B966344
硬盘选择 scsi格式sda sdb sdc等,ide格式hda hdb hdc等
选择安装方式:①默认回车图形安装②命令符格式安装linux text
自定义分区结构
建立根分区/ 类型ext3
建立分区 类型swap 物理内存的2倍或者3倍
建立需求分区(剩余空间也可后期建立)
设置需求网络模式
设置根密码(字母数字符号,要够强壮,混合)
选择图形界面
进行安装(用VM6.0以后要注意更换光驱)


注意事项:/ 5G左右
/swap 物理内存1.5倍或者2倍
/boot 1G左右
/home 1G左右
/var 按照硬盘的50%
*分配可以直接分/ swap 其他可以以后进行分配


windos连接linux:常用端口22/21
linux网卡eth0,eth1,类推
查看ip(linux=ifconfig,windos=ipconfig)
有时内网会有冲突,重启后重新查看ip



Linux命令
su 后面加用户名不加就是ROOT最高权限
文件名规则:除了/所有字符都合法,大小写敏感,不建议使用特殊字符
linux也可执行部分DOS命令(不推荐)
不同的目录有不同的权限
#最高权限 $普通权限
linux存在快捷方式
clear清屏
*号表示当前目录所有东西
可结束一切当前操作,错误重新输入ctrl+c
.和..是当前和上一层
../../连续跳2层
命令格式:
命令名 -选项 参数:文件或目录
ls -a /etc=查看etc的全部结构 -a全部(包括隐藏文件)
建立用户:账户adduser:
密码passwd:
常用命令种类:
文件处理命令
权限管理命令
文件搜索命令
帮组命令
压缩解压命令
网络通信命令
系统关机命令
shell应用技巧

①文件处理命令:
ls
功能:显示目录文件
权限:所有用户
配合-a 显示全部文件(包括隐藏) -l 详细信息显示 -d 查看目录属性 -i查看索引接点
cd
功能:切换目录
权限:所有用户
*当前目录下的文件不用加/
pwd
功能:所在位置
权限:所有用户
mkdir
功能:创建新目录
权限:所有用户
touch
功能:创建文件
权限:所有用户
cp
功能:复制文件或目录
权限:所有用户
*复制多个文件或者目录加-R 注意大小写
例子:#cp a b root 复制 文件A B到root目录
例子2:#cp -R web root复制 目录web到root目录
mv
功能:移动文件,更名
权限:所有用户
例子:#mv web web2 修改当前目录下的文件web为web2
例子:#mv a root 移动文件a到root目录下
rm
功能:删除目录或文件
权限:所有用户
例子:#mr a 删除当前目录下的文件a
例子:#mr -r root 删除当前目录下的root目录
*强制删除-f
cat
功能:查看文件
权限:所有用户
例子:#cat a 查看当前目录下的文件a
more
功能:查看文件,适合多页面,空格或者F下一页,回车下一行,q,Q退出
权限:所有用户
例子:#more a 查看当前目录下的文件a
ln
功能:创建快捷方式(软硬连接)
权限:所有用户
例子:#ln a c 创建a的硬连接为c
例子:#in -s a c创建a的软连接为c
*硬连接不同与快捷方式,原文件消失一样可以使用
软连接等于快捷方式(即原文件消失即失效),对硬连接修改和软连接修改都会对源文件有效


②权限管理命令:
chmod
功能:改变i文件或者目录的权限
权限:所有用户
例子:#chmod g+w a 赋予文件a所有组写入权限
例子:#chmod 777 a 赋予文件a读写执行权限即所有权限
*权限设置:
drwxr-xr-x分解成①d ②rwx ③r-x ④r-x
第一位:-文件 d文件夹 l软连接
第二位:所有者权限(u) r可读(4) w可写(2) x可执行(1)
第三位:所有组权限(g)
第四位:其他权限(o)
r可读(4) w可写(2) x可执行(1) u=创建者 g=root o=其他用户
以加减形式修改:chmod o+x ??? 添加执行权限
数字形式:chmod o 777 ??? 添加全部权限
需改文件夹下全部权限chmod -R 755 demo
文件查看例子:
drwxr-xr-x 6 root root 6 04-08 12:12
↓ ↓ ↓ ↓ ↓ ↓ ↓
权限 连接数 u g 内存(不准确) 人气 时间

用二进制代码形式表示:
rwx
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
chown
权限:所有用户
功能:改变文件或目录所有者
例子:#chown vip594140 a 更变a的所有者为vip594140
chgrp
权限:所有用户
功能:更变文件或者目录的所有组
例子:#chgrp vip594140 a 更变a的所有组为vip594140
umask
权限:所有用户
功能:显示,设置建立文件或目录权限
例子:#umask 设置建立文件或目录权限显示为0000
例子2:#umask -S 查看当前设置权限 显示为u=?,g=?,o=?
例子3:#umask 0022 设置权限为755 -s显示为u=rwx,g=r-x,o=r-x

③文件搜索命令
which
权限:所有用户
功能:搜索命令所在文件
例子:#which ls 显示为/bin/ls
find
权限:所有用户
功能:查找文件或者目录*范围越小越好
例子:#find /etc/ -name g 在目录/etc查找名字为G开头的目录或文件
尽量不要在/目录下查找,消耗资源大
*匹配任意字符 ?匹配单个字符
#find /etc inti* 在目录/etc下搜索inti开头的文件
#find /etc *inti* 在目录/etc下搜索包含inti的文件
#find /etc int? 在目录/etc下搜索int?4位的inti文件
-size 文件大小 1数据块=512字节=0.5k +大于 -小于
#find /etc +204800 在目录/etc下搜索大于1000M的文件
-user
#find / -user ID 在目录/下搜索所有者是ID的用户
-ctime atime mtime 表示天 -之内 +超过
-cmin amin mmin 表示分钟
c=改变属性如所有者,所有组,权限
a=访问 m=修改如echo vi即文件内容被需改过
#find / ctime -1 在目录/下搜索1天内修改过的文件
#find / cmin -120 在目录/下搜索120分钟内修改过文件内容的文件
连接符 -a=and=逻辑与 -o=or=逻辑或
-type根据文件类型来搜索 f=二进制文件 l=软连接文件 d=目录
#find / -size +102400 -a -size -204800 搜索目录/下大于50M小于100M的文件
#find / -size +204800 -a type d 进行在/目录下大于100M并且是目录文件的搜索
#find / -name inti -o -size +204800 搜索目录/下文件名为inti的文件或者文件大于100m的文件,搜索到其中一个则结束,不是全部查找
连接执行符-exec 格式find.....-exec {} \; {}表示find查询的结果,\表示转义符能够让符号或命令使用本身,;表示结束
-ok 与exec类似,执行后询问是否继续进行操作
#find / -name inti -exec rm -rf {} \; 搜索目录/下的inti文件然后进行删除
#find / -name inti -ok rm -rf {} \; 搜索目录/下的inti文件然然后询问是否删除
#find /etc -name inti -type f -exec ll {} \; 搜索/etc目录下的inti目录文件并且显示详细信息
节点 inum
#find /etc -inum 15 -exec rm -rf {} \; 搜索/etc目录下i节点为16的文件并删除
locate(unix无此命令,速度快)
权限:root
功能:与find类似,不能搜索服务器保存之后的文件,需要配合updatedb使用
updatedb
权限:root
功能:保存服务器
grep
所有用户
#gerp ftp /etc/services 搜索在/etc/services目录下所有与ftp相关的文件
#gerp -v "^#" /etc/inittab |more 查看/etc/inittab文件并且不显示开头为#的行.分页浏览



④帮助命令
man
权限:所有用户
功能:查看命令配置和帮助信息
例子:man 1 ls 显示为 查看ls的命令帮助
***不能是绝对路径
***获取命令帮助信息与配置文件帮组信息(1代表帮助命令5代表配置文件命令)
info
权限:所有用户
功能:和man类似(在unix下没有,显示方法不一样)
help
权限:所有用户
例子:ls --help


⑤压缩解压命令
gzip
权限:所有用户
功能:压缩文件,不保留原文件,可以批量
权限:所有用户
功能:解压文件对.gz文件,不保留源文件
tar
权限:所有用户
功能:打包或者解压文件或者目录
例子:压缩#tar -zcvf 压缩包名.tar.gz 文件名
解压#tar -zxvf 压缩包名.tar.gz
选项:-z 指定解压包 -c打包 -v显示过程 -指定文件 -x解包
zip
权限:所有用户
功能:压缩文件或者目录(.zip)
例子:#zip -r a.zip a 将目录a压缩成a.zip
unzip 解压zip
bzip2
权限:所有用户
功能:升级版压缩命令(bz2格式)
例子:bzip -k a 压缩a文件 保留原目录-k保留原目录
bunzip2 解压

⑥定义别名 alias copy=cp 建立cp的新命令为copy
^以什么开始 $以什么结束
#ls |grep .txt$|wc -l 查看当目录并显示以.txt结尾的文件数量

Vim编辑器

按ESC进行命令模式,在屏幕左下角会显示出:
*命令模式分为两种,一种是输入命令模式,一种是快捷键方式
命令以回车结束运行
开启Vi后按i,a,o进行插入模式
:! 在vi中执行linux命令
:r !date 导入linux的时间
:set nu 显示行号
:set nonu 取消行号
:wq 退出 w=保存 q=退出 (快捷键ZZ也可以保存退出)
:q! 强制退出不保存(!表示强制)
:wq! 强制退出保存(强制保存只有ROOT和所有者)
:w /???/abc 另存在???目录下名为abc
:n 到第n行
:n1,n2d删除指定范围内的行
:u 取消上一部操作
:%s/要替换内容/替换为/g 全文替换指定字符串(%表示全文)
:n,ns/要替换内容/替换为/g 替换第n行到第n行的指定字符串
:r /etc/issue 在光标的下一行导入/etc目录下的issue文件
:%s/要替换内容/替换为/c 全文替换指定字符传(询问是否确定替换,进行多个替换时会进行挨个询问)
:map ^p I# 设置快捷键ctrl+p为在行首加入#然后返回命令模式(^P为ctrl+v+p或者ctrl+v然后ctrl+p,I为行首插入,ESC为命令模式)
*^为ctrl加? 不是符号
:map ^A 0x 设置快捷键ctrl+a删除行首的#(0为移动行首,x为删除光标所在处的字符)
:unmap ^A 取消定义快捷键ctrl+a
:n,ns/^/#/g 设置n到n行的行首为#注视(^为符号不同于map的^,这里面^为行首)
:n,ns/^#//g 设置n到n行行首的#为空值(/^/为空/g)
:n,ns/^/\/\//g 替换n到n行行首//为空(\/\/表示//,\为转义符,加转义符是为了让系统正常的识别/)
:ab sammail 定义输入sammail为 (输入sammail后按空格或回车就会变成)
:unab sammail 取消定义sammail的替换
vi的配置文件存在于家目录下~/.vimrc
编辑.vimrc进行对vi的配置(编辑后每次执行都有配置如快捷键.行号等)
X删除光标所在处的字符
nx删除光标所在处后n个字符
dd删除光标所在行,ndd删除n行(往下删除)
dG删除光标所在行到末尾的内容(到最后一行)
D删除冲光标所在处到行尾(行内)
yy,Y复制当前行
nyy,nY复制当前以下n行
dd剪切当前行
ndd剪切当前以下n行
p,P黏贴在当前光标所在行下或上
r取代光标所在位置的字符(之替换一个字符)
R从光标所在处开始替换字符,按ESC结束(可以替换多个字符,直到ESC中止)
/???? 向前搜索指定字符串???进行搜索(N向上查找,n向下查,忽略大小写输入:set ic)
gg到第一行
G到最后一行
nG到第n行
a在光标后附加文本
A在本行行末附加文本
i在光标前插入文本
I在本行开始插入文本
o在光标下插入新行
O在光标上插入新行
h左移动一个字符,j下移一行,k上移一行,l右移一个字符
$移至行尾,0移到行首,H移至屏幕上端,M移至中间,L移至下端
对vi环境的配置,在家目录下创建.vimrc (在vi配置文件注视符为")
如:ab asdf @ASDF
map ^A 0x



linux引导流程解析

linux引导流程
①固件firmware(cmos/bios)→post加电自检
固件时间:#hwclock 软件时间:#date
设置软件时间:#date 日,月,小时,分钟[年].秒
设置固件时间:# hwclock --set --date="月/日/年 小时:分钟:秒"
#hwclock --systohc 以固件为准更新时间
#hwclock --hctosys 以软件为准更新时间
②自举程序BootLoader(GRUB)→载入内核
grub.conf linux的配置文件
③载入内核Kernel→驱动硬件
boot下的vmlinuz-2.6.18-194.el5是内核文件
④启动进程init进程(PID恒定为1, PPID为0)
查看进程#ps
⑤读取执行配置文件/etc/inittab
# /etc/init.d/??? start 开启
# service ?? start 开启
stop结束 restart重启
⑥确定initdefault缺省级别
⑦执行/etc/rc.d/rc.sysinit
⑧执行/etc/rc.d/rc 并把缺省级别N传给rc
⑨启动或关闭/etc/rc.d/rc5.d 目录下的所有服务,5为缺省级别
⑩若启动级别为5则启动对应的图形界面

init启动运行级别
0.关机
1.单用户模式,没有图形界面,默认ROOT登录
2.多用户模式,不启动NFS,没有图形界面
NFS 网络文件系统,用于unix/linux之间文件共享
3.多用户模式,没有图形界面
4.自定义模式
5.图形界面多用户模式
6.重启

/etc/inittab 文件的语法格式
id:run-levels:action:process
id表示标识符,一般由一到两个字符或数字
run-levels表示运行级别0-6,为空表示所有,也可以为多个。
action表示指运行的状态
process指定运行的命令或脚本
***级别类型例子l0:0:wait:/etc/rc.d/rc0d/rc 0
si::sysinit:/etc/rc.d/rc.sysinit执行process中的指令 (只要系统启动就会执行)
***用过启动脚本完成服务器程序启动,如环境配置,系统配置,加载字体,生成日志等.(shell脚本)
ctelaltdel:按下ctelaltdel时执行process指令


action常用取值
powerfai:当出现电源错误时执行process指定的命令,不等待其结束
powerokwait:当电源回复时执行process指定的命令
respawn:一旦process指定的命令中止,便重新运行该命令
***用快捷键切换终端,配置文件为sbin/mingetty tty1-6
***CTRL+ALT+F1-F6 F7切换回图形界面
***格式为: 1:2345:respawn:/sbin/mingetty tty1-6
X:5:respawn:/etc/xll/prefdm -nodaemon(只有在运行级别5的时候才会执行)

# ls /etc/rc.d 查看所有级别的启动的目录
#/etc/rc.d/init.d/sshd start/stop/restart/status开启,关闭,重启,查看状态,sshd服务
*/etc/rc.d/init.d/sshd 不加命令为查看使用命令
# ls /etc/rc.d/rc5.d 查看5号级别的启动服务信息(启动项为软连接来自/etc/init.d)
S开头是要启动的服务,后面的数字是启动顺序
K开头是要关闭的服务,后面的数字是关闭顺序
#runlevels 查看当前启动级别 N为默认,S为切换过去的
#init N 启动N级别
#sh 执行

设置自动开机启动项
①#ln -s N /etc/rc.d/rc5.d/S??N 设置软连N接到rc5.d为第?个开启的项
***例子:首先创建启动连接的源文件# vi /etc/rc.d/init.d/msg.script
打开vi后输入 dete>> /root/msg.today 查看启动时间然后导入到msg.today
然后设置权限 chmod 755 /etc/rc.d/init.d/msg.script
然后生成软连接 ln -s /etc/rc.d/init.d/msg.script 到 /etc/rc.d/rcN.d/S100msg.script 设置软连接到开启启动的项N,S为开启100为顺序
②使用chkconfig查看与关闭服务器状态
#chkconfig --list 查看所有服务的状态
#chkconfig --list sshd 查看所有服务sshd的状态
#chkconfig --level 5 sshd on 开启5号服务的sshd
#chkconfig --levels 2345 sshd off 分别关闭2345的sshd的服务
使用ntsysv的图形界面开启服务,setup完整的图形界面
#ntsysv 修改当前级别服务状态的开和关,*号开头为开启,空格键与TAB键来进行切换
#ntsysv 3 修改级别5服务状态的开和关
#dmesg 查看开机过程的历史信息
#dmesg |grep sd 查看开机过程的历史信息,然后搜索关于sd硬盘的信息

ver/log里面都是日志信息
ver/log/messages 查看服务器启动信息
#grep sshd /var/log/messages 查看网卡启动的信息(开启过程中的错误等都会显示)

GRUB的配置文件(主要任务是加载内核)
/etc/grub.conf 软连接位置
/boot/grub/grub.conf 原文件位置
***如果修改,修改前注意备份文件
default 定义缺省启动系统(多系统时有效)
timeout 定义缺省等待时间
splashimage (sd0.0表示第1快硬盘第1个分区)开机启动画面
title 启动系统名称
ROOT (sd0.0)
kernel 内核启动位置
initrd 载入镜像文件
ROOT密码丢失解决办法
在GRUB模式下按E 进入编辑模式 选择内核启动位置按E继续编辑 然后在行尾 加入空格1(运行级别1)
对GRUB进行加密
#grub-md5-crypt
输入密码会得到md5的值
编辑etc/grub.conf
#vi /etc/grub.conf
在hiddenmenu下面新行输入
password --md5 刚才输入密码得到的MD5值
保存退出

启动GRUB界面但是没有菜单,解决办法(注意用TAG补全命令,有时会出现拼写问题)
按C进入命令行模式
grub>cat /boot/grub/grub.conf (为查看错误原因)
grub>root (hd0,0)
grub>kernel (hd0,0)/vmlinuz-2.6.18-194.e15 roroot=LABEL=/
grub>initrd (hd0,0)/initrd-2.6.18-14.img
grub>boot

其他错误解决办法
首先加载光盘镜像
然后重启linux 按F2 设置开机驱动项为CD
然后进入安装界面 按F5 进入修复模式
然后输入linux rescue 进行修复
进入图形界面 选择语言,键盘,网络等
修复文件会保存在 /mnt/sysimage
注意一定要选择 continue 可修改模式,选择read-Only就只能看不能改
这个时候就会进入修复模式的#模式
首先进入 chroot /mnt/sysimage 改变/分区目录
然后查看 cat /etc/inittab 引导中那里出错了
然后拷贝正确的文件到 到/etc/inittab
然后重新启动exit 这个事后就可以回复了

软件包安装(二进制包虽然是最常用的但是还会有其他的软件包)
查看md5值md5sum 文件名
①RPM软件包格式sudo-1.7.2p1.el5.i386.rrpm
软件名(sudo),版本号(1.7.2p1),发型号(5,el5),运行硬件平台(i386)
#rpm -e sudo 卸载软件
#rpm -e --nodeps sudo 卸载部分软件时候会发生链带卸载强制卸载*不推荐使用 强行卸载
#rpm -ivh sudo-1.7.2pl-5.el5 -i表示安装,-v表示详细信息-h表示安装进度
挂载光驱(不挂载光驱则不能安装软件)
新建挂载点(#mkdir /mnt/cdrom)
创建挂载点(#mount /dev/cdrom /mnt/cdrom) 指定挂载点为刚才创建的mnt/cdrom
查看软件包是否存在(#rpm -q sudo)如果此软件包存在会显示版本号
查询所有与samba有关的软件包(#rpm -qa | grep samba)-a表示全部
--excudedocs 不安装软件包中的文档文件
#rpm -ivh --excudedocs sudo 安装sudo软件包,不会安装软件包的文档文件(帮助文件)
--prefix=路径 指定软件包安装路径
#rpm -ivh --prefix=/ sudo 在/目录下安装sudo软件包 (一般软件不支持修改路径)
--test 测试安装 不进行实际安装 (可用于查看是否安装,安装过程,配置环境,冲突等...)
#rpm -ivh --test sudo 测试安装sudo软件包
--replacepkgs 覆盖安装
#rpm -ivg --replcaefiles sudo 覆盖安装sudo软件包(用于软件包程序丢失,配置失效等..)
--replcaefiles 冲突时进行覆盖安装(降级软甲包版本,忽略配置环境)
#rpm -ivh --replcaefiles sudo (降级覆盖sudo软件包)
#rpm -ivh --nodeps (配置环境不达标强行安装软件包sudo)
#rpm -ivh *.rpm (安装所有rpm包,要考虑到配置环境安装,无配置环境可以参考此命令)
#rpm -Uvh sudo 升级软件包sudo
-a 查询所有已安装软件包(linux下文件都有安装包)
-f 查询文件所属文件包
-p 查询软件包(建议加|grep 软件包名字使用,)
-i 显示软件包详细信息
-l 显示软件包中的文件列表
-d 显示被标注为文档的文件列表
-c 显示被注视为配置文件的文件列表
-qf 查询文件隶属的软件包
-qi 查询软件包信息(安装后) -qip 软件包名(安装前)
-ql 查询软件包安装文件(安装后) -qlp 软件包名(安装前) 一般来说软件包名_example.vim 为此软件的实例配置文档
-qd 查询软件包帮组文档(安装后) -qdp 软件包名(安装前)
-qc 查询软件包配置文件(安装后) -qcp 软件包名(安装前)
②YUM包管理(自动解决软件包依赖关系,方便软件包升级,无法连接Internet无实际意义)
#yum install sudo 在Internet检测镜像版本,然后搜索sudo的安装包并检测配置环境
显示为:

=================================================================================
Package arch Version Repository Size
=================================================================================
sudo i386 1.7.2p1-9.el5_5 updates 230k
=================================================================================
Transaction Sunmary
=================================================================================
Install 1 Package(s)
Upgade 0 Packags(s)

Total download size:230k
Is this ok [y/n]:

***Package表示名字 arch表示运行硬件 Version表示版本号
Install表示需要安装的软件包
Upgade表示要升级的数量


#yum check-update sudo 检测软件包sudo是否有升级文件(check-update后值为空则检测所有软件包的升级)
#yum update sudo 升级软件包sudo
#yum list |more查询软件包(软件量大,需要more查看,在行尾会提示对应信息,如升级update,已经存在installed,没有安装updates)
#yum info sudo 在互联网查找关于软件包sudo的详细信息
#yum remove sudo 卸载软件包sudo
#rpm -V 软件名称 对软件包进行效验(正常为不显示)
#rpm -V sudo 显示为 S.5.L.T.D.U.G.M sudo (全被被修改过)
5表示MD5值 S表示文件大小 L表示连接文件 T表示文件创建时间
D表示设备文件 U表示文件用户 G表示文件所有组 M表示文件权限
***提取解压包(用于配置文件丢失等..)
首先要查看丢失的文件压缩包信息
#rpm -qf /etc/inittab 查看inittab的压缩包文件
#rpm2cpio /mnt/cdrom/CentOS/initscripts-8.45.30-2.el5.centos.i386.rpm |cpio -idv ./etc/inittab
提取initscripts压缩包内的inittab到当前目录的etc下,然后在把文件复制到丢失文件的目录即可,也可直接指定路径,不指定目录或文件则全部提取
③源代码包安装(配置度非常高,定制度高,基本通用)
#tar -xzvf 源码包文件
#cd 源码包文件(源码包通常都会有一个config的脚本文件)
#./configurs --prefix=/usr/local/软件名 指定安装目录(配置过程,通俗来说就是搜索系统配置)
#make 编译(把C的源代码编译成程序)
#make install 安装刚才编译后的程序
④脚本安装
#tar -xzvf 软件包名
#cd 软件包名 (没有config脚本,用VI查看说明文档README)
#vi README 查看使用手册
#./setup.sh (查看手册后得到的文件)

原文地址:

阅读(159) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~