zoukankan      html  css  js  c++  java
  • Linux复习1

    1. wc是文件统计命令,两种使用方法:(1)直接加文件名wc test.txt (2)输入重定向wc < test.txt

    wc输出的三个参数为,文件的行数,单词数,字节数

    2. ls -l *.sh 和ls -l * .sh区别(差一个空格):前者为列出所有.sh文件,后者为列出所有以空格结尾的.sh文件

    若执行报错,会有错误信息并列出文件夹下所有文件

    3. 圆括号和花括号可以将命令组合,之后共享一个重定向,例如(ls -l *.sh;ls -l * .sh) > test.txt

    4. 管道:| 左边的命令使用标准输出,| 右边的命令使用标准输入  eg:who -a | cat > userlist

    5. shell变量

    (1)环境变量:shell已经定义的变量,如HOME,SHELL,PATH
    (2) 用户自定义变量:
    • 变量名:必须以字母开头,其他可以是数字和_,区分大小写
    • 变量类型:shell变量都是字符串类型
    • 变量不需要提前声明
    • 变量赋值:variable=value
    • 变量引用:$var_name (可使用转义符 和单引号来避免替换)

    6. 数值计算,默认定义变量为字符串

     如果想做数字赋值需要使用let命令 let x=1

    $((y+2))表示运算表达式

    bc浮点数计算器

     7. 命令行参数

     $@表示命令行所有参数

    变量操作命令:

     8. 通配符:表示文件名的某种模式

     9. 命令执行结构

    • 顺序执行:在同一行内使用;分隔命令
    • 条件执行:使用逻辑运算符&&和||分隔命令
    cmd1 && cmd2 若cmd1成功,则执行cmd2
    cmd1 || cmd2 若cmd1失败,则执行cmd2

     10. test测试命令(重要)

     注意:0为真,1为假

     11. ln命令:创建一个链接

    (1)默认为硬链接,即inode号一样

    无论修改文件还是链接文件,另一个内容都随之改变

    删除一个,只要另一个在,就能访问(因为inode还在)

    (2)参数-s为创建符号链接,类似于快捷方式

    无论修改文件还是链接文件,另一个内容都随之改变

    删除源文件,链接无法访问;删除链接,源文件可以访问

     12. stat命令:查看文件属性

     13. touch命令:创建新文件或修改文件时间戳

     14. shell进阶命令:pr,head,tail,cut,paste,sort,uniq,tr,cmp,comm,diff,grep,sed

    (1)uniq命令为筛选文件重复行或非重复行,但是只能判断相邻行是否一样,因此常和sort合并使用;

    (2)sort使用实例:以:作为分隔符,将第三个字段的第一个字符作为排序标准

    (3)sed指令举例:

    sed '5q' file  其中q为sed内部action,表示停止,所以此处为截取前5行

    指定匹配正则表达式:/pattern/模式匹配的行;此处表示将有":x"的行中的":x"替换为":y"

     

    打印指定模式的行:sed -n '/pattern/p' file ;匹配正则表达式就是两个/括起来的部分

     打印文件前3行: sed -n '4,$!p' psdcp ;其中$表示最后一行,!p表示不打印

     在指定行之前插入行(1):

     删除第一行:

    截取文件后5行(嵌套):反引号表示执行命令,里面得到最大行号再减4,从这个数到$p,也就是最后行;其中$在双引号里,需要加转义;因为内部已有单引号,所以外层sed语句用双引号

     匹配源模式&:sed 's/a/b &/g' file  ;用&来简写源模式a

     查找具有写权限的文件:{表示转义{;/与/之间为匹配的正则表达式

    将通讯录contact中两个名字颠倒:(pattern)标记源模式

    这里s标记模式的格式仍然是s/a/b/,其中a为两个(pattern)格式的标记源模式,b为用k对标记的引用,先2后1即换了位置,中间用空格保持了原意空格分割;

    中间空格后面的*表示任意多个空格

    注意:sed所有操作都只是改变了打印内容,并没有真正改变文件

    15. 1>&2的作用,把标准输出(1)重定向到标准错误(2),这样其所在的echo语句可以打印在控制台,不会随其他语句打印到指定文件

    16. 正则表达式

     

    17. awk按行处理文件,常用参数-F后接自定义的分隔符

    举例:

     

    解释:

    第二个示例中.*表示单个字符重复任意多次(可以0),之后有sbin,之后再加任意字符,前后有/;符合这个条件则打印该行;

    第三个示例中表示,用:分割的话,第三个单词如果大于2,则打印该行;(如果想判断字符串相等,用双引号,如:awk -F: '$2=="bill johnson" {print}' lst )

    awk的打印内还可以添加数值运算表达式

    awk匹配正则表达式用~

    可以添加BEGIN和END字段,在执行awk前后自动执行打印内容

    awk中引用命令行位置参数要加引号

    18. Perl编程

    与Shell类似,在命令行使用加-e

    Perl中变量赋值和引用时都需要加$,与awk一致的是第一次使用即视为声明

    Perl表达式中1为真0为假,与Shell相反,但是与认知相符

    其他应用:foreach,列表,数组,哈希函数,替换函数

    19. cp命令使用:默认第一个选项为源文件(若为源目录加参数-R),第二个为目标目录(若为文件,则该文件内容被破坏)

    举例:

    (1)cp f[1-3] file 将f1,f2,f3都拷贝到file目录下

    (2)cp file f[1-3] 指令原意是将file拷贝到文件夹f1,f2,f3,但实际运行时报错(此时有f1,f2,f3三个文件夹),最终是将file,f1,f2拷贝到f3,f3必须是目录

     如果没有对应的三个文件夹,会把f[1-3]自动转化为字符串命名的文件

    20. 删除空目录:rmdir;删除非空目录rm -R

    21. echo命令" "换行问题:加-e参数,激活转义字符

    22. 过滤器实例:

    cat - f2<f1>f3 2>f4

    其中-指的是获取标准输入,就是说f1相当于键盘读入,之后将f1,f2的cat内容输出到f3中,之后将错误信息输出到f4

    (下面代码中f1234中原内容是111,222,333,444)

    23. while与until区别:while当循环体为真时执行,unil当循环体为假时执行

  • 相关阅读:
    关系运算符重载
    一元运算符重载
    二元运算符重载
    重载函数和重载运算符
    Linux之文件通信
    Linux进程通信之mmap
    Linux之创建多个子进程
    内联函数
    静态成员
    this指针
  • 原文地址:https://www.cnblogs.com/Kinghao0319/p/12104921.html
Copyright © 2011-2022 走看看