首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

软件工程师必备:Linux日常维护命令

2013-02-20 
程序员必备:Linux日常维护命令model name ? ? ?: Intel(R) Xeon(R) CPU ? ? ? ? ? E7330 ?@ 2.40GHz?2)查

程序员必备:Linux日常维护命令
model name ? ? ?: Intel(R) Xeon(R) CPU ? ? ? ? ? E7330 ?@ 2.40GHz?2)查询有多少个CPU(相同physical id为同一个CPU)# more /proc/cpuinfo | grep "physical id" | sort | uniqphysical id ? ? : 0physical id ? ? : 1?3)查询单个CPU核数# more /proc/cpuinfo | grep "cpu cores" | sort | uniqcpu cores ? ? ? : 6?4)查询单个CPU线程数(逻辑处理器)# more /proc/cpuinfo | grep siblings | sort | uniqsiblings ? ? ? ?: 12??二、系统信息1、查看系统信息1)查看内核名称# uname相当于# uname -s2)查看完整的系统信息,包括内核名称、主机名、内核版本、处理器架构等# uname -a?2、查看redhat发行版本信息# more /etc/redhat-release?3、查看主机名# hostname# uname -nhostname对应的配置文件是/etc/sysconfig/network,如果配置文件中HOSTNAME为空、(none)、localhost或localhost.localdomain,就会尝试根据实际IP从/etc/hosts中查找映射的主机名,如果存在则使用该主机名,否则使用原来的HOSTNAME。??三、网络配置1、查看网络服务的状态、启动、停止或重启网络服务#?service?network?status|start|stop|restart?2、显示、设置网络设备1)查看已启用的网络接口信息# ifconfig?2)查看所有网络接口配置# ifconfig -a?3)查看eth0网络接口配置#?ifconfig eth0?4)启用eth0网络接口# ifconfig eth0 up# ifup eth0?5)关闭eth0网络接口# ifconfig eth0 down# ifdown eth0?6)实时(临时)修改eth0的IP地址#?ifconfig eth0 IP地址?7)实时(临时)修改eth0的IP地址、子网掩码# ifconfig eth0 IP地址 netmask 子网掩码?实时地手动修改一些网络接口参数,可以利用ifconfig来实现,如果是要直接以配置文件,亦即是在 /etc/sysconfig/network-scripts里面的ifcfg-ethx等文件的设置参数来启动的话,那就得要通过ifdown或ifup来实现了。ifconfig是一个命令。ifup、ifdown是脚本,它会直接到/etc/sysconfig/network-scripts目录下搜索对应的配置文件,例如ifup eth0,它会找出ifcfg-eth0这个文件的内容,然后加以设置。不过,由于这两个程序主要是搜索设置文件(ifcfg-ethx)来进行启动与关闭的,所以在使用前请确定ifcfg-ethx是否真的存在于正确的目录内,否则会启动失败。另外,如果以ifconfig eth0来设置或者是修改了网络接口后,就无法再以ifdown eth0的方式来关闭了。因为ifdown会分析比较目前的网络参数与ifcfg-eth0是否相符,不符的话,就会放弃这次操作。因此,使用ifconfig修改完毕后,应该要以ifconfig eth0 down才能够关闭该接口。?3、查看网卡配置文件网络接口配置文件目录:/etc/sysconfig/network-scripts,其中,ifcfg-eth0是默认的第一个网络接口,如果机器中有多个网络接口,那么名字依此类推ifcfg-eth1、ifcfg-eth2...# more?/etc/sysconfig/network-scripts/ifcfg-eth0??四、系统服务配置1、查看所有系统服务的运行状态# service --status-all?2、查看服务状态、启动、停止或重启服务#?service 服务名 status|start|stop|restart?3、查询、更新系统服务的运行级别信息1)查看系统服务列表,以及每个服务的运行级别#?chkconfig --list?2)添加服务# chkconfig --add 服务名?3)删除服务# chkconfig --del 服务名?4)开启、关闭或重置在某运行级别的开启情况# chkconfig --level 2345 name <on|off|reset>??五、显示网络、进程状态1、显示网络状态1)查看监听中的sockets# netstat -l?2)查看TCP传输协议的连接情况# netstat -t?3)查看UDP传输协议的连接情况# netstat -u?4)查看当前连接中的所有socket# netstat -a?5)显示网络连接状态,显示IP地址而不使用域名# netstat -n?6)查看监听中的TCP端口# netstat -tnlp?7)查看监听中的UDP端口# netstat -unlp?8)分页显示结果# netstat -anp|more?9)查看端口是否被使用# netstat -nlp | grep 端口号?2、实时监控CPU、内存、进程等使用情况# top输入大写P:按CPU使用率降序排序输入大写M:按内存使用率降序排序?3、进程管理1)查看所有进程#?ps -ef# ps -aux?2)以进程树的格式显示所有进程# ps -ejH?3)通过grep过滤进程如查找tomcat进程一般可以这么写#?ps -ef|grep tomcat?4)关闭进程关闭进程# kill 进程号强制关闭进程# kill -9 进程号??六、磁盘操作1、cd命令切换目录1)切换到指定目录# cd /var/log?2)切换到当前用户的主/HOME目录# cd ~?3)切换到上一级目录# cd ..?4)返回最近访问的目录,这个经常用得到,不需要自己输入目录# cd -?2、pwd命令显示当前的工作目录# pwd?3、ls命令列出目录内容1)列出当前目录的文件及子目录# ls?2)列出指定目录的文件及子目录# ls dir?3)列出当前目录的文件及子目录,包括隐藏文件# ls -a?4)列出当前目录的文件及子目录的详细信息# ls -l?5)列出当前目录的文件及子目录的详细信息,以可读性较好的格式进行显示# ls -lh?6)按修改时间降序排序# ls -lt?7)按修改时间升序排序# ls -lrt??七、文件、目录管理1、目录管理1)创建目录# mkdir dir?2)删除目录# rm -r dir删除目录不提示# rm -rf dir删除目录下的所有文件与目录# rm -rf dir/*?3)重命名、移动目录如果newDir不存在,则oldDir重命名为newDir;如果newDir存在,则将oldDir移动到newDir目录#?mv oldDir newDir?4)复制目录如果newDir2不存在,则将newDir复制一份为newDir2;如果newDir2已存在,则将newDir复制一份移动到newDir2目录#?cp -r newDir newDir2?2、文件管理1)创建空文件# touch file.txt# > file.txt?2)删除文件# rm file.txt删除文件不提示# rm -f file.txt?3)重命名文件# mv file.txt file5.txt?4)移动文件#?mv file.txt newDir移动多个文件或目录到指定目录,将a.txt、b.txt、c.txt、oldDir移动到newDir目录# mv a.txt b.txt c.txt oldDir/ newDir/?5)复制文件#?cp old.txt new.txt将newDir目录下的文件与目录复制到targetDir目录#?cp -r newDir/* targetDir/?3、find命令查找文件或目录?1)寻找当前目录下,所有以file为前缀的文件或子目录# find -name file\*?2)查找文件并将结果输出到filelist.txt文件中#?find -name file\* -fprint filelist.txt?3)列出目录下最近两天之内有变动的文件# find /home -mtime 2?4)寻找dir目录中以file为前缀的文件或目录,寻找时最多只往下找1层子目录# find dir/ -name file\* -maxdepth 2?4、file命令识别文件或目录的类型?1)查看/home/jsam目录下的文件及目录的类型#?file /home/jsam/*?2)查看指定文件或目录的类型# file filename?5、du命令显示文件或目录的大小。?1)显示当前目录下,所有子目录所占用的磁盘空间# du?2)显示当前目录下,所有子目录所占用的磁盘空间。以bytes、K、M、可读性更高的方式显示大小# du -b# du -k# du -m# du -h?3)显示当前目录下,所有子目录所占用的磁盘空间。最多只显示2层子目录# du --max-depth=2?4)显示当前目录下,所有子目录所占用的磁盘空间。显示目录大小时,并不包含其子目录的大小,即目录的大小排除了子目录的大小。# du -S?5)显示当前目录所占用的磁盘空间# du -s# du -sh?6)显示当前目录下,所有子目录及文件各自占用的磁盘空间# du -a?7)列出当前目录里最大的10个文件# du -s * | sort -n | tail注意:不要使用du -sh,尽管-h会使可读性更好,但单位可能不统一?6、sort命令将文本文件内容加以排序。?1)以默认方式对文件内容进行排序显示# sort file.txt?2)以默认方式对文件内容进行反序显示# sort -r file.txt?3)查看进程,根据第二列按默认进行排序# ps -aux | sort -k 2?4)查看进程,按内存使用率升序排序# ps -aux | sort -nk 4?7、grep命令用于查找文件中符合条件的字符串,或用于过滤标准输入流。?1)在当前目录中,从扩展名为log的文件中查找包括“java”字符串的文件# grep java *.log?2)对当前目录及子目录中所有文件,查找包含“java”字符串的文件# grep -r java *?3)查看端口是否被使用# netstat -nlp | grep 端口号?4)通过grep过滤进程如查找tomcat进程一般可以这么写# ps -ef | grep tomcat?5)查看环境变量中的语言类型,忽略大小写# set | grep -i lang?8、tail命令输出文件内容的最后部分?1)显示文件的最后的内容(默认为最后10行)# tail file.txt?2)显示文件的最后20行# tail -n 20 file.txt?3)实时监测日志文件#?tail -f logs/catalina.out?9、cat命令1)查看文件内容该命令一次性显示整个文件内容# cat file.txt?2)只给不为空的行编号(-b, --number-nonblank)#?cat -b file.txt?3)给所有行编号(-n, --number)#?cat -n file.txt?4)有出现连续多个空白行的地方,只保留一个空白行(-s, --squeeze-blank)#?cat -s file.txt?5)合并文件a、b为c# cat a b >> c?6)清空文件# cat /dev/null > g.txt?7)从键盘输入内容创建文件输入内容并回车,再Ctrl+C以保存文件内容# cat > file.txt?10、more命令分页显示文件内容,每次显示一屏,该命令不支持向后/上翻阅。#?more catalina.out?执行more命令之后,支持一系列命令与操作:1)Ctrl+F显示下一整屏2)i 空格若指定i,显示下面的 i 行;否则,显示下一整屏。3)i 回车若指定i,显示下面的 i 行;否则,显示下一行。4)v在当前行启动/usr/bin/vi对之进行编辑修改5)/pattern从光标开始处向文件尾搜索pattern,单击n键查找下一处?11、less命令该命令类似于more命令,但支持向后/上翻阅。#?less catalina.out当执行查找命令时,只反白显示当前这个符合查找条件的字符串# less -g catalina.out当执行查找命令时,不反白显示所有符合查找条件的字符串# less -G catalina.out当执行查找命令时,忽略大小写# less -I catalina.out显示文件内容,并标示每行的行号# less -N catalina.out将数据经由管道导入less命令,以便阅读其内容,最后保存为文件# set | less -o outputfile.txt显示百分比# less -m catalina.out显示百分比、当前所在行及总行数# less -M catalina.out?执行less命令之后,支持一系列命令与操作:1)Ctrl+F显示下一整屏2)i 空格若指定i,显示下面的 i 行;否则,显示下一整屏。3)i 回车若指定i,显示下面的 i 行;否则,显示下一行。支持上下键显示上、下一行4)v在当前行启动/usr/bin/vi对之进行编辑修改5)/pattern从光标开始处向文件尾搜索pattern,小写n查找下一处6)?pattern从光标开始处向文件头搜索pattern,小写n查找下一处,大写N反方向查找下一处?12、vi命令一个强大的Linux文件编辑命令。?1)进入vi的命令打开或新建文件,并将光标置于第一行首# vi filename.txt?打开文件,并将光标置于最后一行首# vi + filename.txt?2)移动光标类命令H:光标移至屏幕顶行?M:光标移至屏幕中间行?L:光标移至屏幕最后行?0:(注意是数字零)光标移至当前行首?$:光标移至当前行尾?3)屏幕翻滚类命令Ctrl+f:向文件尾翻一屏?Ctrl+b:向文件首翻一屏??4)插入文本类命令i:在光标前?I:在当前行首?a:光标后?A:在当前行尾?o:在当前行之下新开一行?O:在当前行之上新开一行??5)删除命令d0:删至行首?d$:删至行尾?ndd:删除当前行及其后n-1行dd:删除当前行?6)搜索及替换命令/pattern:从光标开始处向文件尾搜索pattern??pattern:从光标开始处向文件首搜索pattern?n:在同一方向重复上一次搜索命令?N:在反方向上重复上一次搜索命令?:s/p1/p2:将当前行中的第一个p1用p2替代:s/p1/p2/g:将当前行中所有p1均用p2替代?:n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代?:g/p1/s//p2/g:将文件中所有p1均用p2替换?7)选项设置?number:显示当前行的行号:set nu(set number):显示所有行的行号。或者编辑文件~/.vimrc,添加set nu,这样用vi命令打开文件,就会自动显示行号了:set nonu(set nonumber):隐藏所有行的行号?8)保存、退出等命令:w:保存当前文件?:x:保存当前文件并退出?:q:退出vi?:q!:不保存文件并退出vi?:e!:重新载入内容??八、用户管理1、用户管理添加用户# useradd 用户名删除用户# userdel 用户名修改当前用户的密码# passwd修改指定用户的密码,仅root用户可以指定用户名# passwd 用户名?2、用户组管理添加用户组# groupadd 用户组名删除用户组# groupdel 用户组名?3、查看用户信息查看用户的UID、GID及所归属的用户组# id# id 用户名查看用户信息# finger 用户名# more /etc/passwd | grep 用户名?4、切换用户切换用户但不切换用户的环境变量su 用户名切换用户并切换用户的环境变量su - 用户名?5、查看登录用户信息查看当前登录的用户名# whoami查看当前已登录系统的所有用户# who查看当前已登录系统所有用户的详细信息# w??九、压缩解压1、tar命令文件打包、解压命令,可结合各种算法打包后进行压缩1)将当前目录下所有文件和目录进行打包为my.tar# tar -cf my.tar .?2)打包目录/home/jsam,并显示命令执行过程(-v)#?tar -cvf jsam.tar /home/jsam?3)打包目录log,并检查备份文件是否正确(-W)# tar -cvWf log.tar log?4)打包目录log,并以gzip命令进行压缩# tar -czvf log.tar.gz log?5)解压tar包# tar -xvf foo.tar?6)解压gzip压缩包# tar -xzf foo.tar.gz?7)创建bzip2压缩包# tar -cjf foo.tar.bz2 bar/?8)解压bzip2压缩包,并将解压后的内容存放到bar目录下,bar目录必须已存在# tar -xjf foo.tar.bz2 -C bar/?9)从gzip包中解压出index.html文件# tar -xzf foo.tar.gz index.html?2、zip命令zip包压缩命令1)压缩当前目录下的所有文件及子目录# zip -r first.zip *?3、unzip命令zip包解压命令。可解压java的war工程包1)直接解压文件到当前目录# unzip first.zip?2)从zip包中解压出index.html文件# unzip first.zip?index.html?3)将zip压缩包解压到dir目录下# unzip?first.zip?-d dir?4、bzip2命令bzip2包压缩、解压命令1)压缩文件# bzip2 file.20130126# bzip2 -z?file.20130126结果:file.20130126压缩为file.20130126.bz2,并删除源文件,压缩前后文件的修改时间不变?2)解压文件# bzip2?-d?file.20130126.bz2结果:file.20130126.bz2解缩为file.20130126,并删除源文件,解缩前后文件的修改时间不变??十、权限设置1、chmod命令更改文件或目录的权限。说明:u:文件或目录的拥有者g:文件或目录的所属组o:其他用户r:读权限,数字代号为“4”w:写权限,数字代号为“2”x:执行权限,数字代号为“1”-:不具任何权限,数字代号为“0”读、写与执行的数字代号可以相加形成组合权限,如6、5、3、7分别表示读写、读执行、写执行、读写执行权限?1)给文件所属组增加写权限# chmod g+w filename.txt?2)增加所有用户对文件的执行权限#?chmod +x filename.txt?3)取消所有用户对文件的执行权限#?chmod a-x filename.txt?4)设置文件拥有者读写权限,所属组读写权限,其他人读权限# chmod 664 filename.txt?5)设置文件拥有者读写执行权限,所属组读执行权限,其他人没任何权限#?chmod u=rwx,g=rx,o=- filename.txt?2、chown命令更改文件或目录的拥有者或所属组。?1)更改文件的拥有者为user1,所属组为group1# chown user1.group1 filename.txt?2)更改dir目录下的所有文件和子目录的拥有者和所属组# chown -R user1.group1 dir?3)改文件主人# chown zhanjia a.c 把文件a.c的主人改为zhanjia?3、chgrp命令更改文件或目录的所属组。?1)把文件的所属组改为jsam# chgrp jsam tomcat6.0.35.tar.gz?2)更改dir目录下的所有文件和子目录的所属组# chgrp -R jsam dir/??十一、文件传输1、ftp命令1)FTP登录服务器# ftp 主机地址?2)下载文件下载单个文件ftp> get file.txt下载多个文件ftp>?mget *.txtftp>?mget file1.txt file2.txt?3)上传文件上传单个文件ftp>?put file.txt上传多个文件ftp>?mput *.txtftp>?mput file1.txt file2.txt?4)mget、mput、mdelete等批处理操作的提示开关设置ftp>?prompt on|off?5)删除远程文件删除远程文件ftp> delete file.txt删除多个远程文件ftp> mdelete file1.txt?file2.txt?6)远程目录管理在远程建立目录ftp> mkdir dir删除远程目录ftp>?rmdir dir重命名远程文件或目录ftp> rename src dest?7)在本地端(客户端Linux)执行指定的命令。这个命令很实用,可以在不退出ftp的情况下查看本地端的情况语法:!<命令>ftp> !lsftp> !dir?8)其他命令help <命令>、? <命令>:帮助命令,不指定<命令>则列出所有可用的操作命令ascii、asc:将传输数据的模式设成ASCII模式,适用于传输文本文件binary、bin:将传输数据的模式设成二进制模式,适用于传输程序文件ls、cd、pwd:一般的用法与linux命令相同user <用户账号>:以指定的用户账号及密码登录FTP服务器bye:退出ftp?2、scp命令远程文件安全复制命令。数据传输使用ssh,并且和ssh使用相同的认证方式,提供相同的安全保证。语法:scp [options] [[user@]host1:]file1 [...] [[user@]host2:]file2一般用法:scp [可选项] 源文件/目录 目标文件/目录?1)下载文件将远程文件下载到当前目录scp jsam@119.132.224.1:/opt/server/apache-tomcat-6.0.35.tar.gz .将远程文件下载为本地文件/root/tomcat6.0.35.tar.gzscp jsam@119.132.224.1:/opt/server/apache-tomcat-6.0.35.tar.gz /root/tomcat6.0.35.tar.gz?2)上传文件将本地文件上传到远程目录scp tomcat6.0.35.tar.gz jsam@119.132.224.1:/opt/?3)下载目录将远程目录下载到当前目录scp -r jsam@119.132.224.1:/opt/server .如果/root/client不存在,则将/opt/server下载为/root/client;如果存在,则将/opt/server下载到为/root/client的子目录scp -r jsam@119.132.224.1:/opt/server /root/client?4)通过指定源、目标IP,可以同步任意操作两台服务器的文件与目录scp root@192.168.0.102:/root/tomcat6.0.35.tar.gz jsam@119.132.224.1:/opt/software/?3、wget命令从互联网下载文件。下载www.iteye.com首页# wget www.iteye.com下载文件# wget?http://www.fayea.com/apache-mirror/tomcat/tomcat-6/v6.0.36/bin/apache-tomcat-6.0.36.zip断点续传# wget -c?http://www.fayea.com/apache-mirror/tomcat/tomcat-6/v6.0.36/bin/apache-tomcat-6.0.36.zip后台下载,同时生成日志文件wget-log# wget -b http://www.fayea.com/apache-mirror/tomcat/tomcat-6/v6.0.36/bin/apache-tomcat-6.0.36.zip??十二、其他命令1、wc命令计算字数。可以计算文件的字节数、字数、字符数或行数。1)计算文件行数# wc -l messages.txt?2)计算文件的字节数# wc -c messages.txt?3)通过管道的方式计算文件个数# ls | wc -l?2、rpm命令rpm包管理命令?1)安装rpm包# rpm -ivh gcc.rpm?2)升级rpm包# rpm -Uvh gcc.rpm?3)卸载rpm包# rpm -e gcc?4)查询已安装的rpm包# rpm -qa?3、查找历史命令1)history命令显示执行过的命令# history?执行编号为158的命令# !158?2)通过Ctrl+R进行反向查找执行过的命令组合按键Ctrl+R,输入要查询字符串,再重复组合按键Ctrl+R进行反向查找。Ctrl+C:取消查找Esc:结束查找,获取已查找到的命令回车:直接执行查找到的命令?4、md5sum命令计算文件的MD5消息摘要# md5sum filename.txt?5、set命令查询或设置环境变量?1)查询当前环境变量# set?6、mount命令挂载文件系统?1)将/dev/hdb1挂载到/mnt/hdb1# mount /dev/hdb1 /mnt/hdb1?2)将/dev/hdb1挂载到/mnt/hdb1,并指定载入的是vfat文件系统# mount -t vfat /dev/hdb1 /mnt/hdb1?7、umount命令卸载文件系统?1)卸载文件系统# umount?/dev/hdb1?8、nohup命令不挂断地运行命令,结合&可实现用户退出终端或注销之后,让程序一直在后台运行。# nohup ./start.sh &?9、date命令显示或设置系统时间与日期。?1)显示当前系统的日期与时间# date#?date "+%Y-%m-%d %H:%M:%S"?2)设置系统的时间与日期# date -s "2013-2-10 12:59:00"# date -s "2013/2/10"# date -s "2014-3-12"# date -s "12:59:00"?10、ssh命令ssh远程登录# ssh 用户名@IP地址?11、ping命令检测主机,通常用来检测主机的网络功能是否正常,两台主机之间网络是不是通的?1)持续检测IP,直至用户主动结束# ping?192.168.0.100?2)发出5个ping包进行检测#?ping -c 5 192.168.0.100?12、telnet命令远程登录命令?1)登录主机# telnet 192.168.0.100?2)检查TCP端口8080是否正在监听#?telnet 192.168.0.100 8080??在本文的编写过程中,发现内容越写越多,一直写不完。由于linux的命令都很强大,似乎每个命令都很重要,但追求大而全不是本文的初衷,所以建议大家根据实际环境与自己的使用习惯,形成一份可以随身携带与查看的小手册。?参考资料:《Linux命令详解词典》http://coolshell.cn/articles/8883.htmlhttp://vbird.dic.ksu.edu.tw/linux_basic/linux_basic.phphttp://www.ctohome.com/FuWuQi/1b/414.htmlhttp://www.aka.org.cn/Lectures/002/Lecture-2.1.2/index.htmlhttp://book.51cto.com/art/200712/61562.htm

热点排行