Linux命令工作中常用总结

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介:

Linux命令工作中常用总结

  1. 搜索
    在vi和vim中如果打开一个很大的文件,不容易找到对应的内容,可以使用自带的搜索关键字进行搜索定位:

  在vi和vim界面中输入:"/"(反斜杠),之后会出现一个输入框让你输入,当你输入的关键字在文件中存在就会以高亮的形式显示出来,之后按 回车 就确定定位到当前高亮位置,如果不是你要找的,则可以按:"n",意即寻找下一个输入关键字的内容。

  1. vim恢复以及乱码问题

(1) 在vi和vim中如果不小心误删除了一些东西,想要恢复怎么办?

 首先要退出编辑状态,即按Esc键,之后再按 u 撤销之前的修改的内容。

(2) 在用vi或vim打开一个文件的时候,如果有些地方出现一些特殊符号或是乱码,可以通过以下命令尝试:

 vim -b mytest.php(其中-b一般是用来查看对应的二进制文件的)
  1. 管道命令,即竖杠-->'|'

上面的意思是:将查询出来的内容交给管道后面的命令装饰之后再展示出来

  例如:cat install.log | more (more的意思是将一屏放不下的内容以分页的形式显示)

     ls -l /etc | more

  如果想看上一页的内容,可以通过:Shift + PageUp 来查看

  管道配合grep(过滤)可以达到很好用的组合例如:

  cat -n hello.txt | grep "hello" (查看hello.txt文件内容,并过滤出来带有hello的内容) , -n 表示显示出来第几行的内容

  1. find 搜寻文件或目录

  find /home -name hello* (查找home目录下的文件名或目录为hello的)

  find / -name h?m* (在跟目录下查找h开头第二个字符是任意的,第三个是m,后面的是任意的字符)

  find / -size +1000000k (表示在根目录下查询文件大于1000000K的文件)

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. 复制一行或多行

<1. 复制一行
    yy   复制当前行

    p   粘贴

<2. 复制多行

    7yy  从当前行开始复制7行

    p   粘贴
  1. Linux中查看python的版本

  python -V

  或者

  python --version

  1. grep 的用法

<1. 显示匹配的后n行 (after)

  grep -A n

<2. 显示匹配的前n行 (before)

  grep -B n

<3. 显示匹配的前后n行 (context)

  grep -C n

<4. 忽略大小写

  grep -i str

  1. ll或ls显示说明

    ll -ht (h会按照标准格式自动转换大小即:456M,1.2G等,t 表示显示内容按照时间倒序排列)

    应用案例:

    清空8月份的日志文件:

    rm -rf ll -ht | awk '/8月/ {print 6,<br/>6<br/>,<br/>NF}' | awk '{print $NF}'

    说明:awk '/pattern/action'--> awk '/8月/{print 6,
    6
    ,
    NF}',只显示第六行与最后一行的内容且只保留8月的列表内容显示。

ls中文件颜色的显示代表的意义为:
1. 蓝色 --> 目录

  2. 绿色 --> 可执行文件

  3. 红色 --> 压缩文件

  4. 浅蓝色 --> 链接文件

  5. 灰色 --> 其他文件

  1. 查看某文件被哪个进程所占用

  lsof 文件名

  

  1. 创建用户以及查看当前用户

  useradd redis

  passwd redis

  如果是Ubuntu系统则需要使用如下命令:

  useradd openstack -m -s /bin/bash
userdel -r openstack

 查看当前系统存在的用户组和用户

  /etc/group文件包含所有组
/etc/shadow和/etc/passwd系统存在的所有用户名

  1. 常用查看文件大小与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 /)

  

  1. 查看内存情况

  <1. jstat -gc pid         可以看到对应各个内存大小、使用状况以及GC处理情况

  <2. jmap -heap [pid]       查看内存分布

  <3. jstat -gcutil [pid] 1000     每隔1s输出java进程的gc情况

  1. 修改文件夹及其里面的内容的权限

    chown -R solr:solr /home/solr/lib

    意思是将 /home/solr/lib 文件夹及其里面内容的用户所属权限修改为solr用户所属权限

  2. 查看某个端口链接状态的连接数

  netstat -nlap | grep -i est | grep -i 6379 | awk '{print $4}'
netstat -nlap | grep -i est | grep -i 1121 | wc -l
平时使用总结,使用此命令如果实在记不住后面参数有哪些,那么直接记住为:-nlap 即可,大部分情况都可以满足我们的需求

netstat常见参数如下:
-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标红,结果如下如所示:

  

  1. 同步服务器的时间
    ntpdate pool.ntp.org

  将这个命令启用为定时脚本执行,具体如下所示:

  1 /2 ntpdate pool.ntp.org

  1. 不允许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

  1. 常用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

  1. 查看Redis/Tomcat的版本

  redis-cli info | grep 'redis_version'

  tomcat版本需要进入到安装目录下的 bin/ 文件夹:

  ./version.sh  或者  sh version.sh

  1. 怎么看linux的防火墙是否阻止80端口

1
iptables -vnL | grep ":80 "
返回有内容说明开通,没返回内容,则说明阻止

  1. 查看文件编码以及修改文件编码

    1. 直接查看文件编码

1
file -i 文件

  1. 在 vim 中修改此文件编码格式

1
:set fileencoding=utf-8

  1. 修改 vim 的统一编码格式

1
2
3
4
vim ~/.vimrc

增加一句话

set encoding=utf-8 fileencoding=utf-8

  1. 创建软连接

  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/  (此命令会将原始目录也一并删除,会造成很严重的后果,切记!!!)










本文转自 知止内明 51CTO博客,原文链接:http://blog.51cto.com/357712148/2070850,如需转载请自行联系原作者
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1天前
|
Linux 数据安全/隐私保护
Linux常用命令实例带注释
Linux常用命令实例带注释
10 0
|
1天前
|
Linux 开发工具 数据安全/隐私保护
Linux(19)常用解压命令记录
Linux(19)常用解压命令记录
6 0
|
2天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
2天前
|
Linux Perl
Linux系统替换字符串常用命令
请注意,`sed`命令可以非常强大,可以根据不同的需求使用不同的选项和正则表达式来进行更复杂的字符串替换操作。
16 0
|
5天前
|
安全 Linux 开发工具
Linux中可引起文件时间戳改变的相关命令
【4月更文挑战第12天】Linux中可引起文件时间戳改变的相关命令
12 0
|
6天前
|
域名解析 网络协议 Linux
Linux 中的 Nslookup 命令怎么使用?
【4月更文挑战第12天】
25 6
Linux 中的 Nslookup 命令怎么使用?
|
7天前
|
运维 网络协议 Unix
18.系统知识-Linux常用命令
18.系统知识-Linux常用命令
|
8天前
|
网络协议 Ubuntu Linux
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
|
8天前
|
Linux Go
Linux命令Top 100驱动人生! 面试必备
探索Linux命令不再迷茫!本文分10部分详解20个基础命令,带你由浅入深掌握文件、目录管理和文本处理。 [1]: <https://cloud.tencent.com/developer/article/2396114> [2]: <https://pan.quark.cn/s/865a0bbd5720> [3]: <https://yv4kfv1n3j.feishu.cn/docx/MRyxdaqz8ow5RjxyL1ucrvOYnnH>
62 0
|
11天前
|
缓存 运维 监控
Linux系统监控利器:探索常用命令及数据保存技巧
Linux系统监控利器:探索常用命令及数据保存技巧
29 4
Linux系统监控利器:探索常用命令及数据保存技巧