TLCL学习笔记

The Linux Command Line 学习笔记

第一部分 学习shell

第一章 什么是shell

第二章 文件中的跳转

第三章 探究操作系统

  • ls — 列出目录内容
    • -l(长格式显示)
    • -t(修改时间排序)
    • -r(–reverse相反的顺序)
    • -a(–all列出所有文件包括隐藏文件)
    • -F(–classify列出名字后加指示符)
    • -h(长格式列出时文件大小单位更直观)
    • -S(文件大小排序)
  • file — 确定文件类型

    file filename 打印出文件内容的简单描述

  • less(less is more) — 浏览文件内容(色即是空)

    less filename 浏览文本文件的一个程序

    • q (退出less程序)
    • b or Page Up (上翻一页)
    • space or Page Down (下翻一页)
    • G (已到最后一行)
    • g or 1G (移到开头一行)
    • /charaters (向前查找)
    • n (查找下一个)
    • h (帮助)
  • Linux常见系统目录
    • / (根目录)
    • /bin (系统启动和运行所必须的二进制程序)
    • /boot ( Linux 内核、 启动加载程序等)
    • /dev (设备结点,“一切都是文件”)
    • /etc (所有系统层面的配置文件如用户账号列表)
    • /home (在/home 下,给每个用户分配一个目录。普通用户只能在他们自己的目录下创建文件。)
    • /root (root 帐户的家目录)
    • /tmp (存储由各种程序创建的临时文件)
    • /usr (/usr目录可能是最大的一个。包含普通用户所需要的所有程序和文件。)
  • 符号链接

    建立符号链接便于系统的更新

第四章 操作文件和目录

  • 通配符
      • (匹配任意多个字符(包括零个或一个))
    • ? (匹配任意一个字符(不包括零个) )
    • [characters] (匹配任意一个属于字符集中的字符 )
    • [!characters] (匹配任意一个不是字符集中的字符)
    • [[:class:]] (匹配任意一个属于指定字符类中的字符)
      • [:alnum:] 匹配任意一个字母或数字
      • [:alpha:] 匹配任意一个字母
      • [:digit:] 匹配任意一个数字
      • [:lower:] 匹配任意一个小写字母
      • [:upper] 匹配任意一个大写字母
  • mkdir - 创建目录

    mkdir dir1 dir2 dir3

  • cp - 复制文件和目录

    cp item1 item2(复制单个文件或目录”item1”到文件或目录”item2”)

    cp item... directory(复制多个项目(文件或目录)到一个目录下)

    • -a, –archive (复制文件和目录,以及它们的属性,包括所有权和权限。)
    • -i, –interactive (在重写已存在文件之前,提示用户确认。)
    • -r, –recursive (递归地复制目录及目录中的内容。当复制目录时, 需要这个选项(或者-a 选项) )
    • -u, –update (更新文件或复制不存在文件)
    • -v, –verbose (显示翔实的命令操作信息 )
  • mv - 移动和重命名文件

    mv item1 item2 :把文件或目录 “item1” 移动或重命名为 “item2”

    mv item... directory :把一个或多个条目从一个目录移动到另一个目录中。

  • rm - 删除文件和目录

    rm item...:“item”代表一个或多个文件或目录。

  • ln - 创建链接

    ln file link:创建硬链接

    ln -s item link:创建符号链接

第五章 使用命令

  • 命令
    • 一个可执行程序
    • 一个shell内部命令(builtins)
    • 一个shell函数
    • 一个命令别名
  • 识别命令
    • type - 显示命令的类型(以上4种之一) type command
    • which - 显示一个可执行程序的位置 which command
  • 得到命令文档
    • help - 得到shell内部命令的帮助文档 help command
    • –help - 显示用法信息 command --help
    • man - 显示程序手册页 man program
    • apropos - 显示适当的命令(搜索参考手册列表,基于某个关键字的匹配项)apropos keyword
    • whatis - 显示非常简洁的命令说明 whatis command
    • info - 显示程序 Info 条目 (一个命令程序手册页的替代物)info command
  • alias - 创建你自己的命令
    • 创建 alias name='string'
    • 删除 unalias name

第六章 重定向

  • 标准输入文件(stdin),描述符为0:默认连接到键盘
  • 标准输出文件(stdout),描述符为1:默认连接到屏幕
  • 标准错误文件(stderr),描述符为2:默认连接到屏幕

    • 重定向标准输出
    • 使用 “>” 重定向符,其后跟着文件名(> 从目标文件开头重写,可用来删除文件内容或是建新文件)
      ls -l /usr/bin > ls-output.txt

    • “>>”重定向符,结果追加到文件后面。
      ls -l /usr/bin >> ls-output.txt
    • #### 重定向标准错误
      ls -l /bin/usr 2> ls-error.txt:2为标准错误的文件描述符
    • #### 重定向标准输出和错误到同一个文件
      ls -l /bin/usr > ls-output.txt 2>&1 :1为标准输入的文件描述符


    ls -l /bin/usr &> ls-output.txt

    • #### 处理不需要的输出
    • /dev/null :位存储桶,接受输入,但输入不做任何处理

      ls -l /bin/usr 2> /dev/null

    • 重定向标准输入
    • cat

      • 读取一个或多个文件,然后复制它们到标准输出cat [file]

      • 复制标准输入到标准输出cat > [fiel] 创建简短的文本文件

    • pipelines(管道线):操作符“|”,一个命令的 标准输出可以管道到另一个命令的标准输入
      command1 | command2

      • 用 less 来一页一页地显示任何命令的输出 ls -l /usr/bin | less
    • filters(过滤器):把几个命令放在一起组成一个管道线

      • sort - 排序 ls /bin /usr/bin | sort | less
      • uniq - 报道或忽略重复行ls /bin /usr/bin | sort | uniq | less
        /bin /usr/bin | sort | uniq -d | less查看重复的数据列表
      • wc - 显示文件所包含的行,字和字节数。”-l”只输出行数
        ls /bin /usr/bin | sort | uniq | wc -l
      • grep - 输出匹配行 grep pattern [file...]
        ls /bin /usr/bin | sort | uniq | grep zip

        -i(忽略大小写)-v(只输出不匹配的行)

      • head / tail - 打印文件开头部分/结尾部分
        • ’-n 5’ 5行
        • ‘-f’ 持续监测
      • tee - 从 Stdin 读取数据,并同时输出到 Stdout 和文件
        ls /usr/bin | tee ls.txt | grep zip

第七章 从shell眼中看世界

  • echo - 显示一行文本
(字符)展开

在标准输出中打印出它的文本参数
echo this is a test
echo *

路径名展开

这种通配符工作机制叫做路径名展开。

echo D* echo *s

echo .*可以展开隐藏文件

波浪线展开

当波浪线字符(“~”)后接一个单词时,展开成指定用户的家目录,如果没有指定用户名,则是当前用户的家目录

echo ~cyc

echo ~

算术表达式展开

格式为

$((expression))

echo $((2 + 2))

** 为 取幂

花括号展开

可以从一个包含花括号的模式中 创建多个文本字符串

例:

[me@linuxbox ~]$ echo Front-{A,B,C}-Back

Front-A-Back Front-B-Back Front-C-Back

echo Number_{1..5}

echo {Z..A}

也可以嵌套

echo a{A{1,2},B{3,4}}b输出的结果为aA1b aA2b aB3b aB4b

参数展开

例:

echo $USER

命令替换

把一个命令的输出作为一个展开模式来使用

例:

echo $(ls)

引用
双引号

把文本放在双引号中, shell 使用的特殊字符,除了 $,\ (反斜杠),和 `(倒引号)之外, 则失去它们的特殊含义,被当作普通字符来看待。这意味着单词分割,路径名展开, 波浪线展开,和花括号展开都被禁止,然而参数展开,算术展开,和命令替换 仍然执行。

例:

echo "this is a test"执行结果是:this is a test

单引号

禁止所有的展开

例:

echo 'text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER'结果为:text ~/*.txt {a,b} $(echo foo) $((2+2)) $USER

转义字符

字符前加个反斜杠\

第二部分

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值