我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何理解常用Linux Shell进阶部分

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何理解常用Linux Shell进阶部分

这篇文章主要讲解了“如何理解常用Linux Shell进阶部分”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解常用Linux Shell进阶部分”吧!

如何计算当前目录下的文件数和目录数
   

  # ls -l * |grep "^-"|wc -l ---- to count files    # ls -l * |grep "^d"|wc -l ----- to count dir

   
    如何只列子目录?
   

  ls -F | grep /$

或者 

alias sub = "ls -F | grep /$"(linux)

   

  ls -l | grep "^d"

或者

 ls -lL | grep "^d" (Solaris)

   
    如何实现取出文件中特定的行内容
   
    如果你只想看文件的前5行,可以使用head命令,
  
    如: 

head -5 /etc/passwd

   
    如果你想查看文件的后10行,可以使用tail命令,
  
    如: 

tail -10 /etc/passwd

   
    你知道怎么查看文件中间一段吗?你可以使用sed命令
  
    如:

sed -n '5,10p' /etc/passwd

这样你就可以只查看文件的第5行到第10行。
   
    如何查找含特定字符串的文件
   
    例如查找当前目录下含有"the string you want find…"字符串的文件:
   
    

$find . -type f -exec grep "the string you want find…" {} ; -print

   
    如何列出目录树
   
    下面的短小的shell程序可以列出目录树, 充分利用了sed强大的模式匹配能力。
  
    目录树形式如下:
   
  

 .    `--shellp    `--updates    `--wu-ftpd-2.4    | `--doc    | | `--examples    | `--class="lazy" data-src    | | `--config    | | `--makefiles    | `--support    | | `--makefiles    | | `--man    | `--util    脚本如下:    #!/bin/sh    # dtree: Usage: dtree [any directory]    dir=${1:-.}    (cd $dir; pwd)    find $dir -type d -print | sort -f | sed -e "s,^$1,," -e "/^$/d" -e "s,[^/]*/([^/]*)$,`----1," -e "s,[^/]*/,| ,g"

   
    如何实现取出文件中特定的列内容
   
    我们经常会遇到需要取出分字段的文件的某些特定字段,例如/etc/password就是通过":"分隔各个字段的。可以通过cut命令来实现。例如,我们希望将系统账号名保存到特定的文件,就可以:
   
  

 cut -d: -f 1 /etc/passwd >; /tmp/users

   
    -d用来定义分隔符,默认为tab键,-f表示需要取得哪个字段。
  
    当然也可以通过cut取得文件中每行中特定的几个字符,例如:
   

  cut -c3-5 /etc/passwd

   
    就是输出/etc/passwd文件中每行的第三到第五个字符。
  
    -c 和 -f 参数可以跟以下子参数:
  
    N 第N个字符或字段
  
    N- 从第一个字符或字段到文件结束
  
    N-M 从第N个到第M个字符或字段
  
    -M 从第一个到第N个字符或字段
   
    在vim中实现批量加密
   
    密码中还是不能带空格,不管了,能加密就好,先这么用着。
   

  #!/bin/bash    # Encrypt file with vim    if (test $# -lt 2) then    echo Usage: decrypt password filename    else    vim -e -s -c ":set key=$1" -c ':wq' $2    echo "$2 encrypted."    fi    [weeder@SMTH weeder]$ for file in *.txt ; do encrypt test $file ; done    test2.txt encrypted.    test4.txt encrypted.    test9.txt encrypted.    kick.txt encrypted.    echo "$2 encrypted."    fi    [weeder@SMTH weeder]$ for file in *.txt ; do encrypt test $file ; done    test2.txt encrypted.    test4.txt encrypted.    test9.txt encrypted.    kick.txt encrypted.    too_old.txt encrypted.    too_old_again.txt encrypted.    bg5.txt encrypted.    [weeder@SMTH weeder]$

   
    $@等特定shell变量的含义
   
    在shell脚本的实际编写中,有一些特殊的变量十分有用:
  
    $# 传递到脚本的参数个数
  
    $* 以一个单字符串显示所有向脚本传递的参数。与位置变量不同,此选项参数可超过9个
  
    $$ 脚本运行的当前进程ID号
  
    $! 后台运行的最后一个进程的进程ID号
  
    $@ 与$#相同,但是使用时加引号,并在引号中返回每个参数
  
    $- 显示shell使用的当前选项,与set命令功能相同
  
    $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。
  
    如何使程序的执行结果同时定向到屏幕和文件
   
  

 program_name |tee logfile

   
    这样程序执行期间的显示都记录到logfile同时显示到标准输出(屏幕)。
   
    如何用sendmail给系统所有用户送信
   
    首先在aliases文件里面建立一个alias:
   

  alluser: :include:/etc/mail/allusers

   
    并执行newaliases使之生效,然后在/etc/mail/allusers里面列出所有用户,可以使用下面的命令:

    awk -F: '$3 >; 100 { print $1 }' /etc/passwd >; /etc/mail/allusers

   
    如何查找某条命令的相关库文件
   
    在制作自己的发行版时经常需要判断某条命令需要哪些库文件的支持,以确保指定的命令在独立的系统内可以可靠的运行。
  
    在Linux环境下通过ldd命令即可实现,在控制台执行:
   

  ldd /bin/ls

   
    即可得到/bin/ls命令的相关库文件列表。
  
    如何使用host命令获得更多信息
  
    Host能够用来查询域名,然而它可以得到更多的信息。host -t mx linux.com可以查询出Linux.com的MX记录,以及处理Mail的Host的名字。Host -l linux.com会返回所有注册在linux.com下的域名。host -a linux.com则会显示这个主机的所有域名信息。
   
    如何停止终端多个进程
   
    以下是脚本:
  
    echo "系统当前用户"
   

  echo "---------------"    who | awk '{print $2}'    echo "---------------"

   
    echo "输入要杀死终端的终端号:"

    read $TTY    kill -9 ${K}=`ps -t $TTY | grep [0-9] | awk '{print $1}'`

感谢各位的阅读,以上就是“如何理解常用Linux Shell进阶部分”的内容了,经过本文的学习后,相信大家对如何理解常用Linux Shell进阶部分这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何理解常用Linux Shell进阶部分

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何理解常用Linux Shell进阶部分

这篇文章主要讲解了“如何理解常用Linux Shell进阶部分”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解常用Linux Shell进阶部分”吧!如何计算当前目录下的文件数和目录数
2023-06-09

常用Linux Shell进阶部分小结

如何计算当前目录下的文件数和目录数# ls -l * |grep "^-"|wc -l ---- to count files# ls -l * |grep "^d"|wc -l ----- to count dir如何只列子目录?ls -
2022-06-04

如何对Linux上使用LUKS加密的部分进行备份

这篇文章主要讲解了“如何对Linux上使用LUKS加密的部分进行备份”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何对Linux上使用LUKS加密的部分进行备份”吧!一个解决方案: Bds
2023-06-12

如何理解linux shell命令行选项与参数用法

这篇文章主要讲解了“如何理解linux shell命令行选项与参数用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解linux shell命令行选项与参数用法”吧!问题描述:在lin
2023-06-09

Linux Shell如何用ssh命令统计分布式集群信息详解

目录一、统计分布式集群信息的思路二、SSH加密原理三、SSH命令四、利用ssh-keygen和ssh-copy-id 实现免密登录五、linux Shell 脚本实现六、ssh只循环一次问题总结一、统计分布式集群信息的思路 用免密的远程登陆
2022-07-24

Linux下如何实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本

这篇文章主要介绍了Linux下如何实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。环境:ssh server: 1
2023-06-09

编程热搜

目录