终端

  • tty(teletypewriters):控制台,早期计算机通过电传打字机作为输入设备
  • Console:控制台终端,即显示器
  • Ctrl+Alt+T:图形界面终端
  • Ctrl+Alt+F2:tty2
  • Ctrl+Alt+F1:回到图形界面
  • #:root用户(Ctrl+D 或 exit 退出)
  • $:普通用户(通过 sudu su 切换到root)

操作

  • whoami:用户名
  • hostname:电脑名
  • date:日期
  • ls(list):列出当前目录下的文件和目录
    • -a(all):全部文件,包括隐藏文件
    • -l:列出详细信息
    • -lh(human-readable):适于阅读的
    • -t:按文件最近一次修改时间排序
    • 不同颜色意义(Ubuntu)
      • 蓝色 --> 目录
      • 绿色 --> 可执行文件
      • 红色 --> 压缩文件
      • 浅蓝色 --> 链接文件
      • 灰色 --> 其他文件
  • Tab:补全命令
  • Ctrl + R:查找用过的命令
  • history:列出之前用过的命令(!编号:调用命令)
  • Ctrl + L:用于清理终端的内容
  • Ctrl + D:给终端传递EOF(End Of File 文件结束符)
  • Shift + PgUp:向上滚屏
  • Shift + PgDn:向下滚屏
  • Ctrl + A:光标跳到一行命令开头(Home)
  • Ctrl + E:光标跳到一行命令的结尾(End)
  • Ctrl + U:删除所有光标左侧的命令字符
  • Ctrl + K:删除所有光标右侧的命令字符
  • Ctrl + W:删除光标左侧的一个单词
  • Ctrl + Y:粘贴删除掉的字符

文件

  • 普通文件:文本、声音、程序等
  • 特殊文件:设备、目录等
  • /:根目录
  • ~:家目录(具体位置与用户有关)
  • 目录命名时用小写英文字母
  • 根目录的直属子目录:
    • bin:二进制文件(可执行程序)
    • boot:启动相关文件
    • dev:设备
    • etc:系统配置文件
    • home:私人目录,每个用户在home下都有一个私人目录
    • lib:库,被程序调用的库文件
    • media:媒体
    • mnt(mount):挂载点
    • opt(optional application software package):可选的应用软件包
    • root:超级用户root的家目录(其他用户位于home下)
    • sbin(system binary):系统二进制文件,系统级的重要可执行程序
    • srv(service):服务
    • tmp(tempory):临时的,普通用户存放临时文件的地方
    • usr(Unix Software Resource Unix):操作系统软件资源,程序安装处
    • var(variable):log文件等
  • pwd(Print Working Directory):打印当前工作目录
  • which:显示一个命令对应可执行程序的位置
  • 命令其实就是一个随时可以被调用的程序
  • .(一个点):当前目录
  • ..(两个点):上一级目录
  • cd(change directory):切换目录(直接cd会返回家目录)
  • du(disk usage):磁盘使用
    • -h:适合阅读的
    • -a:显示文件和目录的大小
    • -s(summarize):只显示总大小

  • cat(concatenate):把文件连接界起来打印到标准输出

    • -n:添加行号
  • less:分页显示文件内容
    • 空格:前进一页
    • 回车:前进一行
    • d:前进半页
    • b:后退一页
    • y:后退一行
    • u:后退半页
    • q:退出
  • head:显示文件头
  • tail:显示文件尾
  • touch:创建一个空白文件
  • mkdir(make directory):创建一个目录
    • -p:递归创建目录
  • cp(copy):拷贝文件
    • -r:递归拷贝目录中所有内容
  • mv(move):移动文件或目录,重命名
  • rm(remove):删除
    • -i:确认是否删除
    • -f:强制删除
    • -r:递归删除
  • ln:创建链接
    • ln file1 file2

      • 创建 file2 作为 file1的硬连接
      • file2指向file1的文件内容(inode)
      • 2代表拥有相同inode号的文件数
      • 删除一个对另一个没影响
    • ln -s file1 file2
      • 创建 file2 作为 file1的软连接(快捷方式)
      • file2指向file1的文件名
      • file1和file2的inode号不一样
      • 删除file1后file2就不可用了

  • locate:快速查找

    • 返回文件路径
    • 查找文件数据库,而不是硬盘
    • 文件数据库每天更新一次
    • sudo update:强制更新
  • find:深入查找
    • find “何处” “何物” “做什么”
    • 何处:指定哪个目录查找
    • 何物:找什么(必须)
    • 做什么:找到后的后续处理
    • 遍历实际硬盘
    • -name:指定文件名
    • -size:指定大小
    • -atime:指定时间
    • -type d:只查找目录
    • -type f:只查找文件
    • -printf:打印
    • -delete:删除
    • -exec:对找到的文件进行操作
  • grep:筛选数据

    • Globally search a Regular Expression and Print
    • 全局搜索一个正则表达式并打印
    • 在文件中查找关键字并显示其所在的行
    • -i:忽略大小写
    • -n:显示行号
    • -v:显示文本不在的行
    • -r:在所有子目录和子文件中查找
    • -E:使用正则表达式
  • sort:文件排序
    • -o:将排序后内容写入新文件
    • -r:反排序
    • -R:随机排序
    • -n:对数字排序
  • wc:文件统计
    • word count
    • 行数,单词数,字节数
    • -l:统计行数
    • -w:统计单词数
    • -c:统计字节数
    • -m:统计字符数
  • uniq:删除文件重复内容
    • -c:统计重复行数
    • -d:只显示重复行的值
  • cut:剪切文件部分内容
    • -c:根据字符数剪切
  • 重定向
    • >:将命令的输出结果重定向到指定文件中(覆写)

      • cut -d , -f 1 notes.csv > students.txt
    • >>:将命令的输出结果重定向到指定文件的末尾
    • 2>:将标准错误输出重定向到指定文件中(覆写)
      • cat not_exist_file.csv > results.txt 2> errors.log
      • 将标准输出重定向到 results.txt 文件中
      • 将标准错误输出重定向到 errors.log 文件中
      • 假如 not_exist_file.csv 这个文件确实存在,将其内容写入 results.txt 文件中
      • 假如 not_exist_file.csv 这个文件不存在,将错误信息写入 errors.log 文件中
    • 2>>:将标准错误输出重定向到指定文件的末尾
    • 2>&1:合并输出
      • cat not_exist_file.csv > results.txt 2>&1
      • 将所有输出(标准输出和标准错误输出)都重定向到 results.txt 文件中
      • cat not_exist_file.csv >> results.txt 2>&1
      • 追加错误信息到 results.txt 文件中
    • <:从文件读取
      • cat < notes.csv
      • 效果和 cat notes.csv 一样
    • <<:将键盘的输入重定向为某个命令的输入
      • sort -n << END
      • 从键盘输入字符并排序,END结束
      • sort -n << END > numbers_sorted.txt 2>&1
      • 将排序结果连同错误信息都输出到numbers_sorted.txt

  • 管道

    • 命令1的输出变成命令2的输入
    • cut -d , -f 1 notes.csv | sort > sorted_names.txt
      • 剪切文件部分内容并排序输出到另一个文件
    • du | sort -nr | head
      • 查看当前目录下按参数排序的前十个子目录
    • sudo grep log -Ir /var/log | cut -d : -f 1 | sort | uniq
      • sudo grep log -Ir /var/log :遍历 /var/log 这个目录及其子目录,列出所有包含 log 关键字的行
      • cut -d : -f 1 :从输出结果中只剪切出文件名那一列(由冒号分隔)
      • sort :将文件名的列以首字母的字典顺序进行排序
      • uniq :去掉重复的文件名

参考

Linux命令大全

https://man.linuxde.net/

[Linux] Linux命令行与Shell脚本编程大全 Part.1的更多相关文章

  1. Linux命令行与shell脚本编程大全.第3版(文字版) 超清文字-非扫描版 [免积分、免登录]

    此处免费下载,无需账号,无需登录,无需积分.收集自互联网,侵权通知删除. 点击下载:Linux命令行与shell脚本编程大全.第3版 (大小:约22M)

  2. 《Linux命令行与shell脚本编程大全 第3版》创建实用的脚本---11

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  3. 《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---47

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  4. 《Linux命令行与shell脚本编程大全 第3版》Shell脚本编程基础---57

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  5. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---57

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  6. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---56

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  7. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---55

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  8. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---54

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  9. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---53

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

  10. 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---52

    以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:

随机推荐

  1. Docker备份Gitlab容器以及还原数据

    概述 今天,我们将学习如何快速地对docker容器进行快捷备份.恢复和迁移.Docker是一个开源平台,用于自动化部署应用,以通过快捷的途径在称之为容器的轻量级软件层下打包.发布和运行这些应用.它使得 ...

  2. 快速排序(QuickSort)Java版

    快速排序 快速排序是对冒泡排序的一种改进. 它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排 ...

  3. Dynamics CRM实体系列之窗体

    本节开始讲Dynamics CRM的窗体排版和设计,窗体也就是我们实际可以看到的表单界面.Dynamics CRM提供了一套独立的表单模板设计引擎,可以很方便的为开发者提供无代码开发,只需要简单的拖动 ...

  4. AutoAssign源码分析

    目录 AutoAssign源码分析 一. 简介 二. 论文理论 2.1 联合表示 2.2 正样本权重 2.3 负样本权重 2.4 总的loss 2.5 补充loss 三. 论文代码 四. 总结 五. ...

  5. NPM 与 NPX 区别

    NPM 和 NPX 区别 NPM Node Package Manager npm 是 Node.js 的软件包管理器,其目标是自动化的依赖性和软件包管理 NPX npx 是执行 Node 软件包的工 ...

  6. MQ 入门实践

    MQ Message Queue,消息队列,FIFO 结构. 例如电商平台,在用户支付订单后执行对应的操作: 优点: 异步 削峰 解耦 缺点 增加系统复杂性 数据一致性 可用性 JMS Java Me ...

  7. 「HTML+CSS」--自定义加载动画【016】

    前言 Hello!小伙伴! 首先非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 哈哈 自我介绍一下 昵称:海轰 标签:程序猿一只|C++选手|学生 简介:因C语言结识编程,随后转入计算机 ...

  8. 解决Linux无法读写U盘中的NTFS问题

    1 问题描述 由于笔者因为某些需要把Windows装在了U盘上面(在这里建议一下如果有需要请使用固态U盘),在Linux下挂载时,能读取但并不能写. 2 尝试的解决方案 2.1 remount 一开始 ...

  9. 13.Quick QML-RowLayout、ColumnLayout、GridLayout布局管理器介绍、并通过GridLayout设计的简易网站导航界面

    上章我们学习了:12.Quick QML-QML 布局(Row.Column.Grid.Flow和嵌套布局) .Repeater对象,本章我们继续来学习布局管理器 1.RowLayout.Column ...

  10. grafana接入zabbix数据源

    一.grafana介绍 grafana是开源免费的应用数据可视化仪表盘,由于zabbix本身对监控数据可视化并不侧重,所以大多使用第三方数据可视化工具来做大屏.下面向小伙伴们介绍grafana接入za ...