设为首页 收藏本站
查看: 1487|回复: 0

[经验分享] Linux命令工作中常用总结

[复制链接]

尚未签到

发表于 2017-6-4 09:49:10 | 显示全部楼层 |阅读模式
1. 搜索  在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的文件)
  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   粘贴
  
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,$NF}' | awk  '{print $NF}'`
      说明:awk '/pattern/action'--> awk '/8月/{print $6,$NF}',只显示第六行与最后一行的内容且只保留8月的列表内容显示。


ls中文件颜色的显示代表的意义为:

    1. 蓝色    --> 目录
    2. 绿色    --> 可执行文件
    3. 红色    --> 压缩文件
    4. 浅蓝色 --> 链接文件
    5. 灰色    --> 其他文件
  
13. 查看某文件被哪个进程所占用
    lsof  文件名


   DSC0000.png   
14. 创建用户以及查看当前用户
    useradd redis
    passwd redis
    如果是Ubuntu系统则需要使用如下命令:


  useradd openstack -m -s /bin/bash    userdel -r openstack
    查看当前系统存在的用户组和用户
    /etc/group文件包含所有组
  /etc/shadow和/etc/passwd系统存在的所有用户名

  
15. 常用查看文件大小与Linux系统命令


    查看内存使用情况: free -m  (m为MB,g为GB)
DSC0001.png

    查看对应磁盘使用情况: df -lh
DSC0002.png

  查看对应CPU使用情况: cat /proc/cpuinfo
    会有32个大致相同的内容展示(下标是从0开始的),这就说明该服务器为8核操作系统
     DSC0003.png


或者有更牛逼的命令:      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
   DSC0004.png     查看更为底层的版本信息: cat /proc/version (例如:CentOS实际最根源为RetHat,此命令将会显示所采用RetHat的版本)


   DSC0005.png   如果想查看某个文件夹当前所占用的空间使用:
    du -h node            (cd /data/solr-4.8.0/)


   DSC0006.png   
如果想查看当前目录下的所有文件各个大小
    du -sh *       (cd /)


   DSC0007.png   
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. 查看某个端口链接状态的连接数


  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标红,结果如下如所示:


   DSC0008.png



19. 同步服务器的时间

    ntpdate pool.ntp.org
    将这个命令启用为定时脚本执行,具体如下所示:
    1 */2 * * * ntpdate pool.ntp.org
  20. 不允许ssh登录如何配置

    修改vim /etc/sysconfig/sshd_config文件,增加一行:AllowUsers solr,具体如下所示:
     DSC0009.png
  使其生效运行如下命令:


    service sshd reload


  常用系统级配置总结:


    1. 限制登录:/etc/ssh/sshd_config    修改后需重启:service sshd restart
    2. 用户配置:/etc/passwd
    3. sudo权限:/etc/sudoers
  21. 常用JDK系统环境变量配置



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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-383383-1-1.html 上篇帖子: 备胎的养成记KeepAlived实现热备负载 下篇帖子: Hadoop单机和伪分布式安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表