Linux 维护常用命令.docx
《Linux 维护常用命令.docx》由会员分享,可在线阅读,更多相关《Linux 维护常用命令.docx(12页珍藏版)》请在冰豆网上搜索。
Linux维护常用命令
Linux维护常用命令
1、查看某文件的一部分
如果你只想看文件的前5行,可以使用head命令,
如:
head-5/etc/passwd
如果你想查看文件的后10行,可以使用tail命令,
如:
tail-10/etc/passwd
查看文件中间一段,可以使用sed命令
如:
sed–n'5,10p'/etc/passwd这样你就可以只查看文件的第5行到第10行
2、将file.txt里的123改为456
方法1
sed's/123/456/g'file.txt>file.txt.new修改的保存到其它文件
sed-i's/123/456/g'file.txt直接修改原文件
方法2
vifile.txt
输入命令:
:
%s/123/456/g
注意:
如果替换的文件有特殊符号如/就要用来取消。
例:
sed-i's//usr/local/apache2/hotdogs//vary/www/html/g'/usr/local/apache2/conf/httpd.conf
如果只是下原有的行后添加就用&
例:
sed-i's/DirectoryIndexindex.htmlindex.html.var/&index.htmindex.php/g'/usr/local/apache2/conf/httpd.conf
3、echo典型应用
echo"abcdefg"|perl-lne'{$a=reverse($_);print$a;}'把一个字符串翻转
echobottle|rev把一个字符串翻转
[文件目录管理]
1、删除几天以前的所有东西(包括目录名和目录中的文件)
1)find.-crime+3-execram-fro{};
2)find./-mime+3-print|xargsram-f–r
2、在多级目录中查找某个文件的方法
1)find/dir-namefilename.ext
2)du-a|grepfilename.ext
3)locatefilename.ext
3、删除软硬连接注意点
删除软件连接的时候一定要记得不要在删除的文件夹后加一斜杠,
ram-ffilename/
会说这是一个文件夹不能删除
ramfilename
会提示说是否要删除这个连接。
如果用的第一种可能会把其它文件都删除
4、删除目录中含输入关键字的文件
find/mnt/ebook/-typef-execgrep"在此输入关键字"{};-print-execram{};
5、在当前目录下解压rpm文件
catkernel-ntfs-2.4.20-8.i686.rpm|rpm2cpio|pax–r
6、用命令清空Root回收站中的文件
cd/vary/.Trash-root
ram-fro*
[系统与安全]
1、让用户的密码必须有一定的长度,并且符合复杂度
vi/etc/login.defs,修改PASS_MIN_LEN
2、用dat查询昨天的日期
date--date='yesterday'
3、修改系统时
1)设置你的时区:
timeconfig里选择Asia/Shanghai(如果你位于GMT+8中国区域)
2)与标准时间服务器校准:
ntpdatetime.nist.gov
date-s“2003-04-14cst”,cst指时区,时间设定用date-s18:
10
修改后执行clock-w写到CMOS
3)将当前软件系统时间写入硬件时钟:
hwclock–systohc
4、改变redhat的系统语言/字符集
修改/etc/sysconfig/i18n文件,如
LANG="en_US",xwindow会显示英文界面,
LANG="zh_CN.GB18030",xwindow会显示中文界面。
还有一种方法
cp/etc/sysconfig/i18n$HOME/.i18n
vi$HOME/.i18n文件,如
LANG="en_US",xwindow会显示英文界面,
LANG="zh_CN.GB18030",xwindow会显示中文界面。
这样就可以改变个人的界面语言,而不影响别的用户
5、查看系统信息
cat/proc/cpuinfo-CPU(i.e.vendor,Mhz,flagslikemmx)
cat/proc/interrupts-中断
cat/proc/ioports-设备IO端口
cat/proc/meminfo-内存信息(i.e.memused,free,swapsize)
cat/proc/partitions-所有设备的所有分区
cat/proc/pci-PCI设备的信息
cat/proc/swaps-所有Swap分区的信息
cat/proc/version-Linux的版本号相当于uname-r
uname-a-看系统内核等信息
6、让linux自动同步时间
vi/etc/crontab
加上一句:
0001**rootrdate-stime.nist.gov
7、如何防止某个关键文件被修改
在Linux下,有些配置文件是不允许任何人(包括root)修改的。
为了防止被误删除或修改
可以设定该文件的“不可修改位(immutable)”。
命令如下:
#chattr+i/etc/fstab
如果需要修改文件则采用下面的命令:
#chattr-i/etc/fstab
[管理与网络]
1、lsof用法小全
lsofabc.txt显示开启文件abc.txt的进程
lsof-i:
22知道22端口现在运行什么程序
lsof-cnsd显示nsd进程现在打开的文件
lsof-ggid显示归属gid的进程情况
lsof+d/usr/local/显示目录下被进程开启的文件
lsof+D/usr/local/同上,但是会搜索目录下的目录,时间较长
lsof-d4显示使用fd为4的进程
lsof-i[i]用以显示符合条件的进程情况
语法:
lsof-i[46][protocol][@hostname|hostaddr][:
service|port]
46-->IPv4orIPv6
protocol-->TCPorUDP
hostname-->Internethostname
hostaddr-->IPv4位置
service-->/etc/service中的servicename(可以不止一个)
port-->端口号(可以不止一个)
例子:
TCP:
25-TCPandport25
@1.2.3.4-InternetIPv4hostaddress1.2.3.4tcp@ohaha.ks.edu.tw:
ftp-TCPprotocolhost:
ohaha.ks.edu.twservicename:
ftp
lsof-n不将IP转换为hostname,预设是不加上-n参数
例子:
lsof-itcp@ohaha.ks.edu.tw:
ftp-n
lsof-p12看进程号为12的进程打开了哪些文件
2、grep不显示本身进程
#ps-aux|grephttpd|grep-vgrep
grep-vgrep可以取消显示你所执行的grep本身这个进程,-v参数是不显示所列出的进程名
3、查看本机IP
ifconfig|grep"inet"|cut-c0-36|sed-e's/[a-zA-Z:
]//g'
hostname–i
4、查看有多少活动的Httpd进程
#!
/bin/sh
while(true)
do
pstree|grep"*[httpd]$"|sed's/.*-([0-9][0-9]*)*[httpd]$/1/'
sleep3
done
同样可以引用到其它的进程
5、设置com1口,让超级终端通过com1口进行登录
第一步:
确认有/sbin/agetty,编辑/etc/inittab,添加
7:
2345:
respawn:
/sbin/agetty/dev/ttyS09600
9600bps是因为连路由器时缺省一般都是这种速率,也可以设成
19200、38400、57600、115200
第二步:
修改/etc/securetty,添加一行:
ttyS0,确保root用户能登录
第三步:
重启机器,就可以拔掉鼠标键盘显示器(启动时最好还是要看看输出信息)了
6、查找或删除正在使用某文件的进程
fuserfilename
fuser-kfilename
7、已知网络中一个机器的硬件地址,如何知道它所对应的IP地址
在Linux下,假定要查“00:
0A:
EB:
27:
17:
B9”这样一个硬件地址所对应的IP地址,可以使
用以下命令:
#cat/proc/net/arp|grep00:
0A:
EB:
27:
17:
B9
192.168.2.540x10x600:
0A:
EB:
27:
17:
B9*eth2
另外,还可以用“arp-a”命令查询:
#arp–a|grep00:
0A:
EB:
27:
17:
B9
(192.168.2.54)at00:
0A:
EB:
27:
17:
B9[ether]oneth2
8、在Linux下如何绑定IP地址和硬件地址
可以编辑一个地址对应文件,里面记录了IP地址和硬件地址的对应关系,然后执行“arp–
f地址对应文件”。
如果没有指定地址对应文件,则通常情况下一默认文件/etc/ethers为准。
地址对应文件的格式如下:
192.168.0.100:
0D:
61:
27:
58:
93
192.168.0.200:
40:
F4:
2A:
2E:
5C
192.168.0.300:
0A:
EB:
5E:
BA:
8E
9、更改eth0是否混杂模式(混杂模式可以监听其它主机的信息)
网卡eth0改成混杂模式:
ifconfigeth0promisc
关闭混杂模式:
ifconfigeth0–promisc
10、linux下清空arp表的命令
#arp-d-a(适用于bsd)
forHOSTin`arp|sed'/Address/d'|awk'{print$1}'`;doarp-d$HOST;done
11、如何得到网卡的MAC地址
arp-a|awk'{print$4}'
ifconfigeth0|head-1|awk'{print$5}'
12、一个网卡绑定多ip
方法一、建立eth0:
1在网卡后加冒号和数字的文件
cp/etc/sysconfig/network-scripts/eth0/etc/sysconfig/network-scripts/eth0:
1
再修改下eth0:
1就可以了.
方法二、
在/etc/sysconfig/network-scripts/下创建一个文件:
ifcfg-ethX-rangeX("X"为网卡号)
文件内容:
IPADDR_START=
IPADDR_END=
CLONENUM=0
可以有256个ip
13、一个ip如何绑定两块网卡
假设192.168.0.88是ip,192.168.0.1是网关:
/sbin/modprobebondingmiimon=100mode=1
/sbin/ifdowneth0
/sbin/ifdowneth1
/sbin/ifconfigbond0192.168.0.88
/sbin/ifenslavebond0eth0eth1
/sbin/routeadddefaultgw192.168.0.1
14、设置ssh上来能不自动断线
修改自己HOME目录下的.bash_profile文件,加上
exportTMOUT=1000000(以秒为单位)
然后运行source.bash_profile
15、mount局域网上其他windows机器共享出的目录
mount-tsmbfs-ousername=guest,password=guest//machine/path/mnt/cdrom
16、向登陆到同一台服务器上的所有用户发一条信息
1)输入wall并回车
2)输入要发送的消息
3)结束时按“Control-d”键,消息即在用户的控制窗口中显示
17、向远程机器上的所有用户发送消息
使用rwall(向所有人远程写)命令同时发送消息到网络中的所有用户。
rwallhostnamefile
当使用CDE或OpenWindows等窗口系统时,每个窗口被看成是一次单个的登录;
如果用户登录次数超过一次则消息直接发送到控制窗口
18、向网络中的所有用户发送消息
发送消息到网络中的所有用户
1)输入rwall-nnetgroup并回车
2)输入要发送的消息
3)结束时按“Control-d”键,消息即在系统每个用户的控制窗口中显示,下面是系统管理员
发消息到网络组Eng每个用户的例子:
%rwall-nEngSystemwillberebootedat11:
00.(Control-d)
%
用户控制窗口中的消息:
Broadcastmessagefromrootonconsole…Systemwillberebootedat
11:
00.EOF
注意:
也可以通过rwallhostname(主机名)命令到系统的所有用户
19、将top的结果输出到文件中
top-d2-n3-b>test.txt
可以把top的结果每隔2秒,打印3次,这样后面页的进程也能够看见了
20、装双系统不能看到另一个系统的解决办法
首先光盘启动,进入rescue模式,运行GRUB,进入grub提示符grub>,然后敲入下面的
语句,重启就好了。
root(hd0,2),setup(hd0)
21、压缩传输文件或目录
传输到远程:
tarczf-www|sshserver"tarzxf-"
压缩到远程:
tarczf-www|sshserver"cat>www.tar.gz"
解压到远程:
sshserver"tarzxf-"解压到本地:
sshserver"catwww.tar.gz"|tarzxf-
22、命令行下发送带附件的邮件
方法1.uuencode|mail-s"title"mail@address
本地需要作为附件的文件名。
邮件中的附件文件名,可以和不同,其实内容一样。
方法2.cat|mutt-s"title"-amail@address
邮件正文内容。
本地需要作为附件的文件名。
[Mysql维护]
1、mysql的数据库存放在什么地方
1)如果使用rpm包安装,应该在/vary/lib/mysql目录下,以数据库名为目录名
2)如果源码安装在/usr/local/mysql中,应该在/usr/local/mysql/vary中,以数据库名为目录名
2、从mysql中导出和导入数据
导出数据库
mysqldump数据库名>文件名
导入数据库
mysqladmincreate数据库名
mysql数据库名<文件名
3、忘了mysql的root口令怎么办
#servicemysqlstop
#mysqld_safe--skip-grant-tables&
#mysqladmin-uuserpassword'newpassword''
#mysqladminflush-privileges
4、mysqld起来了,却无法登录,提示"/vary/lib/mysql/mysql.sock"不存在
这种情况大多数是因为你的mysql是使用rpm方式安装的,它会自动寻找
/vary/lib/mysql/mysql.sock这个文件,
通过unixsocket登录mysql。
常见解决办法如下:
1)创建/修改文件/etc/f,至少增加/修改一行
[mysql]
[client]
socket=/tmp/mysql.sock
#在这里写上你的mysql.sock的正确位置,通常不是在/tmp/下就是在/vary/lib/mysql/下
2)指定IP地址,使用tcp方式连接mysql,而不使用本地sock方式
#mysql-h127.0.0.1-uuser-ppassword
3)为mysql.sock加个连接,比如说实际的mysql.sock在/tmp/下,则
#ln-s/tmp/mysql.sock/vary/lib/mysql/mysql.sock即可
5、导出数据的几种常用方法
1)使用mysqldump
#mysqldump-uuser-ppassword-Bdatabase--tablestable1--tablestable2>
dump_data_20051206.sql
详细的参数
2)backupto语法
mysql>BACKUPTABLEtbl_name[,tbl_name...]TO'/path/to/backup/directory';
详细请查看mysql手册
3)mysqlhotcopy
#mysqlhotcopydb_name[/path/to/new_directory]
或
#mysqlhotcopydb_name_1...db_name_n/path/to/new_directory
或
#mysqlhotcopydb_name./regex/
详细请查看mysql手册
4)selectintooutfile
详细请查看mysql手册
5)客户端命令行
#mysql-uuser-ppassword-e"sqlstatements"database>result.txt
以上各种方法中,以mysqldump最常用
6、如何在命令行上执行sql语句
#mysql-uuser-ppassword-e"sqlstatements"database
7、导入备份出来文件的常见方法
1)由mysqldump出来的文件
#mysql-uuser-ppassword[database]2)文件类型同上,使用source语法
mysql>source/path_to_file/dump.sql;
3)按照一定格式存储的文本文件或csv等文件
#mysqlimport[options]databasefile1[file2....]
详细请查看mysql手册
4)文件类型同上,也可以使用loaddata语法导入
详细请查看mysql手册
4、过滤掉#号打头的行,和所有的空行(对于查看配置文档很有用)
awk'/^[^#]/&&/^[^$]/'filename>new.file
7.删除文件大小为零的文件
ram-i`find./-size0`
find./-size0-execram{};
find./-size|xargsram-f&非常有效
forfilein*#自己定义需要删除的文件类型
do
if[!
-s${file}]
then
ram${file}
echo"ram$fileSuccess!
"
fi
done
8.利用现存两个文件,生成一个新的文件
1)取出两个文件的并集(重复的行只保留一份)
2)取出两个文件的交集(只留下同时存在于两个文件中的文件)
3)删除交集,留下其他的行
Acatfile1file2|sort|uniq
Bcatfile1file2|sort|uniq-d
Ccatfile1file2|sort|uniq-u
6、更改字符集
网站因为迁移改变了原有的字符集,导致前台看到乱码。
如果是少数的几个页可以直接拿到本地用Editplus或者UltraEdit进行另存为时选择字符编码。
现在有一个不用拿到本地的方法,在Linux机器上就能进行。
conv-f-t-o
如:
将GB2312转为UTF-8注意:
转成的必须是新的文件名,不然会出错。
/usr/bin/iconv–fGB2312–tUTF-8sourcefile>targetfile
[管理与维护]
增加虚拟内存
26.如果SWAP(交换空间)不够了,要增加怎么办?
只要你的硬盘上有空闲的空间,直接用命令:
mkswape/dev/hda(假设你的驱动器是/dev/hda),swapon/dev/hda;要自动启动SWAPE,可以把新的分区加到/etc/fstab中去,照着原来SWAP的写就行了。
用“free”检查你SWAP的大小,Linux支持最多16个交换分区,每个交换分区最大128MB,没有空闲分区的时候,可以用个大文件来建立,用命令“manmkswap”查看帮助。
#ddif=/dev/zeroof=swapfilebs=1024count=8192
#mkswapswapfile8192
#sync
#swapons