Linux 常用命令

**vim 编辑器**

vim  a.txt  创建编辑a.txt文件
vim  xx文件  编辑文件

按Esc进入普通模式,在该模式下使用方向键或者h,j,k,l键可以移动游标

按键	说明
h	左
l	右(小写L)
j	下
k	上
w	移动到下一个单词
b	移动到上一个单词

**插入i**
命令	说明
i	在当前光标处进行编辑
I	在行首插入
A	在行末插入
a	在光标后插入编辑
o	在当前行后插入一个新行
O	在当前行前插入一个新行
cw	替换从光标所在位置后到一个单词结尾的字符

从普通模式输入:进入命令行模式,输入w回车,保存文档。输入:w 文件名可以将文档另存为其他文件名或存到其它路径下

**退出或保存**
命令	说明
:q!	强制退出,不保存
:q	退出
:wq!	强制保存并退出
:w <文件路径>	另存为
:saveas 文件路径	另存为
:x	保存并退出
:wq	保存并退出

普通模式下输入Shift+zz即可保存退出vim

**删除**
命令	说明
x	删除游标所在的字符
X	删除游标所在前一个字符
Delete	同x
dd	删除整行
dw	删除一个单词(不适用中文)
d$或D	删除至行尾
d^	删除至行首
dG	删除到文档结尾处
d1G	删至文档首部

2dd表示一次删除2行

**跳转**
nG(n Shift+g)	游标移动到第 n 行(如果默认没有显示行号,请先进入命令模式,输入:set nu以显示行号)
gg	游标移动到到第一行
G(Shift+g)	到最后一行

普通模式下使用下列命令在行内按照单词为单位进行跳转

命令	说明
w	到下一个单词的开头
e	到当前单词的结尾
b	到前一个单词的开头
ge	到前一个单词的结尾
0或^	到行头
$	到行尾
f<字母>	向后搜索<字母>并跳转到第一个匹配的位置(非常实用)
F<字母>	向前搜索<字母>并跳转到第一个匹配的位置
t<字母>	向后搜索<字母>并跳转到第一个匹配位置之前的一个字母(不常用)
T<字母>	向前搜索<字母>并跳转到第一个匹配位置之后的一个字母(不常用)
依次进行如下操作练习:

在普通模式下,任意跳转到一行,使用w跳转到一个单词的开头,然后使用dw删除这个单词
在普通模式下,使用e跳转到一个单词的结尾,并使用~将游标所在字母变成大写或小写

小技巧:你在完成依次跳转后,可以使用Ctrl+o快速回到上一次(跳转前)光标所在位置,这个技巧很实用,比如当你在写代码时,忽然想起有个bug,需要修改,这时候你跳过去改好了,只需要按下Ctrl+o就可以回到你之前的位置

**复制剪切**
普通模式中使用y复制

普通模式中,yy复制游标所在的整行(3yy表示复制3行)
普通模式中,y^ 复制至行首,或y0。不含光标所在处字符。
普通模式中,y$ 复制至行尾。含光标所在处字符。
普通模式中,yw 复制一个单词。
普通模式中,y2w 复制两个单词。
普通模式中,yG 复制至文本末。
普通模式中,y1G 复制至文本开头。
普通模式中使用p粘贴

普通模式中,p(小写)代表粘贴至光标后(下)
普通模式中,P(大写)代表粘贴至光标前(上)
打开文件进入普通模式练习上述命令,这会儿你就可以随意yy了,一 一+

其实前面讲得dd删除命令就是剪切,你每次dd删除文档内容后,便可以使用p来粘贴,也这一点可以让我们实现一个很爽快的功能——交换上下行:ddp,就这么简单,即实现了快速交换光标所在行与它下面的行

**替换撤销**

命令	说明
r+<待替换字母>	将游标所在字母替换为指定字母
R	连续替换,直到按下Esc
cc	替换整行,即删除游标所在行,并进入插入模式
cw	替换一个单词,即删除一个单词,并进入插入模式
C(大写)	替换游标以后至行末
~	反转游标所在字母大小写
u{n}	撤销一次或n次操作
U(大写)	撤销当前行的所有修改
Ctrl+r	redo,即撤销undo的操作

输入fa 跳转到第一个a字符
输入r,并且输入b,a字符被b字符替换(实用)
输入R替换字符,输入新字符串,输入完按ESC回到普通模式(实用)
输入cc替换整行字符,输入新字符串,输入完按ESC回到普通模式
输入cw 替换一个英文字(word),输入完按ESC回到普通模式(实用)
输入~,翻转游标所在字符的大小写
输入C 替换至行尾,即游标所在处以后的字都会被替换,输入完按ESC回到普通模式
输入u 撤销上一次的操作

**查找**

?与/功能相同,只不过?是向上而/是向下查找。
进入查找之后,输入n和N可以继续查找
普通模式下输入\*寻找游标所在处的单词
普通模式下输入\#同上,但 \# 是向前(上)找,\*则是向后(下)找
普通模式下输入g\*同\* ,但部分符合该单词即可
普通模式下输入g\#同\# ,但部分符合该单词即可
n表示继续查找,N反向查找

**视图**
命令行模式下输入:new 打开一个新的vim视窗
命令行模式下输入:vsp 2.txt 打开新的横向视窗来编辑2.txt
命令行模式下输入:vsp 3.txt 打开新的横向视窗来编辑3.txt
如果使用非chrome浏览器可以使用Ctrl+w进行视窗间的跳转
分别在不同视窗的命令行模式下输入:q!退出多视窗编辑

ssh 192.168.1.155 (表示用root用户登录到服务器)
ssh user1@192.168.1.155  (表示用user1登录到服务器)
ssh 192.168.1.155 -l user2 -p 8080 (表示user2用户用8080端口连接到192.168.1.155的服务器)

history 查看历史命令记录
history 10 执行历史记录第10条命令
ifconfig 查看本机ip地址信息

mkdir temp  创建文件
mv temp  test  修改文件
mv temp/a.txt test  移动文件
cp temp/a.txt test 复制文件

rm -rf * 删除当前目录下的所有文件
rm xx 删除文件

rz 上传文件
sz 下载文件

tar -cvf log.tar log2012.log 仅打包,不压缩! 
tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 压缩 
tar -jcvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩

tar -ztvf log.tar.gz  查看使用 gzip 压缩的log.tar.gz,解压是要加z
tar -zxvf log.tar.gz 解压 gzip 压缩的log.tar.gz,解压是要加z

cd / 进入跟目录
cd .. 返回上级目录

find / -name 'java' 查找文件,找文件

先查看安装的服务
rpm -qa | grep java  或者rpm -qa | grep jdk
rpm -e 卸载软件包
rpm -qa 查看系统中安装了那些rpm软件包

yum install package1 #安装指定的安装包package1
yum list #显示所有已经安装和可以安装的程序包

yum install yum-fastestmirror  自动搜索最快镜像插件
yum install yumex 安装yum图形窗口插件
yum grouplist 查看可能批量安装的列表

tar –zvxf  jdk-7u55-linux-x64.gz 解压jdk

卸载jdk
 yum -y remove javajava-1.6.0-openjdk-1.6.0.0-1.7.b09.el5

yum -y install 包名(支持*) :自动选择y,全自动
yum install 包名(支持*) :手动选择y or n
yum remove 包名(不支持*)
rpm -ivh 包名(支持*):安装rpm包
rpm -e 包名(不支持*):卸载rpm包



$ pwd  列出用户当前所处目录路径
$ ls   列出目录下的所有文件或者目录
$ stg
$ ssh devlog@10.11.111.145
$ slgssh -s eim_rstp_stg3
$ tail -c 600 error.log
$ prd
$ source dinit stg
$ su - logop
$ cd /wls/applogs/rtlog/toa-gp2DRServer4437/toamagw
$ less pafa.log
$ tail -f -n 100 pafa.log 显示最后100条数记录
$ du -sh 文件名    显示文件占用空间大小
$ grep -i ^...... 目标文件  通过字符查找文件
空格向下翻一屏
b键向上翻一屏

$ wc 文件名     显示文件的行数

mkdir 建立一个新目录
rmdir 删除一个目录及其中的文件
touch 创建一个空白的文本文件
cat   连续显示,查看文件内容
more  查看文件内容(只可以向下翻)
less  分页查看文件内容
head	显示文件的前

bzip2 -z 要压缩的文件
bzcat 压缩文件名  查看压缩文件的内容
bzip2 -d 要解压的文件  解压文件

$ 命令 --help 查看命令帮助文档


1、tail -f filename
说明:监视filename文件的尾部内容(默认10行,相当于增加参数 -n 10),刷新显示在屏幕上。退出,按下CTRL+C。

2、tail -n 20 filename
说明:显示filename最后20行。

3、tail -n +20 filename
说明:显示filename前面20行。

4、tail -r -n 10 filename
说明:逆序显示filename最后10行。


命令将某捷银流水号的日志输出到临时文件中
         cat -n 2017-06-19.0.log | grep 'JY20170619222420256' > temp.log
 
命令加粗显示
	grep  –color=always  'JY20170619222420256'  temp.log 
	
查某个文件的大小

	du -s  文件 ,ls -lh 文件
	
查所有文件大小
	du -sh *  或者 ls  -lht 
	
查看cup 使用率
	Top  

查看内存使用率
	 cat  /proc/meminfo 或者free
	
查看CPU 信息
	lscpu
	
查看占用端口
	netstat  -tunlp |grep  端口号 或者 lsof -i:端口号

查看主机是否通讯
数据库有问题呀。目前看是连不上数据库,找DBA看下。
[root@xxx ~]$ telnet -b 10.31.171.53 10.31.9.193 1539
Trying 10.31.9.193...
telnet: connect to address 10.31.9.193: Connection refused
[root@xxx ~]$

查看网络DNS 
[root@localhost java]# nslookup www.baidu.com
Server:		192.168.129.2
Address:	192.168.129.2#53

Non-authoritative answer:
www.baidu.com	canonical name = www.a.shifen.com.
Name:	www.a.shifen.com
Address: 115.239.210.27
Name:	www.a.shifen.com
Address: 115.239.211.112

查看路由
[root@localhost java]# route -n 

常用网络排查或网络路由跟踪
traceroute www.baidu.com
记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后,网关响应后返回的时间;如果用traceroute -q 4 www.58.com,表示向每个网关发送4个数据包。 有时我们traceroute一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。 有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长的现象;您可以加-n参数来避免DNS解析,以IP格式输出数据。 如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题;但目前看来在国内解决这样的问题是比较困难的,就是我们发现问题所在,IDC服务商也不可能帮助我们解决。

访问http 请求
Curl 
curl www.baidu.com

wget 访问或下载请求
wget www.baidu.com

安装jdk
vi /etc/profile

#修改java运行环境
export JAVA_HOME="xxx"
export PATH="$PATH:$JAVA_HOME/bin"
export JRE_HOME="$JAVA_HOME/jre"
export CLASSPATH=".:$JAVA_HOME/lib:$JRE_HOME/lib"

修改完成后,使用source /etc/profile 命令进行更新;


查找服务器

ps -ef|grep jboss

结束服务进程
kill -9 1146

启动服务
service jboss start

将war包复制移动到另一台服务器上
scp xxxx.war root@127.0.0.1:/root

查看文件大小
df -h 

ps -ef|grep mem
service memcached start

通过占用的端口查找服务器
[root@localhost logs]# lsof -i:8080
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
java    4311 root   49u  IPv6  52236      0t0  TCP *:webcache (LISTEN)
[root@localhost logs]# ps axu|grep 4311

开通防火墙
查看防火墙
[root@localhost logs]# iptables -L -n
开通8080 端口
[root@localhost logs]# iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
[root@localhost logs]# service iptables save
[root@localhost logs]# service iptables restart

[root@localhost logs]# iptables -L -n

或修改文件/etc/sysconfig/iptables.
[root@localhost logs]#vi /etc/sysconfig/iptables
    -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
[root@localhost logs]# service iptables restart


查看Linux 系统
[root[@localhost] logs]# cat /etc/issue


查看端口
netstat -anp | grep 8080


切换到root账户下 


[root@oracle]# cd /etc/sysconfig/ 
[root@oracle]# vi iptables 
A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
-A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT 

[root]# /etc/init.d/iptables save 
[root]#/sbin/service iptables save 

网上还有人是这么做的 


[root]# /sbin/iptables -A INPUT -p tcp --dport 1158 -j ACCEPT 
[root]# /etc/init.d/iptables save 
[root]# /sbin/iptables -L -n 还是不能显示 对1158端口号开放 

/sbin/iptables -A RH-Firewall-1-INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT 


补充: 
redhat中那个iptables在/sbin目录下,所以要用 /sbin/iptables, 
还有[root]# /etc/rc.d/init.d/iptables start 
Usage: /etc/rc.d/init.d/iptables {start|stop|restart|condrestart|status|panic|save} 



新建用户
su root

sudo adduser 新建的用户

修改新建用户名的密码
su root
passwd  用户 

New UNIX password: 
Retype new UNIX password:


目前只有本机可以访问,要让局域网所有IP都能访问,需要做如下设置,修改配置文件
1.vi /usr/java/jboss-4.2.2.GA/server/default/deploy/jboss-web.deployer/server.xml
将${jboss.bind.address}修改为0.0.0.0

2.配置防火墙,允许http端口(80,8009,8080)
a.首先查看防火墙的规则
/etc/init.d/iptables status

b.编辑防火墙
vi /etc/sysconfig/iptables
注意要在最后一句的前面添加如下语句:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8009 -j ACCEPT

c.重启防火墙
/etc/init.d/iptables restart

d.再查看防火墙
/etc/init.d/iptables status
已成功添加80和8009的端口

3.运行
/usr/java/jboss-4.2.2.GA/bin/run.sh -b 0.0.0.0

4.监听
netstat -antlp |grep 80



杀不掉进程时

# ps -ef | grep find | grep -v grep
nagios    4507     1  0 Mar22 ?        00:00:00 /usr/bin/find / -maxdepth 2 -type f -mmin -61 -ls
nagios    5940     1  0 Mar22 ?        00:00:00 /usr/bin/find / -maxdepth 2 -type f -mmin -61 -ls
nagios    7470     1  0 Mar22 ?        00:00:00 /usr/bin/find / -maxdepth 2 -type f -mmin -61 -ls
root      8880     1  0 Mar22 ?        00:00:00 /usr/bin/find / -maxdepth 2 -type f -mmin -61 -ls
root      9003     1  0 Mar22 ?        00:00:00 /usr/bin/find / -maxdepth 2 -type f -mmin -61 -ls
root      9150     1  0 Mar22 ?        00:00:00 /usr/bin/find / -maxdepth 2 -type f -mmin -61 -ls
nagios   16276     1  0 Mar22 ?        00:00:00 /usr/bin/find / -maxdepth 2 -type f -mmin -61 -ls
nagios   25925     1  0 Mar22 ?        00:00:00 /usr/bin/find / -maxdepth 2 -type f -mmin -61 -ls
nagios   27372     1  0 Mar22 ?        00:00:00 /usr/bin/find / -maxdepth 2 -type f -mmin -61 -ls

可以看出父进程是1,即init进程.

# ps aux | grep find | grep -v grep   
nagios    4507  0.0  0.0  5328  644 ?        D    Mar22   0:00 /usr/bin/find / -maxdepth 2 -type f -mmin -61 -ls
nagios    5940  0.0  0.0  3816  556 ?        D    Mar22   0:00 /usr/bin/find / -maxdepth 2 -type f -mmin -61 -ls
nagios    7470  0.0  0.0  5412  640 ?        D    Mar22   0:00 /usr/bin/find / -maxdepth 2 -type f -mmin -61 -ls
root      8880  0.0  0.0  5516  496 ?        D    Mar22   0:00 /usr/bin/find / -maxdepth 2 -type f -mmin -61 -ls
root      9003  0.0  0.0  4268  572 ?        D    Mar22   0:00 /usr/bin/find / -maxdepth 2 -type f -mmin -61 -ls
root      9150  0.0  0.0  3860  572 ?        D    Mar22   0:00 /usr/bin/find / -maxdepth 2 -type f -mmin -61 -ls
nagios   16276  0.0  0.0  5604  640 ?        D    Mar22   0:00 /usr/bin/find / -maxdepth 2 -type f -mmin -61 -ls
nagios   25925  0.0  0.0  4504  644 ?        D    Mar22   0:00 /usr/bin/find / -maxdepth 2 -type f -mmin -61 -ls
nagios   27372  0.0  0.0  4992  644 ?        D    Mar22   0:00 /usr/bin/find / -maxdepth 2 -type f -mmin -61 -ls


可以看出这些进程的状态是D. 我们知道D(disk)状态的进程是硬件资源不满足而处于深度休眠状态, 一般是等待磁盘. 这种进程用kill -9杀不掉, 要么继续等, 要么重启. 难道只能重启服务器才能解决么???


 

在项目实施中经常需要用用zookeeeper集群环境,当需要定位zookeeper集群是否稳定的时候,会需要判断集群中leader是否进行改变,这时候就需要命令来查看

zookeeper-3.4.6/bin ./zkServer.sh status

ZooKeeper JMX enabled by default
Using config: /home/storm/zookeeper/bin/../conf/zoo.cfg
Mode: follower


zookeeper-3.4.6/bin ./zkServer.sh status

ZooKeeper JMX enabled by default
Using config: /home/storm/zookeeper/bin/../conf/zoo.cfg
Mode: leader

jvm 性能调优工具之 jps

 

jps

jps -l 

-q:只输出进程 ID
-m:输出传入 main 方法的参数
-l:输出完全的包名,应用主类名,jar的完全路径名
-v:输出jvm参数
-V:输出通过flag文件传递到JVM中的参数

 

nohup 命令

用途:不挂断地运行命令。

nohup /root/start.sh &

 

 

转载于:https://my.oschina.net/saulc/blog/1518752

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值