Linux日常维护命令

本文发布时间: 2019-Mar-22
对于程序员来说,掌握一些基本的Linux命令是必不可少的,即使现在用不到,在不久的将来也应该会用到。由于Linux有很多命令,每个命令基本可以用一篇文章介绍,所以本文仅总结一些常用命令的常用用法,如有明显的遗漏或错误,请各位帮忙指出,谢谢!以下内容基于测试环境:Red Hat 4.5/5一、服务器硬件配置1、查看硬盘及分区情况# fdisk -l2、查看分区空间使用情况可以查看各分区大小、已使用、可用、已使用百分比、挂载情况1)默认单位为K# df2)可读性更好的显示,如单位M、G等# df -h3、查看内存信息1)使用free命令默认单位为K,可通过结合参数-b、-k、-m分别以单位B、K、M进行显示# free# free -b# free -k# free -m2)查看/proc/meminfo文件,可以获得比free命令更详细内存信息# cat /proc/meminfo4、CPU信息1)查询CPU基本信息# more /proc/cpuinfo# more /proc/cpuinfo | grep 'model name' | sort | uniqmodel name : Intel(R) Xeon(R) CPU E7330 @ 2.40GHz2)查询有多少个CPU(相同physical id为同一个CPU)# more /proc/cpuinfo | grep 'physical id' | sort | uniqphysical id : 0physical id : 13)查询单个CPU核数# more /proc/cpuinfo | grep 'cpu cores' | sort | uniqcpu cores : 64)查询单个CPU线程数(逻辑处理器) # more /proc/cpuinfo | grep siblings | sort | uniqsiblings : 12二、系统信息1、查看系统信息1)查看内核名称# uname相当于# uname -s2)查看完整的系统信息,包括内核名称、主机名、内核版本、处理器架构等# uname -a2、查看redhat发行版本信息# more /etc/redhat-release3、查看主机名# hostname# uname -nhostname对应的配置文件是/etc/sysconfig/network,如果配置文件中HOSTNAME为空、(none)、localhost或localhost.localdomain,就会尝试根据实际IP从/etc/hosts中查找映射的主机名,如果存在则使用该主机名,否则使用原来的HOSTNAME。三、网络配置1、查看网络服务的状态、启动、停止或重启网络服务# service network status|start|stop|restart2、显示、设置网络设备 centos 7,要先安装ifconfig命令工具#yum install net-tools1)查看已启用的网络接口信息# ifconfig# ip addr (centos7)2)查看所有网络接口配置# ifconfig -a3)查看eth0网络接口配置# ifconfig eth04)启用eth0网络接口# ifconfig eth0 up# ifup eth05)关闭eth0网络接口# ifconfig eth0 down# ifdown eth06)实时(临时)修改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-eth3、ifcfg-eth4…# more /etc/sysconfig/network-scripts/ifcfg-eth0四、系统服务配置1、查看所有系统服务的运行状态# service --status-all2、查看服务状态、启动、停止或重启服务# service 服务名 status|start|stop|restart3、查询、更新系统服务的运行级别信息1)查看系统服务列表,以及每个服务的运行级别# chkconfig --list2)添加服务# chkconfig --add 服务名3)删除服务# chkconfig --del 服务名4)开启、关闭或重置在某运行级别的开启情况# chkconfig --level 2345 name <on|off|reset>五、显示网络、进程状态1、显示网络状态1)查看监听中的sockets# netstat -l2)查看TCP传输协议的连接情况# netstat -t3)查看UDP传输协议的连接情况# netstat -u4)查看当前连接中的所有socket# netstat -a5)显示网络连接状态,显示IP地址而不使用域名# netstat -n6)查看监听中的TCP端口# netstat -tnlp7)查看监听中的UDP端口# netstat -unlp8)分页显示结果# netstat -anp|more9)查看端口是否被使用# netstat -nlp | grep 端口号2、实时监控CPU、内存、进程等使用情况# top输入大写P:按CPU使用率降序排序输入大写M:按内存使用率降序排序3、进程管理1)查看所有进程# ps -ef# ps -aux2)以进程树的格式显示所有进程# ps -ejH3)通过grep过滤进程如查找tomcat进程一般可以这么写# ps -ef|grep tomcat4)关闭进程关闭进程# kill 进程号强制关闭进程# kill -9 进程号六、磁盘操作1、cd命令切换目录1)切换到指定目录# cd /var/log2)切换到当前用户的主/HOME目录# cd ~3)切换到上一级目录# cd ..4)返回最近访问的目录,这个经常用得到,不需要自己输入目录# cd -2、pwd命令显示当前的工作目录# pwd3、ls命令列出目录内容1)列出当前目录的文件及子目录# ls2)列出指定目录的文件及子目录# ls dir3)列出当前目录的文件及子目录,包括隐藏文件# ls -a4)列出当前目录的文件及子目录的详细信息# ls -l5)列出当前目录的文件及子目录的详细信息,以可读性较好的格式进行显示# ls -lh6)按修改时间降序排序# ls -lt7)按修改时间升序排序# ls -lrt七、文件、目录管理1、目录管理1)创建目录# mkdir dir2)删除目录# rm -r dir删除目录不提示# rm -rf dir删除目录下的所有文件与目录# rm -rf dir/*3)重命名、移动目录如果newDir不存在,则oldDir重命名为newDir;如果newDir存在,则将oldDir移动到newDir目录# mv oldDir newDir4)复制目录如果newDir2不存在,则将newDir复制一份为newDir2;如果newDir2已存在,则将newDir复制一份移动到newDir2目录# cp -r newDir newDir22、文件管理1)创建空文件# touch file.txt# > file.txt2)删除文件# rm file.txt删除文件不提示# rm -f file.txt3)重命名文件# mv file.txt file5.txt4)移动文件# 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.txt3)列出目录下最近两天之内有变动的文件# find /home -mtime 24)寻找dir目录中以file为前缀的文件或目录,寻找时最多只往下找1层子目录# find dir/ -name file* -maxdepth 24、file命令识别文件或目录的类型1)查看/home/jsam目录下的文件及目录的类型# file /home/jsam/*2)查看指定文件或目录的类型# file filename5、du命令显示文件或目录的大小。1)显示当前目录下,所有子目录所占用的磁盘空间# du2)显示当前目录下,所有子目录所占用的磁盘空间。以bytes、K、M、可读性更高的方式显示大小# du -b# du -k# du -m# du -h3)显示当前目录下,所有子目录所占用的磁盘空间。最多只显示2层子目录# du --max-depth=24)显示当前目录下,所有子目录所占用的磁盘空间。显示目录大小时,并不包含其子目录的大小,即目录的大小排除了子目录的大小。# du -S5)显示当前目录所占用的磁盘空间# du -s# du -sh6)显示当前目录下,所有子目录及文件各自占用的磁盘空间# du -a7)列出当前目录里最大的10个文件# du -s * | sort -n | tail注意:不要使用du -sh,尽管-h会使可读性更好,但单位可能不统一6、sort命令将文本文件内容加以排序。1)以默认方式对文件内容进行排序显示# sort file.txt2)以默认方式对文件内容进行反序显示# sort -r file.txt3)查看进程,根据第二列按默认进行排序# ps -aux | sort -k 24)查看进程,按内存使用率升序排序# ps -aux | sort -nk 47、grep命令用于查找文件中符合条件的字符串,或用于过滤标准输入流。1)在当前目录中,从扩展名为log的文件中查找包括“java”字符串的文件# grep java *.log2)对当前目录及子目录中所有文件,查找包含“java”字符串的文件# grep -r java *3)查看端口是否被使用# netstat -nlp | grep 端口号4)通过grep过滤进程如查找tomcat进程一般可以这么写# ps -ef | grep tomcat5)查看环境变量中的语言类型,忽略大小写# set | grep -i lang8、tail命令输出文件内容的最后部分1)显示文件的最后的内容(默认为最后10行)# tail file.txt2)显示文件的最后20行# tail -n 20 file.txt3)实时监测日志文件# tail -f logs/catalina.out9、cat命令1)查看文件内容该命令一次性显示整个文件内容# cat file.txt2)只给不为空的行编号(-b, –number-nonblank)# cat -b file.txt3)给所有行编号(-n, –number)# cat -n file.txt4)有出现连续多个空白行的地方,只保留一个空白行(-s, –squeeze-blank)# cat -s file.txt5)合并文件a、b为c# cat a b >> c6)清空文件# cat /dev/null > g.txt7)从键盘输入内容创建文件输入内容并回车,再Ctrl+C以保存文件内容# cat > file.txt10、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.txt2)移动光标类命令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:从光标开始处向文件首搜索patternn:在同一方向重复上一次搜索命令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/jsam3)打包目录log,并检查备份文件是否正确(-W)# tar -cvWf log.tar log4)打包目录log,并以gzip命令进行压缩# tar -czvf log.tar.gz log5)解压tar包# tar -xvf foo.tar6)解压gzip压缩包# tar -xzf foo.tar.gz7)创建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.html2、zip命令zip包压缩命令1)压缩当前目录下的所有文件及子目录# zip -r first.zip *3、unzip命令zip包解压命令。可解压java的war工程包1)直接解压文件到当前目录# unzip first.zip2)从zip包中解压出index.html文件# unzip first.zip index.html3)将zip压缩包解压到dir目录下# unzip first.zip -d dir4、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.txt2)增加所有用户对文件的执行权限# chmod +x filename.txt3)取消所有用户对文件的执行权限# chmod a-x filename.txt4)设置文件拥有者读写权限,所属组读写权限,其他人读权限# chmod 664 filename.txt5)设置文件拥有者读写执行权限,所属组读执行权限,其他人没任何权限# chmod u=rwx,g=rx,o=- filename.txt2、chown命令更改文件或目录的拥有者或所属组。1)更改文件的拥有者为user1,所属组为group1# chown user1.group1 filename.txt2)更改dir目录下的所有文件和子目录的拥有者和所属组# chown -R user1.group1 dir3)改文件主人# chown zhanjia a.c 把文件a.c的主人改为zhanjia3、chgrp命令更改文件或目录的所属组。1)把文件的所属组改为jsam# chgrp jsam tomcat6.0.35.tar.gz2)更改dir目录下的所有文件和子目录的所属组# chgrp -R jsam dir/十一、文件传输1、ftp命令1)FTP登录服务器# ftp 主机地址2)下载文件下载单个文件ftp> get file.txt下载多个文件ftp> mget *.txtftp> mget file1.txt file2.txt3)上传文件上传单个文件ftp> put file.txt上传多个文件ftp> mput *.txtftp> mput file1.txt file2.txt4)mget、mput、mdelete等批处理操作的提示开关设置ftp> prompt on|off5)删除远程文件删除远程文件ftp> delete file.txt删除多个远程文件ftp> mdelete file1.txt file2.txt6)远程目录管理在远程建立目录ftp> mkdir dir删除远程目录ftp> rmdir dir重命名远程文件或目录ftp> rename src dest7)在本地端(客户端Linux)执行指定的命令。这个命令很实用,可以在不退出ftp的情况下查看本地端的情况语法:!<命令>ftp> !lsftp> !dir8)其他命令help <命令>、? <命令>:帮助命令,不指定<命令>则列出所有可用的操作命令ascii、asc:将传输数据的模式设成ASCII模式,适用于传输文本文件binary、bin:将传输数据的模式设成二进制模式,适用于传输程序文件ls、cd、pwd:一般的用法与linux命令相同user <用户账号>:以指定的用户账号及密码登录FTP服务器bye:退出ftp2、scp命令远程文件安全复制命令。数据传输使用ssh,并且和ssh使用相同的认证方式,提供相同的安全保证。语法:scp [options] [[user@]host1:]file1 […] [[user@]host2:]file2一般用法:scp [可选项] 源文件/目录 目标文件/目录1)下载文件将远程文件下载到当前目录scp [email protected]:/opt/server/apache-tomcat-6.0.35.tar.gz .将远程文件下载为本地文件/root/tomcat6.0.35.tar.gzscp [email protected]:/opt/server/apache-tomcat-6.0.35.tar.gz /root/tomcat6.0.35.tar.gz2)上传文件将本地文件上传到远程目录scp tomcat6.0.35.tar.gz [email protected]:/opt/3)下载目录将远程目录下载到当前目录scp -r [email protected]:/opt/server .如果/root/client不存在,则将/opt/server下载为/root/client;如果存在,则将/opt/server下载到为/root/client的子目录scp -r [email protected]:/opt/server /root/client4)通过指定源、目标IP,可以同步任意操作两台服务器的文件与目录scp [email protected]:/root/tomcat6.0.35.tar.gz [email protected]:/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.txt2)计算文件的字节数# wc -c messages.txt3)通过管道的方式计算文件个数# ls | wc -l2、rpm命令rpm包管理命令1)安装rpm包# rpm -ivh gcc.rpm2)升级rpm包# rpm -Uvh gcc.rpm3)卸载rpm包# rpm -e gcc4)查询已安装的rpm包# rpm -qa3、查找历史命令1)history命令显示执行过的命令# history执行编号为158的命令# !1582)通过Ctrl+R进行反向查找执行过的命令组合按键Ctrl+R,输入要查询字符串,再重复组合按键Ctrl+R进行反向查找。Ctrl+C:取消查找Esc:结束查找,获取已查找到的命令回车:直接执行查找到的命令4、md5sum命令计算文件的MD5消息摘要# md5sum filename.txt5、set命令查询或设置环境变量1)查询当前环境变量# set6、mount命令挂载文件系统1)将/dev/hdb1挂载到/mnt/hdb1# mount /dev/hdb1 /mnt/hdb12)将/dev/hdb1挂载到/mnt/hdb1,并指定载入的是vfat文件系统# mount -t vfat /dev/hdb1 /mnt/hdb17、umount命令卸载文件系统1)卸载文件系统# umount /dev/hdb18、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.1002)发出5个ping包进行检测# ping -c 5 192.168.0.10012、telnet命令远程登录命令1)登录主机# telnet 192.168.0.1002)检查TCP端口8080是否正在监听# telnet 192.168.0.100 8080在本文的编写过程中,发现内容越写越多,一直写不完。由于linux的命令都很强大,似乎每个命令都很重要,但追求大而全不是本文的初衷,所以建议大家根据实际环境与自己的使用习惯,形成一份可以随身携带与查看的小手册。


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:08pm
栏目列表