走进linux第一步

走进Linux第一步

在开发工作中要操作linux系统就要做到熟悉linux系统的操作命令,首先介绍一下在shell中如何执行用户输入的命令。

    shell: CLI(command line interface):输入一个字符串  回车:

    执行步骤:

         (1)先默认按空白符将字符串分割为好多单词,默认第一个单词为命令,后面的单词看成选项和参数

         (2)判断此命令是否是自己的shell builtin 内部命令,是的话直接执行

         (3)不是内部命令就根据$PATH给出的路径在磁盘查找可执行程序,执行。

 

常用命令如下:

1.type +命令名:

      (1)回答是path/command,说明这个命令是一个外部路径,可用man + 外部命令名 来学习。

                file +文件路径path:

                     1)回答中出现ELF时,说明这是一个二进制可执行程序。

                     2)出现 script text executable: 脚本,可以执行的文本文件,最终最先执行的是这个脚本对应的解释器。

       (2)回答是 命令名 is a shell builtin : 说明这个命令是内部命令。 Builtin集成

                用help +内部命令名 来学习。

2.ls:显示当前路径下文件及目录

     (1)ls –l: 显示长列表:权限前一列是文件类型:

              d:根目录中文件

              -:表示普通文件

              c | b:设备目录中文件  c指字符,b指字节

      (2)ls –l –a :  将目录下的隐藏文件也显示出来。

               隐藏文件会在文件名前加一个.:.文件名。

     注:ls后可以加多个目录:同时显示这些目录下文件。

3.cd +路径 :切换工作目录

       cd  ..  : 切换到上一级目录

       cd 回车:去到当前用户的家目录

       cd ~  : 去到当前用户的家目录

       cd -   : 去到之前的目录。

       cd ~用户名:去到这个用户的家目录   但是这种命令只可以是root用户使用

注:./sxt/1dir ./sxt/2dir ./sxt/3dir  : 相当于   ./sxt/{1,2,3}dir

4.  pwd  :打印当前工作目录所在路径

5.创建文件/目录:mkdir 文件名/目录

    mkdir 文件名:创建文件

    mkdir -p 目录:深度创建一个目录

    mkdir 目录名 目录名 目录名…: 同时创建多个目录。

6. 删除目录:rm 文件名/目录

    参数: -f  强制删除 false

                -r  删除目录,表示自己知道这是一个目录。

               rm –rf / :强制删除根目录下所有文件。

7.  cp拷贝 复制:

  cp 文件名 目录:拷贝指定文件到指定目录下

  cp –r 目录 目录:递归拷贝目录 –r  recursion 递归

8.mv移动: mv 旧文件名 新文件名:重命名

9.  ln链接 :链接分为硬链接和软链接。

     共性:修改其中一方另一方也一定能看到变化。

     硬链接:ln 绝对路径 绝对路径  eg: ln ooxx.log xx.log

            两个文件名引用指向同一个位置。

            ls –l –i 文件名:显示指定文件名指向哪一个位置。

            如果删除掉其中一个的话,硬盘中还存有这个文件,只是删除了一个引用。

     软链接:ln –s绝对路径 绝对路径   --s:soft 柔软的。

             软链接相当于windows系统中的快捷方式,删除了原文件,新的引用也不能用了。

             两个文件名指向的是不同的位置。

     注: ln后面跟的最好是绝对路径,从/开始,eg:/path/desc

10.查看文件相关命令:

    (1)cat命令: cat 文件名

            直接显示文件所有内容,一般是在查看小文件时会使用。内容多的文件看不到所有内容。

    解决了这个问题的其他命令:

    (2)more 文件名:先显示一页,回车 按行往下翻 / 空格 按页往下翻,,,翻到文章末尾会直接退出。

    (3)less 文件名:先显示一页,回车 按行往下翻 / 空格 按页往下翻,,,翻到最后会停住,可以按B往回退着看。

    (4)head 文件名:默认显示指定文件前十行。

             head –数字:显示指定数字的前几行

    (5)tail 文件名:默认显示后10行。

             tail –数字:显示指定文件的后几行。

      补:显示指定文件的其中几行:使用管道

             输出文件中第三行:    head -3 profile | tail -1

11. 文本流  (文件描述符   file  descriptor):

     !本质:任何程序都有IO。

     !规范:任何的进程被创建时都一定会有三个IO:

                   0:标准输入,1:标准输出,2:错误输出

     !抽象:linux系统中将IO都抽象成了数字,就是文件描述符fd

查看当前进程:

      有一个文件/proc存在于内存中,用来存储内核中所有的进程信息。

       cd /proc/$$/fd 进到当前进程ID($$)文件中fd目录下,ll查看IO信息。

      /dev/pts/0为当前的虚拟终端

      /dev/pts/ 目录下存放虚拟终端的bash指向

12.重定向:

     (1)标准输出 1

              将标准输出1重定向到文件中 : ls  –l  /etc  1>  ls.out

              注:文件描述符1和>之间不能有空白符。如果有就会被bash默认按空白符切割后当做ls命令的参数执行。

                     一个>是覆盖操作,两个>>是追加操作

     (2)错误输出 2 :

               ls –l /god.txt 2> ls.out  (目录中无god.txt文件)

               ls -l /hhh / 2>info.out 将错误输出定位到info.out

               ls –l /yes /error 1>yes.out 2>error.out 重定向标准输出和错误输出到其他文件。

               但工作中,用的最多的还是将标准输出和错误输出都定向到同一文件中。

               特殊写法:

                    ls -l /usr /hhh >& log.out

                    ls -l /usr /hhh &> log.out

         注:>后的内容如果是一个文件描述符的话,需要在前面加一个&。

     (3)标准输入 0:

              read命令:

              read 变量名:阻塞用户的输入。

                      从标准输入中获取内容,当识别到用户输入回车键时结束命令,将用户所有的输入都付给指定的变量。

               <<<:  程序<<<字符串

                  例: read sxt 0<<< “cmjcmjcmj”  将符号后的字符串放入之前程序的输入中。(把字符串赋值给read后面的变量)

               <<:  首尾呼应数据段   read将用户输入中的第一行内容赋给read后面指定的变量名。

                  例:

                   

          使用场景:

              cat 0< “”

            注:<后面跟的是文件,<&后面跟的是文件修饰符fd

    人生没有白走的路,你走的每一步都算数。

猜你喜欢

转载自blog.csdn.net/weixin_43820424/article/details/106932580