作为程序员,我们仅仅会编码肯定是不够的.随着工作经验的增多,我们掌握的技术必须多样化.而系统的发布部署,环境问题排查也是必不可少的.这里将自己平时总结出来的一些Linux操作技巧分享给大家.
需要完整文档的同学们可以文末留言或者私信我.更多学习资料分享给大家.
1 ll (查看子项目录)
2 cd /usr/local/(进入文件)
3 ll
4 mkdir software(创建文件)
5 ll
6 cd software/
7 ll
8 cp jdk-8u111-linux-x64.tar.gz /usr/local/(复制文件到--)
9 cd ../
10 ll
11 tar -zxvf jdk-8u111-linux-x64.tar.gz (解压文件)
12 ll
13 cd software/
14 ll
15 cp apache-tomcat-8.5.20.tar.gz /usr/local/
16 cd ../
17 ll
18 tar -zxvf apache-tomcat-8.5.20.tar.gz
19 ll
20 rm -rf apache-tomcat-8.5.20.tar.gz (删除文件)
21 rm -rf jdk-8u111-linux-x64.tar.gz
22 ll
23 mv apache-tomcat-8.5.20 tomcat8-appserver-8080(重命名)
24 ll
25 cd software/
26 ll
27 cp apache-tomcat-8.5.20.tar.gz /usr/local/
28 cd../
29 cd ../
30 ll
31 tar apache-tomcat-8.5.20.tar.gz
32 tar -zxvf apache-tomcat-8.5.20.tar.gz
33 ll
34 mv apache-tomcat-8.5.20 tomcat8-lmdmserver-8081
35 ll
36 tar -zxvf apache-tomcat-8.5.20.tar.gz
37 ll
38 mv apache-tomcat-8.5.20 tomcat8-wmsserver-8082
39 tar -zxvf apache-tomcat-8.5.20.tar.gz
40 mv apache-tomcat-8.5.20 tomcat8-dubbo-admin-8084
41 ll
42 rm -rf apache-tomcat-8.5.20.tar.gz
43 ll
44 java -version
45 rpm -qa|grep java
46 rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-11.1.13.4.el6.x86_64(卸载)
47 rpm -e --nodeps java-1.7.0-openjdk-1.7.0.65-2.5.1.2.el6_5.x86_64
48 rpm -e --nodeps tzdata-java-2014g-1.el6.noarch
49 ll
50 java -version
51 vim /etc/profile(修改)
52 export JAVA_HOME=/usr/local/jdk1.8.0_111
53 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
54 export JAVA_HOME=/usr/local/jdk1.8.0_111
55 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
56 export JAVA_HOME=/usr/local/jdk1.8.0_111
57 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
58 export PATH=$PATH:$JAVA_HOME/bin
59 java -version
60 cd tomcat8-appserver-8080/conf/
61 ll
62 vim server.xml
63 cat server.xml
64 vim /etc/profile
65 java -version
66 vi /etc/profile
67 source /etc/profile
68 java -version
69 cd /usr/local/
70 cd tomcat8-lmdmserver-8081/conf/
71 ll
72 vim server.xml
73 cd../
74 cd ../
75 cd ..
76 ll
77 cd tomcat8-wmsserver-8082/conf/
78 ll
79 vim server.xml
80 cd ..
81 ll
82 cd tomcat8-dubbo-admin-8084/conf/
83 ll
84 vim server.xml
85 ll
86 cd ../
87 ll
###############################################################################
发布环境:
ps -ef | grep java (查询进程)
Kill -9 30551 (杀死进程)
rm -rf * (删除当前目录下的所有文件)
cd logs (进入日志文件)
./startup.sh (启动)
tail -f catalina.out (查看日志)
##############################################################################
ls -l 查看权限
ls /home 查看所有文件夹
ls /home/nms 查看子文件夹
su - gjmp 切换角色 - 后面有一个空格 不加-当前用户环境,加-切换用户环境
clear 清屏
rm 删除
cd 进入目录
tail -f install.log 查看日志
mv web.xml web.xml.20111211 备份重命名
unzip aa.zip 解压文件
mkdir 创建文件夹
touch 123.txt 创建文件
rm -rf 目录名字 删除目录
man 对命令的方法提供在线帮助
find 查找
find / -name 123.txt --跟目录查找
find . -naem 123.txt
find [路径] -name [要找的文件名,可用*表示] -print这个命令速度慢但是个人觉得是好用的,
sz file1 file2 发文件到windows上(保存的目录是可以配置) 上传
rz -be 并且去掉弹出的对话框中“Upload files as ASCII”前的勾选 下载
在SecureCRT设置一下上传和下载的默认目录
options–>session options–>file transfer 下可以设置上传和下载的目录
#########################################
# #
# mysql操作 #
# #
#########################################
su - mysql 进入mysql
mysql -unms -pnms1234 nms 进入mysql monitor
create database if not exists vpdn default character set gbk; 创建数据库
create user vpdn; 创建用户
grant all privileges on *.* to 'vpdn'@'localhost' identified by 'vpdn1234'; 授权;
grant all privileges on *.* to 'vpdn'@'%' identified by 'vpdn1234'; 授权;
root 用户进去
mysql -pvpdn1234 -u vpdn vpdn; 测试本机是否可以连接
mysql -pvpdn1234 -u vpdn vpdn -h 210.51.37.167 测试外网是否可以连接
show processlist; //查看数据库锁(Lock)
mysqldump -uvpdn -pvpdn1234 vpdn >/usr/tmp/vpdn.sql; -- mysql 数据库备份
mysql -uvpdn -pvpdn1234 </usr/tmp/vpdn.sql
#数据库操作
mysql> show databases; 查看数据库
mysql> use vpdn; 切换数据库
mysql> show tables 查看所有表
mysql> describe 表名 查看表结构
mysql> create database 库名
mysql> create table 表名(字段设定列表);
mysql> drop database 库名; 删库
mysql> drop table 表名; 删表
mysql> delete from 表名; 将表记录清空
mysql> --default-character-set=gbk 修改编码
mysql> alter database db_name default character set gbk;
#数据的导入导出
mysql>
mysql>
mysql>
SELECt to_days('2009-08-06') ;
h 帮助
g 退出
#my sql 启动/停止
启动
# /usr/bin/mysqld_safe --user=mysql &
停止
# /usr/bin/mysqladmin shutdown
一服务的方式 root下直接
service mysqld start
$ mysql -unms -pnms1234 nms
-- 导出数据
mysqldump -unms -pnms1234 -h210.51.37.176 --default-character-set=gbk nms rm_equipment > rm_equipment.dump
mysqldump -R 导出存储过程,缺省的话不导出
-- 导入数
据
mysql -unms -pnms1234 -hlocalhost --default-character-set=gbk nms < rm_equipment.dump
mysql -pnms1234 -unms nms --default-character-set=gbk < init.sql
SELECT partition_ordinal_position as 定义顺序,table_schema as 所属数据库,table_name as 所属表,
partition_name as 分区表名称,partition_method as 分区类型,partition_expression as 分区列名称,
partition_description as 数据范围,table_rows as 数据总数,create_time as 创建时间,
update_time as 修时间 FROM INFORMATION_SCHEMA.partitions WHERe TABLE_SCHEMA= schema() AND TABLE_NAME='user';
mysql > SET @p_inout=1;
mysql > CALL demo_inout_parameter(@p_inout) ;
#########################################
# #
# oracle操作 #
# #
#########################################
su - oracle
登陆 sqlplus userID/pass
执行脚本 sqlplus admin/123@file.sql
查看所有表:select table_name from user_tables;
注:每次更新数据后,要执行 commit 命令;
#########################################
# #
# 应用项目操作 #
# #
#########################################
chmod +x vpdn.sh 加可执行权限
sh vpdn.sh 执行
tail 常用操作
tail -f ../logs/catalina.out 查看日志
tail 100 catalina.out 查看100行内容
tail -200 catalina.out 查看倒数200行日志
vi debug.log
:num //要跳到的行数
enter后跳转
grep "t process message type" debug.log | grep '13:25' 多条件查询
出现如下错误:Binary file (standard input) matches 要加 -a
more debug.log |grep -a '15927132467'| more
more 常用操作
空格 -- 下一页
b -- 上一页
/ -- 在每个档案显示前搜寻该字串(pattern),然后从该字串之后开始显示
more +20 testfile --从第 20 行开始显示 testfile 之档案内容
more .....debug.log |grep 13472896652|more
more /home/card/bp/cardservice/logs/debug.log |grep '2012-03-02 09:2'|more 模糊查找
more /home/card/bp/cardservice/logs/debug.log |grep 057425589999|more
grep -E "Thread-9|NioProcessor-18" debug.log | grep "responseCode = 0"
grep -E "Thread-10|NioProcessor-35" debug.log | grep "responseCode = 0" | wc -l 多条件查询统计
vi 操作
i -- 刚进入时是命令行模式,输入i,进入插入模式
esc -- 退出插入模式
:wq -- 保存退出
:q! -- 不保存退出
/ -- 更具输入内容查找
chown oms:oms -R sms_test/
root身份下进去
chown -R nms:vpdn /home/nms root权限传得东西,nms用户不能操作,必需授权
chmod +x vpdn.sh --加可执行权限
col -bx < vpdn.sh > a.sh 转码
mv a.sh vpdn.sh
chmod +x vpdn.sh
cat scmsmain.log | grep 'groupId=1722311947,' > 1722311947.txt 提取日志到txt文档中
vi debug.log 查看debug.log日志
o 以只读方式打开
/2012-03-04 /查找,后面是匹配符
top cM -u nms 查看实际内存占用
########################
#################
# #
# 系统服务器操作 #
# #
#########################################
一: 查看进程命令
netstat -an | grep 8000 查看端口信息有没有溢出
ps -ef | grep abc --查看进程的名字
netstat -n | grep 80 -- 显示进程的信息端口,查找80端口占用的进程
ssh 192.168.1.1
2012-4-16 移动挂机名片后台死掉(java内存溢出)
exit -- 退出oms,切换到root
ps -ef |grep java -- 查找java线程
kill 9668 -- 杀掉oms用户的java进程
/sbin/ifconfig --查看ip信息
tcpdump -X -s lo -w rh7769.cap host 192.168.23.15 and tcp port 7769 网络抓包
湖北电信挂机
tcpdump -s 2000 -i eth0 port 9001 -w /home/zc001.cap 网络抓包
bond0 网口 这里可以是eth0或者eth1或者lo
port 8855 这里是抓包的端口
nohup <程序名> & 让程序后台执行,即实现守护进程
java -cp 指定classpath
grep -v grep 反检索,找出不匹配的行
top -M 按内存大小排序
JVM 出现异常时,stop有时候不起作用,这时,尝试一下方式
kill -9 pid;
ps -ef |grep java
cd /proc/pid/fd 可以查询连接数
ls -l |wc -l
文件上传
scp2 -P 58822 F:projectinsightrunrundistlib*.jar nms@210.51.37.181:/home/nms/run/run/dist/lib/.
scp2 -P 58822 F:projectinsightrunrundistlibweb.applet-common.jar nms@210.51.37.185:/home/nms/apache-tomcat-6.0.26/webapps/insight/applet/.
scp -P 58822 nms@210.51.37.180:/home/nms/jdk1.6.0_13.tar.gz .
查看run下所有日志
find run -name "*.log" -exec tail -20 {} ; | grep -i ERROR
tail -20 $(find run -name "*.log") |grep -i ERROR
查看网络设配通不通
snmpwalk -v 2c -c raisecom 210.51.46.44 .1.3.6.1.2.1.1.1
比如 gpsd的进程号是1018,其打开到文件包括 ls -l /proc/1018/fd/ 得到如下到结果:
#########################################
# #
# 程序安装操作 #
# #
#########################################
建工作组
groupadd test //新建test工作组
建用户
useradd rockey
修改密码
passwd rockey //1234
#########################################
# #
# 配置环境变量 #
# #
#########################################
ls -a
more .bash_profile
vi .bash_profile :qw 保存退出
或者临时添加
export PATH=.:$PATH
常用压缩文件拓展名
=======================
*.Z compress程序压缩的文件
*.gz gzip程序压缩的文件
*.bz2 bzip2程序压缩的文件
*.tar tar程序打包的数据,并没有压缩
*.tar.gz tar程序打包的文件,其中经过gzip的压缩
*.tar.bz2 tar程序打包的文件,其中经过bzip2的压缩
解压
tar –xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar –xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
压缩
tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!
tar -zcvf filename.tar.gz dirName
tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
tar -zcvf poller1_run.tar.gz run/
scp root@poller1:/home/nms/poller1_run.tar.gz .
tar -xzvf poller1_run.tar.gz
tar -zcvf poller1_apache.tar.gz apa
scp root@poller1:/home/nms/poller1_apache.tar.gz .
tar -xzvf poller1_apache.tar.gz
-- 启动redis
cd /usr/local/bin
./redis-server /meatwms/redis-2.8.19/redis.conf
./redis-sentinel /meatwms/redis-2.8.19/sentinel.conf
ps -ef | grep redis
./redis-cli -h 10.6.137.8 -c -p 6379
./redis-cli -h 10.6.137.9 -c -p 6379
auth "sino_chainwork"
keys sso*
-- zk
/meatwms/zookeeper-3.4.8/bin
./zkServer.sh stop
./zkServer.sh start
jps
source /etc/profile
scp -r app-web sysadm@10.6.137.9:/meatwms/tomcat8-appweb-8080/webapps