Linux文件管理及命令

Linux 系统下的文件类型与文件权限

  • 文件类型
    Linux 下所有的东西(包括内存、网卡、外部设备等等)都可以看做文件,Linux 将文件 分为以下五种类型:
    a. 普通文件 ‘-’
    b. 目录文件 ‘d’
    c. 管道文件 ‘p’
    d. 链接文件 ‘l’
    e. 设备文件(块设备 ’b’ 、字符设备 ‘c’ 、套接字设备 ‘s’ )
    .mp4 .avi .txt
    linux只有通过命令才能查看出一个文件的类型:ls -l 、ll :能查出隐藏文件

  • 文件权限
    用户能够对其进行怎样的操作
    a. r 读权限 值: 4
    b. w 写权限 值: 2
    c. x 执行权限 值: 1
    d. - 无权限 值: 0
    如何查看文件的权限:ls -l 、ll :能查出隐藏文件
    a. u : 表示文件属主的访问权限 文件是谁建立的属主就是谁
    b. g : 表示文件同组用户的访问权限 用户进行分组
    c. o : 表示其他用户的访问权限 和创建文件的用户不是同一个组
    一切皆文件。
    修改文件权限
    1.文字设定法
    chmod + u 表属主 g 同组人 o 其他人 a 所有人 + 增加权限 -去掉权限 文件路径/文件名
    chmod u+w main.c
    2.数字设定法
    test u :rw
    g: rx
    o :没有权限

  • 文件操作
    查看文件
    ls 查看当前目录下的文件
    -a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
    -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
    -r 将文件以相反次序显示(原定依英文字母次序)
    -t 将文件依建立时间之先后次序列出
    -A 同 -a ,但不列出 “.” (目前目录) 及 “…” (父目录)
    -F 在列出的文件名称后加一符号;例如可执行档则加 “ * ”, 目录则加 “/”
    -R 若目录下有文件,则以下之文件亦皆依序列出
    创建文件
    touch + 文件路径/文件名 创建普通文件 文件路径:可以是相对路径也可以是绝对路径
    mkdir + 目录路径/目录名 创建目录文件
    删除文件
    1.删除普通文件
    rm + 文件路径/文件名 删除普通文件
    2.删除目录文件
    删除空目录
    rmdir + 目录路径/目录名
    rm -r +目录路径/ 目录名 -r 是rm的参数
    删除非空目录
    rm -r +目录路径/ 目录名
    注意:rm -rf * 禁用 rm -rf / *
    文件复制与重命名
    1.复制粘贴使用cp
    语法: cp [options] source… directory
    • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
    • -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
    • -f:覆盖已经存在的目标文件而不给出提示。
    • -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答"y"时目标文件将被覆盖。
    • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
    • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
    • -l:不复制文件,只是生成链接文件。
    2.移动文件或者重命名使用mv
    语法:mv [options] source… directory
    • -i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
    • -f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示;
    编辑文件
    通过vi演示只读只写:
    压缩、打包
    我们使用tar进行打包或者解包。使用gizp进行文件压缩。
    打包
    将文件打包或者解包
    1.c 创建包文件
    2.f 指定目标为文件而不是设备
    3.v 显示详细过程
    4.t 显示包中的内容而不释放
    5.x 释放包中的内容
    6.z GNU 版本新加的,使得 tar 有压缩和解压的功能

Linux 文件操作命令

  • 文件查看命令
    cat 查看文件内容
    Linux文件管理及命令
    合并文件
    Linux文件管理及命令
    往文件中写入数据, Ctrl+d 是结束输入
    Linux文件管理及命令
    more 当一个文件的内容超过一个屏幕能显示的行数,使用 more 可以分屏显示文件内容。
    使用方式: more filename
    less 文本内容查看器,查看文件内容,但是文件内容不会显示到界面上
    head 显示文件前 n 行的内容
    Linux文件管理及命令
    tail 显示文件后 n 行的内容
    Linux文件管理及命令
  • 数据统计
    wc 统计文件中单词个数(-w)、字符个数(-c)、行数(-l)
  • 文件编辑命令
    vim命令
    sudo apt-get install vim-gtk
    sudo:以管理员权限运行(ubuntu特有,其他平台常常要先su到管理员权限,然后再安装)
    apt-get:使用apt-get包管理器
    install:apt-get的命令,查找软件安装
    vim-gtk:安装使用GTK图形的vim编辑器
    三种模式介绍
    vim一共有三种模式,分别是命令模式、插入模式、末行模式。我们可以在不同的模式下做不同的操作。
    命令模式切换到插入模式:
    1.a //进入到当前光标后开始编辑
    2.A //进入到当前光标所在行的行末开始编辑
    3.i //进入当前光标位置开始编辑
    4.I //进入当前光标所在行的行头开始编辑
    5.o //进入当前光标下一行开始编辑
    6.O //进入当前光标上一行开始编辑
    命令模式切换到末行模式
    1.: //对文本的设置或保存工作
    2./ //对文本进行全文向下搜索字符串 string
    3.? //对文本进行全文向上搜索字符串 string
    vi/vim 常用命令
    1.n dd //删除光标开始向下的 n 行
    2.n yy //拷贝光标开始向下的 n 行
    3.p //粘贴
    4.u //撤销上一次操作
    5.ctrl + r // 恢复上一次撤销操作
    6.r //替换一个字符
    7.shift + 6 //光标移动到当前行的行头
    8.shift + 4 //光标移动到当前行的行尾
    9.shift + g //光标移动到整个文本的最后一行 G
    10.gg //光标移动到整个文本的第一行
    11.n shift + g //光标移动到第 n 行
    12.d n shift + g //删除光标到 n 行的内容
    13.y n shift + g //拷贝光标到 n 行的内容
    末行模式下的操作
    1.:w //保存文本
    2.:q //退出编辑
    3.:wq //保存并退出
    4.:q! //强制退出
    5.:w newfile //另存为
    6.:set nu //显示行号
    7.:set nonu //取消行号
    8.: set hlsearch //设置高亮搜索
    9.: set nohlsearch //取消高亮搜索
    10.: n,m s/oldstring/newstring //替换整个文本每行的第一个 oldstring
    11.:n, m s/oldstring/newstirng/g //替换整个文本所有的 oldstring
    12./string //向下搜索 string
    13.?string //向上搜索 string
  • vim小技巧
    定位命令
    Linux文件管理及命令
    删除命令
    Linux文件管理及命令
    复制粘贴命令
    Linux文件管理及命令
    替换和取消命令
    Linux文件管理及命令
    Linux文件管理及命令
    最后+g 替换的时候不询问 +c 替换的时候询问
    保存或退出命令
    Linux文件管理及命令
    恢复上一次撤销操作:ctrl + r
    导入另外一个文件的内容:esc :r 文件名
    vim中的快捷键
    Linux文件管理及命令
    vim配置文件
    在用户家目录输入:vim .vimrc
    输入一些编辑模式的命令:比如设置行号,设置快捷键
  • 基础命令
    find 在那个路径下查找文件 -以哪种方式查找文件 test
    在目录树中搜索指定的文件,也可以指定开始的搜索位置
    -mount, -xdev : 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件
    -amin n : 在过去 n 分钟内被读取过
    -anewer file : 比文件 file 更晚被读取过的文件
    -atime n : 在过去n天内被读取过的文件
    -cmin n : 在过去 n 分钟内被修改过
    -cnewer file :比文件 file 更新的文件
    -ctime n : 在过去n天内被修改过的文件
    -empty : 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name
    -ipath p, -path p : 路径名称符合 p 的文件,ipath 会忽略大小写
    -name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
    -size n : 文件大小 是 n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组。
    -type c : 文件类型是 c 的文件。
    d: 目录
    c: 字型装置文件
    b: 区块装置文件
    p: 具名贮列
    f: 一般文件
    l: 符号连结
    s: socket
    grep
    在文件中过滤出包含指定字符串的行
    -a 或 --text : 不要忽略二进制的数据。
    -A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
    -b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
    -B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
    -c 或 --count : 计算符合样式的列数。
    -C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
    -d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
    -e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
    -E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。
    -f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
    -F 或 --fixed-regexp : 将样式视为固定字符串的列表。
    -G 或 --basic-regexp : 将样式视为普通的表示法来使用。
    -h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
    -H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
    -i 或 --ignore-case : 忽略字符大小写的差别。
    -l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
    -L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
    -n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
    -o 或 --only-matching : 只显示匹配PATTERN 部分。
    -q 或 --quiet或–silent : 不显示任何信息。
    -r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
    -s 或 --no-messages : 不显示错误信息。
    -v 或 --revert-match : 显示不包含匹配文本的所有行。
    -V 或 --version : 显示版本信息。
    -w 或 --word-regexp : 只显示全字符合的列。
    -x --line-regexp : 只显示全列符合的列。
    -y : 此参数的效果和指定"-i"参数相同。
    管道
    A进程将执行的结果输出到管道中,B进程再将其从管道中读出来。
    将前一个命令的输出结果作为后一个命令的输入。进程间通讯的一种方式。

计算机组成与进程

  • 计算机的基本组成
    计算机组成五大部件
    (1) 运算器 :也叫算数逻辑单元,完成对数据的各种常规运算,如加减乘除,也包括逻辑运 算,移位,比较等。
    (2) 控制器 :它是整个计算机系统的控制中心,它指挥计算机各部分协调地工作,保证计算 机按照预先规定的目标和步骤有条不紊地进行操作及处理。
    (3) 存储器 :存储程序和各种数据。
    (4) 输入设备 :把人所熟悉的信息如,图片,声音,文字,转换为计算机能够识别的信息存 储起来。
    (5) 输出设备 : 把计算机机能识别的信息转换为人能识别的信息,进行呈现。 一台计算机可以抽象成下图: CPU 中包含控制器和运算器, 内存就是存储器。I/O 设 备就是输入设备和输出设备,如:键盘、显示器、鼠标、硬盘、网卡
    Linux文件管理及命令
    系统总线
    (1)数据总线:用来在各个功能部件中间传输数据,是双向传输总线
    (2) 地址总线 :用来指出数据总线上的源数据或目的数据在主存单元的地址或 io 设备的地 址。
    (3) 控制总线 :由于各个连接在数据总线和地址总线的部件都是共享这两类总线的,那么在某一时刻由谁来使用,就是控制总线负责完成的。
    指令
    (1) 指令 : 是指示计算机执行某种操作的命令。一条指令通常由两部分构成:地址码 和操 作码。
    (2) 程序 : 由一条一条的指令构成。
    (3) 指令周期 :cpu 每取出并执行一条指令所需的全部时间称为指令周期。
    (4) 指令系统 :计算机能够执行的全部指令的集合称为该计算机的指令系统。
    (5) RISC :精简指令系统计算机。
    (6) CISC :复杂指令系统计算机。
    (7) 程序与指令:高级语言 汇编助记符 机器指令
  • 进程
    进程:是资源分配的最小单位
    线程:是CPU调度的最小单位
    抽象比喻:进程是火车,线程是车厢
    PID
    PID(Process Identification)操作系统里指进程识别号,也就是进程标识符。操作系统里每打开一个程序都会创建一个进程ID,即PID。
    PID(进程控制符)英文全称为Process Identifier,它也属于电工电子类技术术语。
    PID是各进程的代号,每个进程有唯一的PID编号。它是进程运行时系统随机分配的,并不代表专门的进程。在运行时PID是不会改变标识符的,但是你终止程序后再运行PID标识符就会被系统回收,就可能会被继续分配给新运行的程序。
    PID含义
    只要运行一程序,系统会自动分配一个标识。
    是暂时唯一:进程中止后,这个号码就会被回收,并可能被分配给另一个新进程。
    只要没有成功运行其他程序,这个PID会继续分配给当前要运行的程序。
    如果成功运行一个程序,然后再运行别的程序时,系统会自动分配另一个PID。
    是暂时唯一:进程中止后,这个号码就会被回收,并可能被分配给另一个新进程。
    和用户进行交互的命令解释器。
    PCB
    进程控制块,进程的属性信息。
    在操作系统中会使用链表将PCB连接在一起,
    链表中有多少个节点,这个操作系统就有多少个进程,操作系统通过管理PCB来管理运行起来的 进程
    Linux文件管理及命令
    进程描述信息:进程标识符用于唯一的标识一个进程(pid,ppid)。
    进程控制信息
    • 进程当前状态
    • 进程优先级
    • 程序开始地址
    • 各种计时信息
    • 通信信息
    资源信息
    • 占用内存大小及管理用数据结构指针
    • 交换区相关信息
    • I/O设备号、缓冲、设备相关的数结构
    • 文件系统相关指针
    现场保护信息(cpu进行进程切换时)
    • 寄存器
    • PC
    • 程序状态字PSW
    • 栈指针
    进程状态:就绪 、运行、阻塞
    Linux文件管理及命令
    a. ready:表示线程已经被创建,正在等待系统调度分配CPU使用权。
    b. running:表示线程获得了CPU使用权,正在进行运算
    c. waiting:表示线程等待(或者说挂起),让出CPU资源给其他线程使用
    为什么除去new和terminated状态?
    是因为这两种状态实际上并不存在于线程运行中,所以也没什么实际讨论的意义。对于Java中的线程状态无论是Timed Waiting ,Waiting还是Blocked,对应的都是操作系统线程的waiting(等待)状态。而Runnable状态,则对应了操作系统中的ready和running状态。