Linux日常维护命令

18
53
2
  1. 云栖社区>
  2. 博客>
  3. 正文

Linux日常维护命令

zhubaojie 2018-07-05 08:58:42 浏览9759
展开阅读全文

对于程序员来说,掌握一些基本的Linux命令是必不可少的,即使现在用不到,在不久的将来也应该会用到。由于Linux有很多命令,每个命令基本可以用一篇文章介绍,所以本文仅总结一些常用命令的常用用法,如有明显的遗漏或错误,请各位帮忙指出,谢谢!

以下内容基于测试环境:Red Hat 4.5/5

一、服务器硬件配置
1、查看硬盘及分区情况

fdisk -l

2、查看分区空间使用情况
可以查看各分区大小、已使用、可用、已使用百分比、挂载情况
1)默认单位为K

df

2)可读性更好的显示,如单位M、G等

df -h

3、查看内存信息
1)使用free命令
默认单位为K,可通过结合参数-b、-k、-m分别以单位B、K、M进行显示

free

free -b

free -k

free -m

2)查看/proc/meminfo文件,可以获得比free命令更详细内存信息

cat /proc/meminfo

4、CPU信息
1)查询CPU基本信息

more /proc/cpuinfo

more /proc/cpuinfo | grep "model name" | sort | uniq

model name : Intel(R) Xeon(R) CPU E7330 @ 2.40GHz

2)查询有多少个CPU(相同physical id为同一个CPU)

more /proc/cpuinfo | grep "physical id" | sort | uniq

physical id : 0
physical id : 1

3)查询单个CPU核数

more /proc/cpuinfo | grep "cpu cores" | sort | uniq

cpu cores : 6

4)查询单个CPU线程数(逻辑处理器)

more /proc/cpuinfo | grep siblings | sort | uniq

siblings : 12

二、系统信息
1、查看系统信息
1)查看内核名称

uname

相当于

uname -s

2)查看完整的系统信息,包括内核名称、主机名、内核版本、处理器架构等

uname -a

2、查看redhat发行版本信息

more /etc/redhat-release

3、查看主机名

hostname

uname -n

hostname对应的配置文件是/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

五、显示网络、进程状态
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 *.txt
ftp> mget file1.txt file2.txt

3)上传文件
上传单个文件
ftp> put file.txt
上传多个文件
ftp> mput *.txt
ftp> 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> !ls
ftp> !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.gz
scp 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的命令都很强大,似乎每个命令都很重要,但追求大而全不是本文的初衷,所以建议大家根据实际环境与自己的使用习惯,形成一份可以随身携带与查看的小手册。

网友评论

登录后评论
0/500
评论
zhubaojie
+ 关注