linux学习笔记系统管理篇.docx
《linux学习笔记系统管理篇.docx》由会员分享,可在线阅读,更多相关《linux学习笔记系统管理篇.docx(23页珍藏版)》请在冰豆网上搜索。
linux学习笔记系统管理篇
linux入门:
linux入门很重要,刚开始自学linux时懵懵懂懂好不容易装好了linux,大喜过后一脸无奈,这是哪跟哪呀~~~~~~里面的所有东西都不知道做什么用,自信对window有研究的我顿时手足无措,在给linux相了一天面后还是格掉了:
(此后开始看书,慢慢的找感觉~~~~~~~~~~~一直到长城开始系统的学才自以为找到了感觉(也就是入门了)。
自我评价:
学习linux找感觉最重要,不管是看书还是自己安装后琢磨,坚持着看和做,肯定能成。
如果仅仅看了两天书就认为入门了那肯定是自欺欺人。
Linux安装:
安装linux并不是很难,一般用光盘安装,安装时硬盘默认分为三个:
引导分区;根分区;交换分区;分区弄明白了安装也就没什么障碍了。
还有从硬盘安装,我当初从硬盘安装linux时颇费一番周折,幸亏有platinum和shadowmin老师的及时指点才得以顺利安上,再次感谢一下:
)附硬盘安装原文:
注:
装linux是要写规范主机名。
如
作服务器时系统CMOS时间应设为格林威治时间,即国际标准时间
linux基本命令:
挂接:
单根文件系统使用多个设备的方法。
mount设备挂接点
dmesg|grepcd此命令可看光驱在哪
(当老师讲到这里的时候机器出了点故障,鼠标不动了,老师用了一个命令就使鼠标复活,第一次感叹linux的神奇啊~~~~~原来鼠标还可以重起(windows下还真没想过)
顺便把老师用的命令也抄了下来,呵呵多学了个窍门
重启鼠标命令:
/etc/rc.d/init.d/gpmrestart
)
解除挂接:
umount挂接点
软盘写法:
/dev/fd0
SCSI硬盘写法:
/dev/sd(a)括号内可以依次排为bcd…….
USB硬盘SATA硬盘系统都做SCSI硬盘对待。
SCSI光驱写法:
/dev/scd(0)括号内为数字零依次后派
USB口的光驱也被认为SCSI光驱。
注:
只有先解除挂接可移动设备才可拿出来
shell和文件系统
shell命令:
unix中绝大多数都是外部命令。
内部命令常用的有cd很少
dos|shell
dir|ls
type|cat
cd|cd
md|mkdir
rd|rmdir
del|rm
copy|cp
ds|dear
attrib|chowncharpchmod
此上命令除了cd全是外部命令
最重要的命令:
man主题
主题可是shell命令也可是配置文件,还可是C语言函数,但有时shell命令和配置文件相同时打入命令怎么办呢,此时用参数
man1.命令2.系统函数3.标准库函数5.配置文件
例:
查passwd默认manpasswd会查到
manpasswd
(1)命令
此时要用man5passwd可查配置文件
模糊查找(匹配)参数:
-k例man–kPPP和大多数unix中一样k为小写.
第二个重要命令:
vi文件名(文本编辑器)
它有三种工作模式,缺省为”命令模式”
输入I进入”插入模式”按ESC回到命令模式
常见命令:
删一个字符x
删除一行dd
恢复操作u
复制yy(光标在哪一行将复制哪一行)
粘贴p(粘贴在光标下面)
在vi重复输入一些命令时,在前面加数字如插入100个a则在命令模式下先输入100按I输入一个a回到命令模式则会有100个a被插入5行东西重复3次则输入5yy3p存盘退出用大写ZZ
“末行模式”常见是搜索字符.用”/”在命令模式下输入
“/”加字符串.在手册中也能用
“;”会引发末行模式.可用”;”跳到某一行”;”加数字可直接到那
“;”还可用与文件操作
“;q”可直接退出
“;q!
”强制退出
“;w”存盘不退出
“;wq”存盘退出
“;recover”可在出现以外后修复文件
“;w文件名”另存为
shell命令的敲法:
命令参数1参数2
参数定界:
用到”‘‘”(单引号)用单引号括起的如’abcdef‘是告诉shell消除语法歧义
如要建一文件叫jack’sdaily却不能用单引号了,此时得用”\”应写为:
例如:
toucejack\’s\daily
“\”为转意字符,取消反斜杠后一个字符的特殊含义
文件系统
在unix中”.”无特殊含义
unix下区分文件类型的命令file
unix下是靠文件的头部说明来区分文件格式,所以操作系统不会理会扩展名的
(exe文件头两字母是MZ)
mount直接回车是显示当前所mount的状态
df察看磁盘利用状态磁盘分区
du–h+子文件名检测文件系统子目录所占空间
pwd查看当前子目录
unix下一个文件可以不可读而可执行,对于子目录而言x就是另外一层含义了,称之为检索。
对子目录而言r就是列表权
(经验:
不要安装基于文本界面的多媒体应用程序)
如何修改权限
修改属主:
chown[-R]新属主文件
-R:
将文件夹中的所有文件也更改掉
修改属组:
charp[-R]先属组文件
修改权限:
chmod[-R]新权限文件
新权限有两种表示方法:
(1)直观:
如rw-r—r—
数字644
110100100
(2)字母法:
如rw-r--r--
ugo
修改文件的访问权限不必非得是root,文件属主也可以
windows文件权限策略是ACL,侧重与灵活性;unix文件系统策略是权限位,侧重用效率;
linux所有权限都放于一个16位的短整数里
linux特有功能(ext2ext3所体现的):
列出所有权限命令:
lsattr
设置特殊权限:
chattr
连接:
硬连接:
硬连接本质使一个文件有两个文件名和windows不同windows中文件属性和文件名是放在一块的,而linux文件名仅是文件名
命令:
ln原文件名新文件名
硬连接有两限制:
(1)不能给子目录建硬连接
(2)不能跨文件系统建硬连接(即不能跨分区)
在unix下删除一文件的本质是断开一个硬连接,系统会将硬连接数减一,只要不为0则保留文件体。
符号连接:
(路径跳转)
命令:
ln–s跳转去向连接名
注:
建符号连接得用绝对路径。
写绝对路径此时可建成的在tem下看到的连接是红色的。
“”后面指向的仅一个services但在当前目录即tem下却没有这个文件此时便出错了。
注:
符号连接可跨分区建立
shell
shell使用:
在unix下常用的是bash
功能:
(1)自动完成按tab键支持路径,在参数位置上按tab会补齐文件名,按两下tab键便可看所有系统命令。
(3)命令历史:
按↑↓可查看所打过的历史命令。
注:
在用户文件夹下有个bash-histroy保存有上次使用的命令。
非shell功能,虚拟终端功能:
按alt+f1~f6切换
鼠标粘贴:
左键选择右键粘贴,可跨终端。
*shell如何运行外部命令:
进程:
一个正在运行的程序就是一个进程(不严密的解释)
派生:
系统的所有进程都是由一个进程派生出来的
shell有一个父进程当接到一个命令时会产生一个子进程,而shell则进入休眠状态,等待子进程结束,子进程完后交给父进程一信息,父进程激活等待。
后台运行命令:
命令&
作业控制:
ctrl+z把前台作业挂起(暂停)挂起后都会保存在内存中。
怎么知道有作业呢?
用jobs命令
fg+作业号是把后台暂停作业调回前台
bg+作业号是把前台作业换到后台
shell的基本配置:
bash的基本配置是由配置文件组成的./etc/profile称之为shell的全局配置文件。
另外一个文件在个人的目录下个人目录/.bash-profile
还有个文件在个人的目录下/etc/bashrc是第二个全局配置文件,保存的是(函数别名等)在个人目录下也有个配置文件~/.bashrc
etc下的文件是全局文件,一经修改所有的用户设置都改了
shell的具体概念:
环境变量:
变量名=变量值例:
LANG=en是设置语言为英文
LANG=zh-CN.GB18030是设置语言为中文
通过设置shell的变量来决定子进程继承什么样的值。
{变量名=变量值
export变量名
可简化为export变量名=变量值注:
export不能省略,另外此时定义的变量是当前shell的值,一旦注销便没有了,想固化得修改profile文件
命令env可查看所有环境变量里面有个path非常重要,它定义了shell命令执行的路径。
Linux下命令执行仅搜索path路径,不会搜索当前目录的外部命令,所以在当前目录下要执行当前目录中的命令需要加”./”命令。
3.引用变量的值:
$变量名例:
exportPATH= $PATH:
/etc/xxx
例如:
echo$LANGecho回显命令可察看LANG的值
例exportCMD=ls
$CMD–l等于ls–l
shell管道与重定向
一个进程的缺省标准输入输出分为标准输入;标准输出;标准错误输出三个管子。
控制终端:
缺省情况下进程的三个管子通向控制端
输入重定向:
命名<文件名解释:
原来要从终端读取的命令改成从文件读取。
例如:
cat
输出重定向:
(1)命名>文件名原来要输出到终端的命令改成输出到文件
(此时叫覆盖式重定向)
(2)命名>>文件名
(追加式重定向)
例如:
gcc命令0:
标准的输入
1:
标准输出
2:
标准错误输出
解释linux最精简的一句话是:
linux下一切都是文件。
管道:
匿名管道,unix传统进程间通信。
写法:
命令1|命令2
命令2处经常出现的是more或grep
例如:
cat/etc/services|grep‘http’意思是包含有http的输出
磁盘的分区格式化
分区:
fdisk-l列出分区表
fdisk磁盘而不是某分区(/dev/had)
command:
p看分区
n新建分区
d删除分区
q不保存退出
w保存退出
生成文件系统(格式化)
mkfs(makefilesystem)
mkfs-text2/dev/hda5
mkfs-text2–j/dev/hda5:
格式化成ext3格式
挂接:
mount/dev/hda5
shell脚本本身就是程序,是用shell命令构成的,小规模、结构化、模块化、程序设计。
命令:
echo输出信息用
read输入信息read+变量名
sleep休眠sleep+秒数
在终端上算数表达式写法:
echo$((1x2x3))这是整数运算不能带小数点。
/:
除
%:
余
shell脚本格式:
第一行必须是#!
/bin/sh
有三种结构顺序结构分支结构循环结构
顺序结构
wait命令保证进程同步等待一个子进程结束多个并发就用多个wait
例如:
#!
/bin/sh
echo“1”
sleep5&
echo“3”
echo“4”
wait
echo”5”
分支结构
if判断;then
T块
Else
F块
fi
判断test语句test表达式=[表达式]
表达式进行文件判断-f文件名(检测该文件是否存在且为普通文件
-d目录名
-r可读
-w可写
-x可执行
例如:
#!
/bin/sh
echo“file”
readFileName
if[-f$FileName];then
echo“yes”
else
echo“no”
fi
字符串比较相等串A=串B
不等串A!
=串B
-z判断字符串是否为零空为真非空为假
数值比较:
大于等于小于不等于
a>b$A–gt$B
a≥b$A–ge$B
a≤b$A–lt$B
a=b$A–le$B
a≠b$A–ne$B
逻辑比较:
条件A–a条件B(与)
条件A-o条件B(或)
!
条件(非)
例如:
#!
/bin/sh
readMARK
echo$MARK
if[$MARK=“0”];then
elseecho“host”
echo“GATEWAY”
fi
‘‘反单引号:
如果反单引号后面有语句则将里面的语句运行完后将结果替换此处
例如:
#!
/bin/sh
u=id–u
if[$u=‘0’];then
echo“hello”
else
echo“permissiondenied”
fi
再例如:
#!
/bin/sh
echo“username”
readuserNAME
MARK=‘cat/etc/passwd|grep‘$userNAME:
’
积极if[-z$MARE];then
echo“NO”
else
echo“YES”
fi
多分支结构
case字符串in
串1)块1
;;
串2)块2
;;
.
.
.
*)
esac
例如:
#!
/bin/sh
echo“command”
readCMD
case$CMDin
start)
/etc/rc.d/init.d/namedstart
;;
stop)
/etc/rc.d/init.d/namedstop
;;
estart)
/etc/rc.d/init.d/namedstop
/etc/rc.d/init.d/namedstart
;;
*)
echo“usage:
$0{start|stop|restart}
;;
esac
*知识点:
.脚本让shell不打开子进程,在当前shell进程中运行脚本
看脚本切忌一行一行的看,要一层一层的看,就像剥玉米.
Shell脚本
循环1)当形循环
2)条件循环
while判断;do
循环体
done
例如:
#!
/bin/sh
i=0
while[$i–lt$n];do
j=0
while[$j–lt$(($i+1))];do
echo“\*”
j=$(($j+1))
done
echo
i=$(($i+1))
done
定时循环00:
00:
00:
1970-01-01utc称之为unix元年
data+%s是取从unix元年至少过了多少秒
date+%H:
%M:
%S显示时分秒格式
例如:
#!
/bin/sh
intime=‘date+%S’–le$[(intime+5)];do
echo“.”##echo后面加-n输出就不回车了,横向输出
done
利用date命令可以方便的实现定时循环
shell风格的循环for循环(枚举循环)
格式for变量名in值列表;do
循环体
done
##值列表:
核心部分,一系列由空格分开的字符串
例如:
#!
/bin/sh
forninasd4r356her34657trger;do
echo$n
done
要自动下载列表中的东西编shell的
#!
/bin/sh
cd/tmp/dl
forurlincat/etc/urls;do
wget$url
done
>/etc/urls
补充知识:
参数传递
命令参数1参数2…………
例如:
#!
/bin/sh
n=$1
i=0
while($i-lt$n);do
echo“xxxx”
ii=$(($$+1))
done
$0$0就是命令本身
编后:
此处讲的都是基本的shell应用,老师推荐看《bash编程》
Linux系统管理
1.用户管理
添加账户useradd用户名
passwd用户名
groupadd组名usedel-r用户名
/etc/group/etc/passwd/etc/shadow三个重要文件
group文件格式:
组名:
x:
组ID:
组成员
passwd文件格式:
用户名:
x:
用户ID:
组ID:
:
用户目录:
shell
用户在passwd文件中体现的组关系称为用户组属组,而在group组中体现的是额外组。
false:
运行起来就是个恒假。
正确利用false给用户,将false添加到/etc/false下用户名字后这样用户就被拒之门外。
如mail用户通过修改用户的shell来限制用户登陆提高网络安全性。
top命令:
察看机器负载情况
which命令:
查看外部命令的路径
top被弄成用户shell时切记在linux下可用,因在linux下top是安全模式的,而在其他unix中并不一定安全,通过敲击热键可能会打出一shell。
shadow文件shadow里面的口令是散列,散列是不可逆的
批量添加150个用户u001—u150
#!
/bin/sh
i=1
while[$i–le150];do
if[$i-lt10];then
uname=u00$i
else
uname=u$i
fi
useradd$uname
i=$(($i+1))
done
passwd命令规定只能在终端上手动输入,只有用stdin参数便可解决
作业:
从一表中将已知用户名导入useradd
网络配置
linux下有两套网络配置,第一套为BSD方式,另一套是linux方式。
linux中高级网络功能只能用linux方式。
BSD方式:
1.查看ifconfig网卡名BSD中必须指定网卡名
注释:
collisions冲突txqueuden发送包的长度
网卡工作模式mii-tool媒体无关接口
ethtool+网卡名查看命令更详细(需要网卡驱动支持)
netstat–r查看路由
查看网络连接状态
netstat-ant查看TCP的所有网络连接
-anu查看UDP的所有套接字
一条TCP连接会产生两个套接字,两台机器均开。
ARP-n-n意思是不要进行反解不转成名字
查看DNScat/etc/resolv.conf
2.配置IP
ifconfig网卡名ip地址
配置路由routeadd-net网络地址netmastx.x.x.xgw网关
routeadd-host网络地址netmastx.x.x.xdev网卡
routedel-net网络地址netmastx.x.x.xgw网关
routedel-net网络地址netmastx.x.x.xdev网卡
缺省写法:
routeadddefaultgw网关
routeadddefaultdev网卡
静态ARParp-sIP地址MAC地址
linux方式:
ip命令
ipaddrshow查看IP地址简写为ipadsh
iproutesh查看路由简写为iprosh
ipneighsh查看静态ARP简写为ipnesh
ipv6中取消了ARP改用ICMP
具体配置:
ipadadddevip地址/掩码长度
iprouteaddip地址/掩码长度dev网卡
iprouteaddip地址/掩码长度via网关地址
激活/禁止某网卡
ifconfigdevdown/up
linux下的:
iplinksetupdeveth0
iplinksetdowndeveth0
此设置都是临时的,固化网络配置,在linux下主机名/缺省网关:
修改路径
/etc/sysconfig/network
如果修改主机名顺便把hosts文件也得改/etc/hosts否则有时服务会启动时挂起死等~~~~~~~~~~~~~~~~
固化IP地址/etc/sysconfig/network-scripts下的ifcfg-网卡名
例如:
/etc/sysconfig/network-scripts/ifcfg-eth0
bootprotocol=static##如果用动态IP则改成DHCP
ONBOOT=yes##启动时激活,设置思想:
作为外网网卡应该为NO,因防火墙启动之前将网卡先期启动会有被攻击的危险
静态ARP固化
/etc/ethers
写法:
macip例如:
01:
02:
03:
04:
05:
0610.0.0.2
(小知识点:
万用脚本:
/etc/rc.local不管什么命令只要加在此,下次开机后便会自动运行,相当于autoexec.bat。
在用户登陆之前便已经运行,注:
在此文件中加命令时不可阻塞,如果命令执行时间过长则加“$”将其弄到后台执行。
三.计划任务在linux和unix下是cron服务来实现的,每隔一分钟检查一次任务列表。
/etc/crontab
crontab命令-l(list)
-e(edit)
写时间格式:
时分日月周命令
例如:
055**1,3,5##每周一三五运行
技巧:
计划任务可用”,”“_””/”给分开
如果计划任务不执行此时主要原因是路径不对,看crontab便可知,PATH写的便是,第二原因是终端:
不能读标准输入和写标准输出,但可用重定向往文件中写可以,不能使用终端如果要修改crontab文件则需要先停止cron服务。
/etc/rc.d/init.d/crondstop
修改~~~~~~~~~~~~~~~~~
/etc/rc.d/init.d/crondstart
linux配置:
四top命令详解&进程管理
top命令查看系统的资