转摘Linux命令工作中常用总结
Linux命令工作中常用总结
在vi和vim中如果打开一个很大的文件,不容易找到对应的内容,可以使用自带的搜索关键字进行搜索定位:
在vi和vim界面中输入:"/"(反斜杠),之后会出现一个输入框让你输入,当你输入的关键字在文件中存在就会以高亮的形式显示出来,之后按 回车就确定定位到当前高亮位置,如果不是你要找的,则可以按:"n",意即寻找下一个输入关键字的内容。
2. vim恢复以及乱码问题
(1) 在vi和vim中如果不小心误删除了一些东西,想要恢复怎么办?
首先要退出编辑状态,即按Esc键,之后再按 u 撤销之前的修改的内容。
(2) 在用vi或vim打开一个文件的时候,如果有些地方出现一些特殊符号或是乱码,可以通过以下命令尝试:
vim -b mytest.php(其中-b一般是用来查看对应的二进制文件的)
3. 管道命令,即竖杠-->'|'
上面的意思是:将查询出来的内容交给管道后面的命令装饰之后再展示出来
例如:cat install.log | more (more的意思是将一屏放不下的内容以分页的形式显示)
ls -l /etc | more
如果想看上一页的内容,可以通过:Shift + PageUp 来查看
管道配合grep(过滤)可以达到很好用的组合例如:
cat -n hello.txt | grep "hello" (查看hello.txt文件内容,并过滤出来带有hello的内容) , -n 表示显示出来第几行的内容
4. find 搜寻文件或目录
find /home -name hello* (查找home目录下的文件名或目录为hello的)
find / -name h?m* (在跟目录下查找h开头第二个字符是任意的,第三个是m,后面的是任意的字符)
find / -size +1000000k (表示在根目录下查询文件大于1000000K的文件)
查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名
find .|xargs grep -ri "IBM" -l
5 字符串替换命令
:s/well/good/ 替换当前行第一个 well 为 good
:s/well/good/g 替换当前行所有 well 为 good
:n,$s/well/good/ 替换第 n 行开始到最后一行中每一行的第一个 well 为 good
:n,$s/well/good/g 替换第 n 行开始到最后一行中每一行所有 well 为 good
n 为数字,若 n 为 .,表示从当前行开始到最后一行
:%s/well/good/ (等同于 :g/well/s//good/) 替换每一行的第一个 well 为 good
:%s/well/good/g (等同于 :g/well/s//good/g) 替换每一行中所有 well 为 good
特殊符号转义:可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符
:s#well/#good/# 替换当前行第一个 well/ 为 good/
:%s#/usr/bin#/bin#g 可以把文件中所有路径/usr/bin换成/bin
6. 重定向命令
ls -l /etc/ 希望
ls -l /etc > /home/myback.txt (覆盖重定向) 把显示的结果覆盖到/home/myback.txt中去
ls -l /etc >> /home/myback.txt (追加重定向) 把显示的结果追加到/home/myback.txt中去
7. 删除多行
删除多行步骤如下:
1. 首先要显示对应的行数这样方能知道从第几行到第几行删除
: set nu
2. 按Esc键退出,在命令行中输入: 190,6233d (即[190 , 6233]都删除掉)
如果想要情况整个文件内容,在直接运行以下命令:
清空文件内容:> log.txt
8. 行位定位
直接定位到最后一行:
按Esc键退出,在命令行中输入: G
直接定位到第一行:
按Esc键退出,在命令行中输入: 1 G
直接定位到某一行:(第17行)
按Esc键退出,在命令行中输入:17 G
9. 复制一行或多行
yy 复制当前行
p 粘贴
<2. 复制多行
7yy 从当前行开始复制7行
p 粘贴
10. Linux中查看python的版本
python -V
或者
python --version
11. grep 的用法
<1. 显示匹配的后n行 (after)
grep -A n
<2. 显示匹配的前n行 (before)
grep -B n
<3. 显示匹配的前后n行 (context)
grep -C n
<4. 忽略大小写
grep -i str
12. ll或ls显示说明
ll -ht (h会按照标准格式自动转换大小即:456M,1.2G等,t 表示显示内容按照时间倒序排列)
应用案例:
清空8月份的日志文件:
rm -rf `ll -ht | awk '/8月/ {print 6,6,NF}' | awk '{print $NF}'`
说明:awk '/pattern/action'--> awk '/8月/{print 6,6,NF}',只显示第六行与最后一行的内容且只保留8月的列表内容显示。
1. 蓝色 --> 目录
2. 绿色 --> 可执行文件
3. 红色 --> 压缩文件
4. 浅蓝色 --> 链接文件
5. 灰色 --> 其他文件
13. 查看某文件被哪个进程所占用
lsof 文件名
14. 创建用户以及查看当前用户
useradd redis
passwd redis
如果是Ubuntu系统则需要使用如下命令:
userdel -r openstack
查看当前系统存在的用户组和用户
/etc/group文件包含所有组
/etc/shadow和/etc/passwd系统存在的所有用户名
15. 常用查看文件大小与Linux系统命令
查看内存使用情况: free -m (m为MB,g为GB)
查看对应磁盘使用情况: df -lh
查看对应CPU使用情况: cat /proc/cpuinfo
会有32个大致相同的内容展示(下标是从0开始的),这就说明该服务器为8核操作系统
cat /proc/cpuinfo | grep "model name" | head -1 (只显示一行对应的CPU型号以及其他信息)
cat /proc/cpuinfo | grep "model name" (系统有几个核就会显示几行)
cat /proc/cpuinfo | grep "model name" | wc -l (统计出一共有多少核)
查看对应服务器版本当前操作系统发行版信息: cat /etc/issue 或 cat /etc/redhat-release
查看更为底层的版本信息: cat /proc/version (例如:CentOS实际最根源为RetHat,此命令将会显示所采用RetHat的版本)
如果想查看某个文件夹当前所占用的空间使用:
du -h node (cd /data/solr-4.8.0/)
如果想查看当前目录下的所有文件各个大小
du -sh * (cd /)
16. 查看内存情况
<1. jstat -gc pid 可以看到对应各个内存大小、使用状况以及GC处理情况
<2. jmap -heap [pid] 查看内存分布
<3. jstat -gcutil [pid] 1000 每隔1s输出java进程的gc情况
17. 修改文件夹及其里面的内容的权限
chown -R solr:solr /home/solr/lib
意思是将 /home/solr/lib 文件夹及其里面内容的用户所属权限修改为solr用户所属权限
18. 查看某个端口链接状态的连接数
-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。
提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到
grep -i (i表示忽略大小写)
awk '{print $4}' (表示只打印第4列)
grep -i est (est表示:ESTABLISHED,即只显示ESTABLISHED即连接状态的端口)
grep命令最后的那个显示出来的结果以它进行标红,即最后一个grep为:grep -i 6379, 那么打印出来的结果其中的6379标红,结果如下如所示:
ntpdate pool.ntp.org
将这个命令启用为定时脚本执行,具体如下所示:
1 */2 * * * ntpdate pool.ntp.org
20. 不允许ssh登录如何配置
修改vim /etc/sysconfig/sshd_config文件,增加一行:AllowUsers solr,具体如下所示:
使其生效运行如下命令:
service sshd reload
常用系统级配置总结:
1. 限制登录:/etc/ssh/sshd_config 修改后需重启:service sshd restart
2. 用户配置:/etc/passwd
3. sudo权限:/etc/sudoers
21. 常用JDK系统环境变量配置
1
2
3
4
|
JAVA_HOME= /usr/java/jdk1 .7.0_55 CLASSPATH=.:$JAVA_HOME /lib .tools.jar PATH=$JAVA_HOME /bin :$PATH export JAVA_HOME CLASSPATH PATH |
22. 查看Redis/Tomcat的版本
redis-cli info | grep 'redis_version'
tomcat版本需要进入到安装目录下的 bin/ 文件夹:
./version.sh 或者 sh version.sh
23. 怎么看linux的防火墙是否阻止80端口
1
|
iptables -vnL | grep ":80 " |
返回有内容说明开通,没返回内容,则说明阻止
24. 查看文件编码以及修改文件编码
1. 直接查看文件编码
1
|
file -i 文件 |
2. 在 vim 中修改此文件编码格式
1
|
: set fileencoding=utf-8 |
3. 修改 vim 的统一编码格式
1
2
3
4
|
vim ~/.vimrc # 增加一句话 set encoding=utf-8 fileencoding=utf-8 |
25. 创建软连接
linux下的软链接类似于windows下的快捷方式。常用于实际路径很深,每次进入的时候需要花费一定时间,此时我们在根目录创建一个软链接指向该目录,那么我们进入该软连接其实就是进入了软链接指向的实际目录。
ln -s /data/elastic/plugin/ik/custom myES
以上命令中的 /data/elastic/plugin/ik/custom 就是源文件,myES 是链接文件名, 其作用是当进入 myES 目录,实际上是链接进入了 /data/elastic/plugin/ik/custom 目录
删除软链接:
rm -rf myES
注意不是 rm -rf myES/ (此命令会将原始目录也一并删除,会造成很严重的后果,切记!!!)
26. 定位 IO 拼接的常用方法
从网上找到了一篇很有用的使用方法,我通过这种方式也在实际工作中找到了有关 IO 的问题,可以参考如下链接:
转摘Linux命令工作中常用总结的更多相关文章
- Linux命令工作中常用总结
1. 搜索 在vi和vim中如果打开一个很大的文件,不容易找到对应的内容,可以使用自带的搜索关键字进行搜索定位: 在vi和vim界面中输入:"/"(反斜杠),之后会出现一个输入框让 ...
- linux 命令行中常用光标移动快捷键
对linux不怎么熟悉,以前在linux中敲命令的时候,要移动光标,傻傻的一个一个的移动,感觉特不爽.有几个常用的快捷键. ctrl+左右键:在单词之间跳转 ctrl+a:跳到本行的行首 ctrl+e ...
- Linux命令--系统中常用的查看命令
摘自 http://my.oschina.net/syyzhan/blog/277536 1.查看日志文件 使用命令:cat 或者 tail -f(默认查看文件尾部10行) 相关日志文件: /var/ ...
- 工作中常用的Linux命令:mkdir命令
本文链接:http://www.cnblogs.com/MartinChentf/p/6076075.html (转载请注明出处) 在Linux系统中,mkdir命令用来创建一个目录或一个级联目录. ...
- 工作中常用的Linux命令:crontab命令
本文链接:http://www.cnblogs.com/MartinChentf/p/6060252.html (转载请注明出处) crontab是一个用来设置.删除或显示供守护进程cron执行的定时 ...
- 工作中常用的Linux命令:ipcs/ipcrm命令
本文链接:http://www.cnblogs.com/MartinChentf/p/6057100.html (转载请注明出处) ipcs 1. 命令格式 ipcs [resource-option ...
- 工作中常用的Linux命令:find命令
本文链接:http://www.cnblogs.com/MartinChentf/p/6056571.html (转载请注明出处) 1.命令格式 find [-H] [-L] [-P] [-D deb ...
- 工作中常用Linux命令--服务器运维
工作中常用Linux命令--服务器运维 lsof查看端口使用情况 lsof -i:8080更多lsof命令使用说明:http://www.cnblogs.com/peida/archive/2013/ ...
- 【基础】工作中常用的linux命令,经常会被面试官问到
前言 面试经常会问到一些Linux操作命令,下面就工作中常用的和面试问的频率较高的命令做详细描述. 常用命令 修改密码:passwd 用户名 切换用户名:su 用户名 查看当前路径:pwd 调整路径: ...
随机推荐
- 记录一次JavaWeb开发的乱码解决
POST提交的中文,测试能正确接收到,而且在控制台打印出中文 但是存到数据库乱码 查看了数据库,设置的是utf-8,最后发现应该在数据库连接的地方设置: jdbc:mysql://localhost: ...
- js闭包vs Java内部类
前言: 昨天写了一个关于Java内部的博客,在内部类的最后一点中谈到了Java闭包的概念,他是这样定义闭包的:闭包是一个可调用的对象,它记录了一些信息,这些信息来自创建它的作用域.结合Java的内部类 ...
- Linux下python2和python3共存
python下载地址: https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tar.xz 下载命令: wget https://www.pytho ...
- Java 多线程(二)—— 线程的同步
上文创建多线程买票的例子中注释会出现错票.重票的问题,本文来讲讲如何解决此问题.本文例子:利用多线程模拟 3 个窗口卖票 实现Runnable接口 public class TestThread2 ...
- redis 系列18 事件
一.概述 Redis服务器是一个事件驱动程序,服务器需要处理两类事件:1文件事件,2时间事件.文件事件是关于客户端与服务器之间的通信操作.时间事件是关于服务器内部的一些定时操作.本篇还是参照" ...
- .net core使用RPC方式进行高效的HTTP服务访问
传统的HTTP接口调用是一件比较繁琐的事情,特别是在Post数据的时候:不仅要拼访问的URL还是把数据序列化成流的方式给Request进行提交,获取Respons后还要对流进行解码.在实际应用虽然可以 ...
- dotnet core使用开源组件FastHttpApi进行web应用开发
FastHttpApi相对于asp.net mvc来说有着更轻量和性能上的优势,性能上面就不在这里介绍了(具体可查看 https://github.com/IKende/FastHttpApi).在这 ...
- C语言实现顺序栈的初始化&进栈&出栈&读取栈顶元素
/*顺序表实现栈的一系列操作*/ #include<stdio.h> #include<stdlib.h> #define Stack_Size 50 //设栈中元素个数为50 ...
- leetcode — binary-tree-inorder-traversal
import java.util.Arrays; import java.util.Stack; import java.util.TreeMap; /** * * Source : https:// ...
- Data Source与数据库连接池简介 JDBC简介(八)
DataSource是作为DriverManager的替代品而推出的,DataSource 对象是获取连接的首选方法. 起源 为何放弃DriverManager DriverManager负责管理驱动 ...