美文网首页shellVim&Shellshell
shell常用命令&脚本编写

shell常用命令&脚本编写

作者: 蒲公英少年 | 来源:发表于2016-01-12 16:56 被阅读995次

    常用命令

    1. 想看看你的Shell是哪一种,执行命令: echo $SHELL

      在Linux中,$符号代表一个shell变量。所有的shell都用这种方式使用变量。有一些shell变量在你的系统启动
      的时候就有了默认值。例如,$SHELL;$LOGNAME是你的登录名,而$PATH变量指明了你的shell命令的搜索范围。
      echo命令的作用就是打印出你的输入。如果你的输入具有shell的特殊意义,例如shell变量,他就输出变量的值。
          
      
    2. ls -la

      这行命令的意义是输出当前目录的所有文件的文件名,l代表“long”,a代表“all”,有了l选项,你会发现,输
      出的内容比较丰富,不只包括文件 名,还有文件的访问权限,所有者,所属组等。你会发现这个命令会在屏幕上
      输出大量的信息,如果当前目录的文件比较多的话。现在就是“pipe”出场的时候了。
      ls -la | more
      ls -l a*
      这个命令会列出在当前工作目录下所有的以小写a开头的文件,比如说abc.txt,alpha.jpg等等。
      ls a?cd
      这条命令会列出所有以小写a开头隔一个未知字符以小写cd结尾的所有文件。例如adcd,axcd,但是不会列出adfdcd,
      也不会列出axcd.txt。
      
      
    3. man:如果你想了解每一个命令代表什么含义以及他的用法,你就可以使用man(意义为manual)命令,例如:

      man ls ,man输出的内容是为系统管理员和开发者编写的,如果你想了解更多命令的用法,你可以去找网络上
      的Linux命令文档,有一个非常方便的就是丹尼尔·巴雷特的Linux的袖珍指南。
          
      
    1. su和sudo

       su命令的作用是切换用户,这也被称为超级用户,因为在有些系统中su命令可以使你以系统的所有权限用户
       root登录。除非你是系统管理员,否则我绝不推荐你使用su切换到root,因为这可能给你带来很多麻烦。
       一个相对安全的多的办法是使用sudo命令,这个命令可以上你以root权限运行一个命令。这两个命令都需要
       系统密码。在大多数Linux的桌面发行版中这两个是相同的,就是你系统的第一个用户设置的密码。
      
    2. grep:grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

       例如:
       grep foo /etc/passwd
       返回在password文件中所有的含有foo的行
       grep -i “foo” /etc/passwd
       -i选项是忽略大小写,这就意味着若某一行含有FOO或FOo也会被搜索到。
       grep还支持递归搜索:
       grep -r “foo” /home/sjvn
       这条命令将会搜索/home/sjvn目录及其子目录下所有的包含“foo”的行
       grep也通常与其他命令串连起来使用,例如:
       ls -la | grep foo*
       列出当前目录下任何以foo开头的文件或目录。例如如下文件将被匹配:foo,foobar,foolish.txt等等。
      
    3. history : 显示出最近使用的全部命令

    4. ! : 返回上一次使用的命令

       如: ! ls 显示出上一次ls 命令的具体内容.选取哪一个命令后默认已经将该命令复制到剪切板,
       直接command+v就可以粘贴该命令了.
      
    5. cat + 文件名 : 列出该文件的内容

    6. mv +旧文件名 + 新文件名 : 更改文件名

    7. 切换文件目录

      cd : 根目录,即当前用户的目录
      cd . : 当前目录
      cd .. : 进入当前目录的上级目录
      
    8. ./可执行文件 : 执行当前文件

    9. ls : 列出当前用户的所有文件夹

    10. ls -F : 列出当前用户的文件夹,如是文件夹,文件名后面有/

    11. ls -lrt : 以文件修改的时间列出当前用户的文件夹

    12. tab : 补齐正在输入的文件名

    13. clear:如果你觉得你的屏幕上有太多的东西,看起来很讨厌,可以使用clear命令清空文件/目录命令

    14. cp:cp代表copy,就是复制,他可以复制一个或多个文件到指定的一个或多个目录下。

      一个通常的用法是:
      cp fred.txt ethel.txt
      把fred.txt中的内容复制到当前文件夹中名为ethel.txt中
      cp fred.txt /home/sjvn/docs/fred.txt
      把fred.txt复制到指定文件中。
      cp *.txt  /home/sjvn/docs/
      复制当前目录下所有以.txt结尾的文件到指定的目录下。
      cp -r /home/sjvn/docs/* /home/sjvn/backup
      递归的复制在/home/sjvn/docs/目录下的所有文件到指定的文件夹。
      
    15. hostname:显示你当前登录进去的计算机的名称。

    16. mv:mv(意义为move)顾名思义就是移动,可以移动指定文件到指定位置。当然这个命令有的时候还可以用来实现重命名。

      例如:
      mv fred.txt ethel.txt
      这条命令的作用你可以简单的认为是重命名fred.txt为ethel.txt。
      当然此命令还有其他用法,此处不再一一罗列,用法与cp类似,只是这条命令不再保留原文件。
      
    17. rm:rm代表remove,是删除的意思,所以我运行:

      rm fred.txt
      我将删除fred.txt。
      我强烈推荐你在执行rm命令的时候使用-i选项。这儿选项将在你执行命令的时候询问你是否要真的删除文件。就像这样:
      rm -i fred.txt
      

    编写shell脚本

    1. 例如:find + <条件> 是执行命令,意思为查找文件

       $ find ./ -size +200M -exec du -h {} \;  
       //表示在当前目录下查找大于200M的文件
      
    2. 但是每一次输入这些命令,比较麻烦,如果有更多的命令需要一起执行,那将会更加麻烦,我们可以事先将我们需要执行的一系列命令放在一个文件中,这个文件就是一个脚本文件,以.sh结尾,然后编译脚本,最后执行脚本就可以得到我们想要执行一系列命令的结果,这对于我们经常用的一系列命令非常方便。

       vim findLarger200M.sh
       //创建一个脚本并打开
       find ./ -size +200M -exec du -h {} \;
       //在里面利用find写一个查找文件脚本
       chmod u+x findLarger200M.sh
       //编译脚本,生成可执行脚本文件
       ./findLarger200M.sh
       //执行,注意是 ./ + 脚本文件名
      

    相关文章

      网友评论

      本文标题:shell常用命令&脚本编写

      本文链接:https://www.haomeiwen.com/subject/okkckttx.html