Linux经常使用命令—基础篇

工做了几年,常常会使用到一些Linux命令,时间长了也会忘。简单整理了一下,也能加深记忆。如下均为我的平时使用到的一些基本命令,若有纰漏,欢迎随时指正。java

后面打算把Linux服务器性能监控的一些经常使用命令整理分享,欢迎你们关注。 原文连接mysql

1.文件相关命令

#显示隐藏文件
ls -la

#易读方式显示文件大小
ls -lh

#按最后修改时间显示
ls -lt

#创建软连接
ln -s /folder /folder_via_soft_link

#重命名文件,搜索带2015的文件,重命名为2017
rename 2015 2017 *2015*

#比较两个文件
diff -w file1.txt file2.txt

#一次查看多个文件内容,先file1,再file2
cat file1 file2

#-n 加上行号
cat -n file

#删除文件前先确认,-i,确认
rm -i filename

#拷贝文件1到文件2,保持文件的权限、属组、时间戳
cp -p file1 file2

#删除非空文件夹
rm -rf *2014*

#删除文件后空间不释放,lsof(list open files)
lsof | grep delete

#删除软连接
rm -rf /target

#建立目录
mkdir -p /dir1/dir2/dir3
复制代码

2.du命令

#查询文件夹大小
AIX:du -sg dirname
Linux: du -sh dirname

#按照文件大小,从大到小排序,按照大小排序的话不要加h参数
du -s *|sort -nr|head
复制代码

3.压缩(tar/gzip)

#压缩test文件夹
tar cvf test.tar test/

#查看tar包内容
tar tvf test.tar

#gzip压缩成gz文件
gzip filename

#解压gz
gzip -d file.gz

#显示压缩ratio
gzip -l file.gz
复制代码

4.搜索(find/grep)

#不区分大小写
find ./ -iname *keywords*

#找到文件,执行命令
find ./ -iname *keywords* -exec md5sum {} ;

#删除建立时间大于30天的文件
find ./ -name *keywords* -type f -ctime +30 -exec rm -fr {} ;

#使用xargs解决文件列表过长
find /dirname/ -name "*201410*" |xargs -n 100 rm {} ;

#查询大文件,单位Kb
find ./ -size +500 -exec ls -lh {} ;

#文本中查找,不区分大小写
grep -i "keywords" filename

#在文件夹中递归查找匹配关键字的
grep -r "keywords" *

#grep中实现or操做:寻找mysql与java进程,打印出pid与最后一列
ps -ef|grep 'mysql\|java'|awk '{print $2, $NF}'
复制代码

5.sed

#sed = stream editor
#-n 只打印匹配的行
sed -n '2p' filename #第2行
sed -n "1000,1200p" filename #1000~1200行

#打印匹配字段的行
sed -n '/kw1/p' filename

#截取两个字符串之间的内容
sed -n '/kw1/,/kw2/p' filename

#example:编辑bin文件,将字段替换生成新文件
cat  XX_1030.bin | sed -e 's/20141030/20141031/g' > xx_1031.bin
复制代码

6.awk

#格式化输出
awk '{print $1,$4}' test.txt #显示文件一、4列

#与ps命令结合
ps -ef|grep java|awk '{print $1,$2}'

#打印出最后一列,使用用$NF
ps -ef|grep 'mysql\|java'|awk '{print $2, $NF}'

#kill掉java进程
kill -9 `ps -ef|grep java |awk '{print $2}'`

#正则匹配:输出第二列包含you的行,并打印第一列,第二列;~模式开始,//内是模式
awk '$2 ~ /you/ {print $1,$2}' test.txt

#计算文件大小
ls -l *.txt |awk '{sum+=$5} END {print sum}'
df -m|awk '{sum+=$2} END {print sum}'

#参数-F 按照后面字段进行分割
cat /etc/passwd |awk -F ':' '{print $1}'
cat /etc/passwd |awk -F ':' '{print $1" "$6}'
复制代码

7.vim

vim 编辑器命令实在太丰富,这里简单列举几个linux

#打开文件跳到第一个匹配的行
vim +/search_pattern filename

#只读模式打开
vim -R filename

#替换全部匹配文本,命令模式
%s/old/new/g
复制代码

8.网络配置与抓包

#查看全部的网络接口和状态
ifconfig -a

#使用up、down启动或者中止某个接口
ifconfig eth1 down

#查看网络配置
ifconfig |egrep "HWaddr|inet addr"

#查看路由表
route

#向DNS服务器查询域名,默认为UDP,可经过输入set vc改成TCP形式(性能影响较大)
nslookup

#ping,发送5个数据包
ping -c 5 ip

#查询端口状态
netstat -an|grep 3306

#域名解析
配置文件:/etc/resolv.conf
加入dns服务器
nameserver 192.168.2.206

#查看带宽,root用户
ethtool eth1 
Settings for eth1:
	Speed: 10000Mb/s
	
#每1s刷新监控eth1网卡上的流量状况
watch -n 1 "ifconfig eth1|grep bytes"

#tcpdump抓包,文件可用wireshark分析
#-i 网卡;-s size
#解决:Package size limited during capture,加参数 -s0 能够抓取任意长度的数据包
tcpdump host 192.168.2.206 -s0 -w /tmp/net.pcap #抓取全部与hostip之间的网络包,保存为文件

#下载文件到本地
wget --ftp-user=administrator --ftp-password=000000 ftp://192.168.2.206/source/app.out
复制代码

9.查看操做系统版本/CPU/内存

#Linxu查看版本、系统信息
uname -a
cat /proc/version
lsb_release -a

#suse版本查询
more /etc/SuSE-release

#AIX查询配置
prtconf

#cpu查询
cat /proc/cpuinfo

#查看虚拟CPU分配(AIX)
lparstat -i

#内存,用MB显示结果
free -m
cat /proc/meminfo
复制代码

10.帐户与权限

#更改密码
passwd

#root更换其余用户密码,或者建立新用户
passwd username

#Linux解锁用户,AIX使用smitty便可
faillog -u username -r

#Linux新建用户
groupadd -g gid groupname #创建用户组,gid,组名
useradd -d /homedir -g gid -u uid -p #创建用户 home 组 uid 输入密码

#ssh登录
ssh -l username hostname

#用指定用户执行命令,执行完返回原帐户
su - user -c 'ls'

#查询历史命令
history n

#查看当前的环境变量
export

#查看和java有关的环境变量,-i通常都是ignore忽略大小写的意思
export |grep -i JAVA

#查看特定用户的进程
top -u mysql

#修改权限,—R递归修改子目录
chown -R mysql /mysql
chgrp -R mysql /mysql
or:chown -R mysql:mysql *

#用户profile相关
设置当前用户的 .profiles 文件, 进而后 cat ~/.profile 入到 etc 目录,
其实就是进入当前目录的home目录,而后ls -a  就有.profile 文件

#修改用户home
Step1:修改对应的/etc/passwd
Step2:usermod -d /userhome username
复制代码

11.关机与重启

#关闭系统当即关机
shutdown -h now

#10分钟后关机
shutdown -h +10

#重启
shutdown -r now

#重启期间强制进行系统检查
shutdown -Fr now
复制代码

12.rpm安装

#安装
rpm -ivh xxx.rpm

#更新
rpm -uvh xxx.rpm

#卸载
rmp -ev httpd

#编译安装
./configure	#检查依赖,配置编译项
make	#编译
make install	#安装
复制代码

13.service

#查看服务状态
service ssh status

#查看全部服务状态,root权限
service --status-all

#启动telnet服务
service xinetd restart

#启动ftp服务
service vsftpd start

#nfs启动(linux)
rcnfsserver status
rcnfsserver start
service nfs start

#linux设置共享目录
编辑/etc/exports
showmount -e 192.168.2.206 #检查server共享目录
复制代码

14.man

最重要的一个命令,要学会看官方手册git

#whatis
whatis shutdown
shutdown (3p)        - shut down socket send and receive operations
shutdown (8)         - bring the system down
shutdown (2)         - shut down part of a full-duplex connection

#指定特定版本的manual
man 3p shutdown

#查看某个命令的位置
whereis ls

#查看某个命令的描述
whatis ls
复制代码

15.JAVA环境变量配置

#修改 /etc/profile,全局生效
#修改用户$HOME/.profile 对当前用户生效

JAVA_BIN=/usr/jdk/jdk1.6.0_16/bin
export JAVA_BIN
JAVA_HOME=/usr/jdk/jdk1.6.0_16
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
. /etc/profile 生效
复制代码

16.其它

#查看指定用户的crontab
crontab -u root -l
Linux:5,10,15,20,25,30,35,40,45,50,55,0 * * * * /usr/sbin/sntp -P no -r 192.168.2.206
AIX:0,5,10,15,20,25,30,35,40,45,50,55 * * * *  /usr/sbin/ntpdate 192.168.2.206
复制代码

相关文章
相关标签/搜索