作为程序员,我们仅仅会编码肯定是不够的.随着工作经验的增多,我们掌握的技术必须多样化.而系统的发布部署,环境问题排查也是必不可少的.这里将自己平时总结出来的一些Linux操作技巧分享给大家.


需要完整文档的同学们可以文末留言或者私信我.更多学习资料分享给大家.


工作中最常用的22个linux命令(做了两年程序员还不会操作Linux)(1)


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:\project\insight\run\run\dist\lib\*.jar nms@210.51.37.181:/home/nms/run/run/dist/lib/.


scp2 -P 58822 F:\project\insight\run\run\dist\lib\web.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

需要完整文档的同学们可以文末留言或者私信我.更多学习资料分享给大家.,