suselinux命令.docx
《suselinux命令.docx》由会员分享,可在线阅读,更多相关《suselinux命令.docx(18页珍藏版)》请在冰豆网上搜索。
![suselinux命令.docx](https://file1.bdocx.com/fileroot1/2023-4/28/8e4bf0fc-9a1f-4028-97ad-40eff66aeae6/8e4bf0fc-9a1f-4028-97ad-40eff66aeae61.gif)
suselinux命令
SUSELinux常用命令
分类:
linux2012-03-1718:
522803人阅读评论(0)收藏举报
linuxsuseoracle服务器cachesystem
目录(?
)[+]
1.硬件管理
1.基本配置
2.资源使用情况
2.操作系统与补丁
1.系统版本
2.补丁与package
3.系统运行级别
4.启动操作系统
5.关闭操作系统
6.系统进程
7.系统日志
3.内核参数与系统环境变量
1.内核参数
2.对用户的限制
4.文件与目录管理
1.挂载远程目录
5.文件与目录管理
1.挂载远程目录
2.拷贝与剪切
3.查看文件或目录
4.文件宿主及权限
5.查找文件
6.创建链接
7.文本编辑工具
8.文本个数及大小
9.文本句柄
6.内存及SWAP管理
1.内存使用情况查看
2.SWAP交换区
3.进程占用的虚拟内存
4.共享内存shm管理
1.1.1.硬件管理
1.1.1.1.基本配置
CPU个数查看:
#more/proc/cpuinfo
#top
内存大小检查:
#grepMemTotal/proc/meminfo
查看与修改主机名:
#hostname
修改完毕后,系统提示重启小型机,然后请检查/etc/hosts文件是否正确,并修改Oracle监听程序配置文件中的机器名。
1.1.1.2.资源使用情况
查看CPU使用率:
#top
查看IO、CPU的使用情况:
#sar210
1.1.2.操作系统与补丁
1.1.2.1.系统版本
查看操作系统版本:
#SPident
#cat/etc/SuSE-release
查看内核版本:
#uname-r
1.1.2.2.补丁与package
检查是否安装了package:
#rpm-qpackage_name
1.1.2.3.系统运行级别
系统运行级别有如下几个:
0:
关闭系统
1:
单用户模式,如果没有为shutdown命令指定-h或-r参数而直接执行,则默认将切换到此运行级别
2:
多用户模式(不支持NFS)
3:
多用户模式(支持NFS),一般常用此种运行级别
5:
多用户模式(GUI模式)
6:
重新启动系统
查看系统运行级别的命令:
#runlevel
自定义一个任务加到启动列表中的步骤如下:
1.在/etc/rc.d目录中建立脚本,记录要处理的内容。
这里例如为abc
2.查看当前系统的运行级别,例如为5级
3.进入rc5.d目录,建立一个连接:
ln–s/dev/rc.d/abcS99abc,这里99表示执行的先后顺序
4.执行chkconfig|grepabc,应看到abc5
5.将abc加入到check列表中:
chkconfig-aabc,然后执行chkconfig–listabc应能看到在5后面为ON
1.1.1.1.启动操作系统
查看系统启动历史:
#last
返回结果例如:
#last
rootpts/210.70.107.68MonDec109:
13stillloggedin
oraclepts/110.164.214.72MonDec109:
05stillloggedin
rootpts/010.164.78.145MonDec108:
57stillloggedin
rebootsystemboot2.6.16.46-0.12-sTueDec207:
50(-22:
-35)
rootpts/010.164.106.200SunNov3022:
48-crash(1+09:
02)
rebootsystemboot2.6.16.46-0.12-sTueDec205:
44(-20:
-28)
rootpts/010.164.106.200SunNov3021:
26-crash(1+08:
18)
rebootsystemboot2.6.16.46-0.12-sTueDec204:
57(-19:
-41)
其中,systemboot表示系统重启。
查看系统启动时长:
#uptime
返回结果例如:
9:
21amup9:
39,3users,loadaverage:
0.01,0.00,0.00
其中,9:
21amup表示本终端是早上9点21分连接到服务器的。
9:
39表示服务器已经启动了9个小时39分钟,如果超过一天,则会有1days的字样出现在9:
39前面。
1.1.1.1.关闭操作系统
命令shutdown:
shutdown命令用于安全关闭Linux系统。
有些用户会使用直接断掉电源的方式来关闭Linux,这是十分危险的。
因为Linux与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,甚至会损坏硬件设备。
执行shutdown命令时,系统会通知所有登录的用户系统将要关闭,并且login指令会被冻结,即新的用户不能再登录系统。
使用shutdown命令可以直接关闭系统,也可以延迟指定的时间再关闭系统,还可以重新启动。
延迟指定的时间再关闭系统,可以让用户有时间储存当前正在处理的文件和关闭已经打开的程序。
shutdown命令的部分参数如下:
[-t]指定在多长时间之后关闭系统
[-r]重启系统
[-k]并不真正关机,只是给每个登录用户发送警告信号
[-h]关闭系统(halt)
shutdown命令的工作实质是给init程序发送信号(signal),要求其切换系统的运行级别(Runlevel)。
命令halt:
halt是最简单的关机命令,其实际上是调用shutdown-h命令。
halt执行时,杀死应用进程,文件系统写操作完成后就会停止内核。
halt命令的部分参数如下:
[-f]没有调用shutdown而强制关机或重启
[-i]关机或重新启动之前,关掉所有的网络接口
[-p]关机时调用poweroff,此选项为缺省选项
命令reboot:
reboot的工作过程与halt类似,其作用是重新启动,而halt是关机。
其参数也与halt类似。
命令init:
init是所有进程的祖先,其进程号始终为1。
init用于切换系统的运行级别,切换的工作是立即完成的。
init0命令用于立即将系统运行级别切换为0,即关机;init6命令用于将系统运行级别切换为6,即重新启动。
1.1.1.1.系统进程
系统进程查看命令:
#ps-ef
#ps–ef|grepora
返回的结果例如:
UIDPIDPPIDCSTIMETTYTIMECMD
root10019:
56?
00:
00:
01init[5]
root21019:
56?
00:
00:
00[migration/0]
root31019:
56?
00:
00:
00[ksoftirqd/0]
root41019:
56?
00:
00:
00[migration/1]
oracle244621020:
11?
00:
00:
00ora_pmon_ora11g1
oracle244641020:
11?
00:
00:
00ora_vktm_ora11g1
oracle244681020:
11?
00:
00:
00ora_diag_ora11g1
进程号为1的系统进程:
进程号1固定为init进程专用,如上面的显示。
其中init[5]中的5表示系统运行级别。
如果此进程被kill,则操作系统会重启。
1.1.1.1.系统日志
系统日志位置:
/var/log/messages
1.1.1.内核参数与系统环境变量
1.1.1.1.内核参数
修改sysctl.conf参数的方法有两种,一是修改此文件,然后执行/sbin/sysctl–p使修改生效。
另一种方法是使用sysctl修改,例如:
#sysctl-wnet.ipv4.tcp_keepalive_intvl=15
参数名称
Sus11上默认值
相关文件
参数作用描述
semmsl
/proc/sys/kernel/sem
semmns
semopm
semmni
shmmax
/proc/sys/kernel/shmmax
shmmni
/proc/sys/kernel/shmmni
shmall
/proc/sys/kernel/shmall
file-max
/proc/sys/fs/file-max
ip_local_port_rang
/proc/sys/net/ipv4/ip_local_port_rang
rmem_default
/proc/sys/net/core/rmem_default
rmem_max
/proc/sys/net/core/rmem_max
wmem_default
/proc/sys/net/core/wmem_default
wmem_max
/proc/sys/net/core/wmem_max
查看方法,例如要查看以sem开头的几个参数设置:
#/sbin/sysctl-a|grepsem
修改方法是在文件/etc/sysctl.conf中增加或者修改相应的参数。
然后执行以下命令使修改马上生效:
#/sbin/sysctl–p
要使修改永久生效,即操作系统重启后仍有效,执行以下命令:
#/sbin/chkconfigboot.sysctlon
1.1.1.1.对用户的限制
为了提升用户运行程序的性能,要对shell参数作出限制。
例如要求单用户同时打开进程的个数最大值、同时打开文件句柄的最大值等。
例如安装oracle的要求分别是16384和65536,那么应该做以下处理:
1.在/etc/security/limits.conf中加入如下几行内容:
oraclesoftnproc2047
oraclehardnproc16384
oraclesoftnofile1024
oraclehardnofile65536
2.添加“sessionrequiredpam_limits.so”到/etc/pam.d/login中。
3.对于bash类型,增加下面的内容到/etc/profile.local中:
if[$USER="oracle"];then
if[$SHELL="/bin/ksh"];then
ulimit-p16384
ulimit-n65536
else
ulimit-u16384-n65536
fi
umask022
fi
如果是csh则增加如下内容到/etc/csh.login.local中:
if($USER=="oracle")then
limitmaxproc16384
limitdescriptors65536
endif
只能以root用户来修改各个用户可打开文件的最大个数。
可以ulimit–a来查看当前的设置值。
用ulimit–n10240来设置。
1.1.1.文件与目录管理
1.1.1.1.挂载远程目录
在源服务器端启动nfs和portmap服务:
#/etc/init.d/nfsserverstart
#serviceportmapstart
在源服务器编辑配置文件/etc/exports:
在其中加入要共享的目录及目标机器的IP等信息。
/etc/exports范例:
/tmp*(rw,no_root_squash)
/usr/src*.siyongc.domain(ro,insecure)192.168.100.*(ro,insecure)
/var/ftp/pub/incoming192.168.100.24(rw,all_squash,anonuid=50,anongid=50)
第一行,我将/tmp这个目录完全分享出去了,不管客户端来自哪里。
在括号里面的‘rw’就
是Read&Write的意思,而‘no_root_squash’呢,则是允许让使用者具备root的权限,在某
些特别情况下,例如使用bootp登录的无磁碟工作站,是相当好用的。
因为预设情况下NFS会
将root的身份squash为权限最低的anonymous(nobody)身份,而其他身份则以client端机
器上当时拥有的UserID和GroupID(指号码的值)来建立档案。
注意哦,在进权限判断的时候,
不是以UserName来作为身份依据哦,UID和GID的号码最後必须对应到server端的
/etc/passwd,而非client那边的。
第二行,我将/usr/src这个目录分享给以siyongc.domain这个domain做结尾或是以
192.168.100开头的任何机器,而无需使用secureport(insecure),但只具备唯读权限(ro)。
这里,
您要留意"*"的使用,在一些旧版本的NFS您不能用在IP上。
但是,我这里的测试却是可
行的。
第三行,我将/var/ftp/pub/incoming这个目录只分享给192.168.0.22这台机器,且具备了读和
写的权限(rw),但在server上写入的档案,必须换成anonymous身份进行。
但是其後的设定
又将任何anonymous换成设定的UID和GID(这里都是ftp),这样的安排是要确定任何存取
都按指定身份进行。
这个incoming目录预设是不存在的,日後在讨论到FTP服务设定时候会
提到,但您能够自行用mkdir建立,而且为group和others加上+w权限连同sgid和sticky
bit(3777)。
1.1.1.文件与目录管理
1.1.1.1.挂载远程目录
在源服务器端启动nfs和portmap服务:
#/etc/init.d/nfsserverstart
#serviceportmapstart
在源服务器编辑配置文件/etc/exports:
在其中加入要共享的目录及目标机器的IP等信息。
/etc/exports范例:
/tmp*(rw,no_root_squash)
/usr/src*.siyongc.domain(ro,insecure)192.168.100.*(ro,insecure)
/var/ftp/pub/incoming192.168.100.24(rw,all_squash,anonuid=50,anongid=50)
第一行,我将/tmp这个目录完全分享出去了,不管客户端来自哪里。
在括号里面的‘rw’就
是Read&Write的意思,而‘no_root_squash’呢,则是允许让使用者具备root的权限,在某
些特别情况下,例如使用bootp登录的无磁碟工作站,是相当好用的。
因为预设情况下NFS会
将root的身份squash为权限最低的anonymous(nobody)身份,而其他身份则以client端机
器上当时拥有的UserID和GroupID(指号码的值)来建立档案。
注意哦,在进权限判断的时候,
不是以UserName来作为身份依据哦,UID和GID的号码最後必须对应到server端的
/etc/passwd,而非client那边的。
第二行,我将/usr/src这个目录分享给以siyongc.domain这个domain做结尾或是以
192.168.100开头的任何机器,而无需使用secureport(insecure),但只具备唯读权限(ro)。
这里,
您要留意"*"的使用,在一些旧版本的NFS您不能用在IP上。
但是,我这里的测试却是可
行的。
第三行,我将/var/ftp/pub/incoming这个目录只分享给192.168.0.22这台机器,且具备了读和
写的权限(rw),但在server上写入的档案,必须换成anonymous身份进行。
但是其後的设定
又将任何anonymous换成设定的UID和GID(这里都是ftp),这样的安排是要确定任何存取
都按指定身份进行。
这个incoming目录预设是不存在的,日後在讨论到FTP服务设定时候会
提到,但您能够自行用mkdir建立,而且为group和others加上+w权限连同sgid和sticky
bit(3777)。
重启源服务器端的nfs服务:
#/etc/init.d/nfsserverstart
在客户端启动portmap服务:
#serviceportmapstart
在客户端mount远程文件夹:
#mount-tnfs远程IP地址:
/data/data
1.1.1.1.拷贝与剪切
本地两个目录间拷贝,目标文件可以使用原文件名,也可改为新名:
#cp/home/file1/home2/file2
拷贝到远程节点,同样文件名可修改,如果拷贝的目录下包含文件,则加-r
#scp[-r]/path/file1目标机器IP:
/path/file3
修改文件名:
#mv旧文件名新文件名
剪切到不同目录并改名
#mv/path1/file1/path2/file2
1.1.1.2.查看文件或目录
查看目录中有哪些内容:
#ll
按时间排序目录中的内容:
#ll–t
查看一个指定的文件,如/oracle/abc.ora
#ll/oracle/abc.ora
1.1.1.3.文件宿主及权限
修改文件的权限:
#chown–R–horacle:
oinstall/abc
其中-R表示将目录下的所有子对象也修改,-h表示强制修改
修改文件宿主:
#chmod+x/abc.sh
为abc.sh脚本增加可执行权限
1.1.1.1.查找文件
查找文件,如abc.ora:
#cd要查找的目录,如果是整个环境中查找则输入/
#find.–name“abc.ora”
在/abc目录下查找名称中包含abc的文件:
#find/abc–name“*abc*”
如果要在根目录下查找,则用:
#find.–name
1.1.1.2.创建链接
在目录/abc下建立一个指向到/wch/a.txt文件的名称为S100ts的连接方法如下:
#ln–s/wch/a.txt/abc/S100ts
1.1.1.3.文本编辑工具
可以使用vi工具编辑文件。
编辑完后,执行Esc->:
wq表示保存退出,执行:
q表示不保存退出,执行:
x表示强制保存只读文本并退出。
如果从本地文本中拷贝一段内容黏贴到linux的文本中,那么每行前面会增加越来越多的空格。
可以在黏贴前先执行esc->:
->setnoai,这样可以与本地文本的格式保持一致。
1.1.1.4.文本个数及大小
统计一个目录下符合条件(文件名中含log字符串)的文件个数:
#ls-al*log*|wc-l
当前目录下所有文件的大小:
#du-k
文件/tmp/wch的大小:
#du-k/tmp/wch
查找大小超过多少K的文件及目录:
#du-k|awk'{if($1>2097152)print$0}'
这个命令的意义是找出当前目录下所有大于2097152K的文件
1.1.1.5.文本句柄
查看oracle用户的进程打开文件句柄的个数:
#lsof-n|greporacle|awk'{print$2}'|sort|uniq-c|sort-nr|more
1.1.1.内存及SWAP管理
1.1.1.1.内存使用情况查看
执行以下命令查看内存使用情况:
#free–m
这里-m表示以M为单位统计。
返回结果例如:
#free-m
totalusedfreesharedbufferscached
Mem:
81147556558070680
-/+buffers/cache:
68041309
Swap:
819726505546
其中Mem表示物理内存的统计信息,-/+buffers/cache表示物理内存的缓存统计,Swap表示硬盘上交换分区的使用情况。
这里使用total1、used1、free1、used2、free2等名称来代表上面统计数据的各值,1、2分别代表第一行和第二行的数据。
total1:
表示物理内存总量。
used1:
表示总计分配给缓存(包含buffers与cache)使用的数量,但其中可能部分缓存并未实际使用。
free1:
未被分配的内存。
shared1:
共享内存主要用于在UNIX环境下不同进程之间共享数据,是进程间通信的一种方法
buffers1:
系统分配但未被使用的buffers数量。
cached1:
系统分配但未被使用的cache数量。
buffer与cache的区别见后面。
used2:
实际使用的buffers与cache总量,也是实际使用的内存总量。
free2:
未被使用的buffers与cache和未被分配的内存之和,这就是系统当前实际可用内存。
可以整理出如下等式:
total1=used1+free1
total1=used2+free2
used1=buffers1+cached1+used2
free2=buffers1+cached1+free1
很多人误以为free1是实际的剩余内存,还在奇怪为什么Linux系统占用了如此大的内存,其实这是正常的。
buffer与cache的区别
Abufferissomethingthathasyettobe"written"todisk.Acacheissomethingthathasbeen"read"fromthediskandstoredforlateruse.
特别注意:
1.使用TOP命令看到的mem使用情况与这里的第一行含义一致
top-10:
47:
03up12days,20:
08,5users,loadaverage:
1.47,1.21,0.91
Tasks:
193total,1running,191sleeping,0stopped,1zombie
C