vim中的操作
移动光标
G
:移动到这个档案的最后一行;
nG
:n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行;
gg
:移动到这个档案的第一行,相当于 1G ;
n<Enter>
:n 为数字,光标向下移动 n 行;快速删除某行:
光标移到该行,按dd
将当前文件中所有abc替换为xyz:
编辑模式下,输入%s/abc/xyz/gc,回车
详细解释:<scope>s/<pattern>/<str>[/<option>]
把scope
指定的范围内匹配pattern
的所有字符串替换为str
,option为可选参数:g:替换每一行所有abc,如果不加只替换第一个,c:替换前询问用户进行确认。在log文件中搜索找出error的日志:
编辑模式下,输入/error,按回车
更多:vim命令
查看文件的头尾
tail -n 10 test.log
: 查询日志尾部最后10行的日志;
tail -n +10 test.log
:查询10行之后的所有日志;
head -n 10 test.log
: 查询日志文件中的头10行日志;
head -n -10 test.log
:查询日志文件除了最后10行的其他所有日志;
根据端口查看进程并杀死
# 查看某端口的进程
lsof -i:端口号
# 杀死进程
kill -9 PID
创建一个文件
①vim/vi foo.txt
:文件已存在,则打开,不存在,则新建打开(为空)
②echo "aaaa" > foo.txt
③cat > foo.txt
④emacs foo.txt
⑤touch foo.txt
怎么看一个Java线程的资源耗用
①使用top
或者ps -ef | grep java
找到该线程对应的进程,假设pid为22385
②使用命令top -p 22385
查看该进程
③在top
界面,按shift+h
,查看该进程的所有线程的信息,此时pid列(除了第一个)即为线程pid,假设要查看线程pid为22399的线程
④使用jstack 22385|grep -A 10 577f
查看该线程的信息,其中577f是22399的16进制表示,-A 10表示查找到所在行的后10行。
Thread dump文件如何分析
在dump中,线程一般存在如下几种状态:①RUNNABLE
,线程处于执行中;②BLOCKED
,线程被阻塞;③WAITING
,线程正在等待。
使用jstack pid > threaddump.txt
命令将进程id为pid的java进程的线程信息输出到文件threaddump.txt中。
查看类似java.lang.Thread.State: WAITING (parking)这种信息,可以看到各线程的当前状态。
找出占用空间最大的文件
$ cd /path/to/some/where
$ du -hsx * | sort -rh | head -10
//命令解释
du : 计算出单个文件或者文件夹的磁盘空间占用.
sort : 对文件行或者标准输出行记录排序后输出.
head : 输出文件内容的前面部分.
/etc/hosts文件什么做用
hosts文件的作用相当于DNS,提供IP地址hostname的对应。早期的互联网计算机少,单机hosts文件里足够存放所有联网计算机。不过随着互联网的发展,这就远远不够了。于是就出现了分布式的DNS系统,由DNS服务器来提供类似的IP地址到域名的对应。Linux系统在向DNS服务器发出域名解析请求之前会查询/etc/hosts文件,如果里面有相应的记录,就会使用hosts里面的记录
硬链接和软链接的区别
TODO
cat命令
①一次显示整个文件cat filename
②创建一个新文件cat > filename
只能创建新文件,不能编辑已有文件.
③将几个文件合并为一个文件cat file1 file2 > file
-A, --show-all 等价于 -vET
-b, --number-nonblank 对非空输出行编号
-e 等价于 -vE
-E, --show-ends 在每行结束处显示 $
-n, --number 对输出的所有行编号,由1开始对所有输出的行数编号
-s, --squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行
-t 与 -vT 等价
-T, --show-tabs 将跳格字符显示为 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
echo命令
①输出字符串
[root@iZ2zeap997asuc4yr0bw77Z /]# echo hahhahah
hahhahah
②将字符串写到文件中(使用>>表示在原有内容基础上追加,使用>表示清空原来内容,替换)
[root@iZ2zeap997asuc4yr0bw77Z /]# touch aa.txt
[root@iZ2zeap997asuc4yr0bw77Z /]# echo hahahahah >> aa.txt
[root@iZ2zeap997asuc4yr0bw77Z /]# cat aa.txt
hahahahah
③显示命令的结果
[root@iZ2zeap997asuc4yr0bw77Z /]# echo `date`
2017年 12月 12日 星期二 11:11:49 CST
20171212更新:新增常用操作