一、常用操作以及概念

快捷键

  • Tab:命令和文件补齐
  • Ctrl+C:中断正在运行的程序
  • Ctrl+D:在录入信息时表示end of file结束输入,在终端中相当于exit回车,远程会直接退出
  • who:查看当前在线用户情况,Linux不同于windows多用户在线很普遍

二、磁盘

磁盘接口

  • IDE:不知道是啥,反正基本没人用了
  • SATA:现在比较通用的,抗干扰性强,二代接口速度大概是300M/s,三代标准600M/s
  • 还有SCSI和他的优化版SAS,都比SATA好当然也比它贵,所以现在还不是很普及

磁盘名称

Linux里面的每个存储工具(磁盘或者光盘之类的)都被当做一个文件夹,比如两个磁盘就是两个根目录,不像Windows里面可以把一块硬盘分成好几个盘(没有实际使用过,不是很了解)

三、文件

文件属性

ll查看一个目录的详细信息:==drwxr-xr-x 4 root root 4.0K 10月 22 16:43 temp==

  • 第一个字符代表文件类型
    • d:目录
    • -:文件
    • l:链接文件
  • 类型后面的9位代表权限
    • r、w、x表示可读、可写、可执行
    • 9位中美三个为一组代表一个角色的权限,分别对应文件拥有者、所属群组和其他人的权限
  • 4:链接数
  • root:文件拥有者
  • root:文件所属群组
  • 4.0k:文件大小
  • 10月 22 16:43:文件最后修改时间
  • temp:文件名称

touch

==touch [-acdmt] filename==:更新文件时间或者创建文件(不太清楚更新时间是什么作用)

  • a : 更新 atime
  • c : 更新 ctime,若该文件不存在则不建立新文件
  • m : 更新 mtime
  • d : 后面可以接更新日期而不使用当前日期,也可以使用 –date=”日期或时间”
  • t : 后面可以接更新时间而不使用当前时间,格式为[YYYYMMDDhhmm]

修改权限

可以将一组权限用数字来表示,r:4、w:2、x:1;所以通常用==chmod 777 filename==给文件所有用户所有权限,4、2、1的组合很巧妙不会出现一个数字能代表两种权限组合的情况

默认权限

  • 文件默认权限是666、没有执行的权限,所以好多时候要执行一个脚本的时候需要去修改他的权限
  • 文件夹的默认权限是777,因为默认是可以打开的
  • 注意由于文件名是存储在文件夹里面的,所以只对文件有写入权限的时候是不能

获取文件内容

  • cat:取得文件内容,有的时候vim打开文件去复制会出现符合编码的问题,用cat打印到命令行再复制就不会
  • tac:将文件内容倒着打印出来
  • more:对比cat它可以一页页的查看,适合大文件
  • less:比more多了一个向前翻页
  • head:取得文件的前几行 head -n filename
  • tail:文件的后几行,通常用来查看日志文件

搜索

  • which 只能搜索可执行的文件
  • whereis 比which强一些能搜索所有的文件(不太清楚和locate是个什么区别)
  • locate 依赖linux维护的数据库来搜索速度非常快,但是数据库的更新是每天一次,新文件会出现搜不到的情况,可以用updatedb来立即更新数据库(估计每天只更新一次是为了节省资源开销,老是用updatedb的话影响整体性能了)
  • find 文件搜索,从根目录搜索,会很慢,可以自己限定范围,比如 find . -name filename
  • 总结:试了一下前面的三个命令都用得不是很明白,大概在找一写程序的安装目录的时候用whereis 比较合适,其他时候还是老老实实用find自己去缩小查找范围,不过find命令是真的很慢

压缩

  • linux里面常见的压缩文件格式
    • .Z commpress
    • .zip zip
    • .gz gzip
    • .bz2 bzip2
    • .xz xz
    • .tar tar程序打包数据,没有经过压缩
    • .tar.gz .tar.bz2 .tar.xz 就是经过对应的方式进行了压缩
  • 不同的压缩类型
    • gzip
      • gzip filename 直接压缩文件,源文件会消失,出现一个filename.gz的文件
      • gzip -d filename 解压文件,这个文件当然得是压缩文件了,可以解开compress、zip和gzip所压缩的文件
    • bzip2 提供比gzip更高的压缩比
    • xz 比bzip2更高的压缩比,这几种方式的压缩比是增加的,同时会花费更多的时间

打包

tar命令,试了一下没有成功,用于压缩文件夹的

四、Bash(创建一个.sh文件)

变量操作

  • 赋值 =

  • 对变量的取用在变量的前面加上$或者${}

  • 输出变量echo

  • 当变量的内容中包含空格,需要使用双引号或者单引号-

    • 双引号内的特殊字符可以保留原本的属性
    • 单引号内的特殊字符就是特殊字符本身

    x=”x is $LANG" y='y is $LANG’
    输出结果:
    x is zh_CN.UTF-8
    y is $LANG

五、管道指令

  • 管道是指将一个命令的输出作为另一个命令的输入,管道命令可以是连续的多个命令,中间用|分隔
  • 提取指令:cut,提取结果中需要的部分涉及正则表达式,用的时候再具体说
  • 排序:sort
  • 去重:uniq

字符转换:

  • tr 删除或者替换字符
    • last | tr ‘[a-z]’ ‘[A-Z]’ 将last输出的内容中的小写转换为大写
    • tr -d string 删除行中sting字符串
  • col 将tab字符转换为空格
  • expand将tab转换为一定数量的空格,默认是8个

分区指令

split将一个文件划分为多个文件

split [-bl] file PREFIX
-b:以大小分区,可以加单位,b,k,m之类的,不知道默认的是什么
-l:以行数分区
-PREFIX:分区文件的前缀
完整示例:split -l 2 test.py son
将test.py文件没两行分为一个文件,前缀是son,最后得到的文件是sonaa、sonab、sonac...源文件还存在,分割后的文件没有格式后缀

六、进程管理

查看进程

  • ps
    • ps -l 查看自己的进程
    • ps aux 查看系统所有进程
    • ps aux | grep threadx 查看特定的进程,这个就是以前经常用的
  • pstree -A 查看所有进程树,这个会比较直观的把所有的进程以树状结构展示出来
  • top 显示实时进程信息(类似于Windows里面的任务管理)top -d 2 两秒钟刷新一次
  • netstat 查看端口占用情况
    • netstat -anp | grep portNum 查看特定端口占用情况,一般是先通过ps命令把程序对应的端口号找出来,再用这个命令查看