专栏首页京程一灯Linux shell 基本命令

Linux shell 基本命令

shell是什么

  • Linux系统本身逻辑上可以两部分:内核和实用程序。内核从打开计算机自检时就驻留在内存,直到计算机关闭。每条命令实际都属于实用程序,当命令要执行时,才会由磁盘装入到内存,shell也是一种实用程序。
  • Shell负责执行终端请求的程序。
  • Shell在磁盘上搜索要执行的程序,直到找到位置,这是对于外部命令来讲。内部命令shell会饿直接执行。

基本命令

  • date命令:显示时间和日期,date显示周日期,月份,日期,时间和年份。
  • who命令:查看登录系统的用户信息。
  • echo命令:显示字符,Linux系统会忽略输出文本中多余的空格。

文件操作

Linux只能之别三种基本的文件类型:普通文件,目录文件,特殊文件。一个文件名中的字符数不能超过255个,超出后系统会忽略超出的字符。

  • ls命令:输出对应目录文件清单,参数可以是相对或决定路径,执行后输出对应路径下的文件列表。可以加-l参数强制获得单列式的输出结果,信息包括(文件状态,文件的链接数,文件所有者,搜有这所在的组,文件大小,最后修改时间,文件名),文件状态中第一个字符用来表示文件类型d,-分别代表着该文件是文件夹,普通文件,如果是b,c,l,p之一,则表示它是特殊文件。
  • cat命令:查看文件内容。
  • wc命令:统计文件所包含信息,输出的三个数字依次分别是行数,单词数和字符数,也可以使用-l来输出单词数,用-c来输出字符数,用-w来单独输出单词数。
  • cp命令:用来复制文件或目录,第一个参数是源文件路径,第二个参数为目标文件路径,ag: cp origin.txt ./test/origin.txt,也可以一次复用多个目录到目标目录,ag: cp test test1 ../tmp。
  • mv命令:移动文件/目录,参数格式与cp一样,如果目标文件名已经存在,则会覆盖。ag: mv oldname newname,也可以一次移动多个目录到目标目录,ag: mv test test1 ../tmp。
  • rm命令:删除操作,参数则是要删除的文件名,可以跟多个文件名以空格隔开,ag: rm 1.txt 2.txt。该命令也可以删除文件夹,需要加选项-r,ag:rm -r somedir,更多选项详见rm --help。

目录操作

  • pwd命令:显示当前工作目录。
  • cd命令:该命令用来改变当前工作目录,参数可以是相对路径和绝对路径。
    • cd ~进入默认路径
    • cd -进入上次工作目录
    • cd /home/work/test使用绝对路径进入test目录
    • cd ./test或cd test使用相对路径进入test目录
  • mkdir命令:创建目录,参数为要创建的文件夹名。可以加-p来创建多级文件夹。
  • cp命令:目录间复制文件,使用方法与文件cp命令一样,请见上文。
  • mv命令:移动目录/文件,使用方法与文件mv命令一样,请见上文。
  • ln命令:链接文件,提供一个简单的方式为一个文件赋予多个文件名,一般格式是ln from to,该命令把文件from与文件to链接起来。
    • 它与cp的区别在于,cp后是真是存在多份文件副本,而ln后在磁盘上只有一份。关于链接文件唯一的限制是,链接在一起的文件必须共享与同一文件系统,不然链接的时候会报错。文件系统可以执行df命令查看。
    • 如果要链接不同文件系统或网络中的不同系统中的文件,可以给ln加-s命令,这样可以建立一个符号化链接,符号化链接与普通链接唯一的区别是:符号化链接指向初始文件,如果初始文件被删除了,该符号化链接就不再起作用,但链接仍然会保留,符号化链接作为文件名维护,所以它的长度为文件名长度,并不是真实的文件大小。想要链接文件夹则可以使用该-s选项。
    • ln遵循跟cp和mv相同的格式,意味着可以把一串文件链接到一个目录下。ag: ln file1 file2 dir。
  • rmdir命令:删除目录,格式为rmdir dirname,唯一的限制是要删除的文件夹中不能包含文件。如果要删除一个目录及其下面所有内容,则可以使用rm -r dir来替代。

文件名替换

  • * 通配符,对于文件名来讲,它可以匹配0个或以上的字符,cat a*意味着会把a开头的文件内容显示出来。
  • ? 单字符匹配,cat a?表示把文件以两个字符命名的并且首字母是a的文件内容显示出来。
  • 匹配单字符的另一个中方法是把药匹配的字符列在方括号中,如[abc]匹配一个字符,a,b,c,也可以使用[a-z]但限制是前一个字符序号必须小于后一个字符的,如果在[!中,则表示反匹配,既可以匹配除方括号中所列字符以外的任何字符。

标准输入/输出及输入/输出重定向

  • 标准输入和标准输出:许多Unix系统从终端接受输入,并把结果发到终端输出。部分命令也是如此,who命令把登录到系统的用户清单写入标准输出设备中。
  • 输出重定向:命令的输出通常提交到标准输出设备,也可以很方便的转向一个文件来代替。如who > console.txt,这时候who命令得到的用户信息保存到了console文件中,标准输出就没有显示了,值得注意的事,写入文件会覆盖文件之前的内容,如要追加而不是覆盖,请使用重定向添加字符>>,
  • 输入重定向:一般在正常情况下从标准输入设备接受输入的命令可以使用<来把输入重定向到一个文件。ag:sort < a4.txt。

管道

  • Linux系统可以吧两条命令的效果连接起来,这种连接称为管道,它可以把一条命令的输出作为另一条命令的输入。管道效果由字符|实现。如之前可以使用who > users与wc -l users两条命令和一个中间文件完成的工作,现在可以直接使用who | wc -l来完成,是不是很方便~
  • 过滤器:Unix术语中过滤器通常指能够从标准输入接受输入,对输入处理后,把结果写入标准输出的任何程序。简而言之,过滤器是能用到管道中其他两个程序之间的任何程序。因此wc,cat,sort等可看做过滤器,而ls不行。

标准错误

  • 除了标准输入和标准输出,还有另一种标准设备,称为标准错误,它也是终端。

命令的其他细节

  • 一行多条命令::多条命令间使用;分隔即可,如who > users;wc -l users。
  • 命令发送到后台:在命令后跟&则表示命令在后台执行,不用等待有些耗费一些时间才能返回结果的命令,可以即刻释放终端继续处理其他工作。如果命令需要从标准输入读取输入,则它会定制执行,等待被调到前台执行。执行该命令后会返回两个数字,第一个为工作好,第二个为进程标识号。
  • ps命令:该命令可以告诉用户有关系统中正在运行的进程信息。不带选项的命令只显示属于自己进程的信息,显示出的信息有:进程标识号PID,终端号TTY,进程已经运行的分钟和藐视TIME,进程的名字COMMAND。如果加上-f选项,ps命令会显示更多的进程信息。

本章命令总结

file代表文件,file(s)代表一个或多文件;dir代表一个目录,dir(s)代表一个或多个目录

  • cat file(s):显示文件file(s)的内容,如未指定,显示标准输入的内容
  • cd dir:工作目录转换到dir
  • cp file1 file2:把file1复制到file2
  • cp file(s) dir:把file(s)复制到目录dir中
  • date:显示如期和时间
  • echo args:显示args
  • ln file1 file2:把file1链接到file2
  • cp file(s) file2:把file(s)链接到dir中
  • ls file(s):显示file(s)中的文件清单
  • ls dir(s):显示目录dir(s)中的文件清单
  • mkdir dir(s):建立目录dir(s)
  • mv file1 file2:把file1移动到file2,如果是统一目录则是重命名
  • cp file(s) dir:把file(s)移到目录dir中
  • ps:显示活动进程的信息
  • pwd:显示当前工作目录
  • rm file(s):删除文件file(s)
  • rmdirs dir(s):删除目录dir(s)
  • sort file(s):将文件file(s)中的行排序,若未指定,则排序标准输入
  • wc file(s):对file(s)的行,单词或字符计数
  • who:显示登录到系统的用户

往期精选文章

ES6中一些超级好用的内置方法

浅谈web自适应

使用Three.js制作酷炫无比的无穷隧道特效

一个治愈JavaScript疲劳的学习计划

全栈工程师技能大全

WEB前端性能优化常见方法

一小时内搭建一个全栈Web应用框架

干货:CSS 专业技巧

四步实现React页面过渡动画效果

让你分分钟理解 JavaScript 闭包



小手一抖,资料全有。长按二维码关注京程一灯,阅读更多技术文章和业界动态。

本文分享自微信公众号 - 京程一灯(jingchengyideng)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-09-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 双因素认证(2FA)教程

    所谓认证(authentication)就是确认用户的身份,是网站登录必不可少的步骤。

    疯狂的技术宅
  • JavaScript 中的 NaN

    另外还有 2 个特殊的数字值:Infinity(比其他任何数字都大的数字)和 NaN(表示“Not A Number”概念):

    疯狂的技术宅
  • 深入了解一个超快的 CSS 引擎: Quantum CSS

    或许你听说过 Quantum 项目。 它是对于 Firefox 内部的一个重大改写,以达到让 Firefox 更快运行的目的。我们将实验性的浏览器 Servo ...

    疯狂的技术宅
  • Linux基础知识3

    长选项: --word --long, --direcotry  长选项一般不合并使用

    py3study
  • Confluence 6 评论一个文件

    无论是一个图片 —— 例如一个模拟的新市场计划需要反馈,还是一个 PDF 文件,一个演讲稿,或者任何你可以在 Confluence 中预览的文件。你可以在预览的...

    HoneyMoose
  • Confluence 6 评论一个文件

    无论是一个图片 —— 例如一个模拟的新市场计划需要反馈,还是一个 PDF 文件,一个演讲稿,或者任何你可以在 Confluence 中预览的文件。你可以在预览的...

    HoneyMoose
  • touch命令

    touch命令用于修改文件或者目录的时间属性,包括存取时间和更改时间,若文件不存在,系统会建立一个新的文件。

    WindrunnerMax
  • 俄政府拨款 5200 万美元发展数字经济

    俄罗斯政府网站 31 日发布公告称,总理梅德韦杰夫日前签署一项命令,要求从政府储备基金中拨款约 30 亿卢布(约合 5200 万美元)用于发展本国数字经济。公告...

    周俊辉
  • JAVA获取txt文件内容

      JAVA 读取txt文件内容   通常,我们可以直接通过文件流来读取txt文件的内容,但有时可能会出现乱码!此时只要设置一下文件字符编码即可。 public...

    用户1154259
  • 技术分享 | MySQL 使用 MariaDB 审计插件

    专注于 Oracle、MySQL 数据库多年,Oracle 10G 和 12C OCM,MySQL 5.6 ,5.7,8.0 OCP。现在鼎甲科技任顾问,为同事...

    爱可生开源社区

扫码关注云+社区

领取腾讯云代金券