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 查看文件内容
合并文件
往文件中写入数据, Ctrl+d 是结束输入
more 当一个文件的内容超过一个屏幕能显示的行数,使用 more 可以分屏显示文件内容。
使用方式: more filename
less 文本内容查看器,查看文件内容,但是文件内容不会显示到界面上
head 显示文件前 n 行的内容
tail 显示文件后 n 行的内容 -
数据统计
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小技巧
定位命令
删除命令
复制粘贴命令
替换和取消命令
最后+g 替换的时候不询问 +c 替换的时候询问
保存或退出命令
恢复上一次撤销操作:ctrl + r
导入另外一个文件的内容:esc :r 文件名
vim中的快捷键
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 设 备就是输入设备和输出设备,如:键盘、显示器、鼠标、硬盘、网卡
系统总线
(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来管理运行起来的 进程
进程描述信息:进程标识符用于唯一的标识一个进程(pid,ppid)。
进程控制信息:
• 进程当前状态
• 进程优先级
• 程序开始地址
• 各种计时信息
• 通信信息
资源信息:
• 占用内存大小及管理用数据结构指针
• 交换区相关信息
• I/O设备号、缓冲、设备相关的数结构
• 文件系统相关指针
现场保护信息(cpu进行进程切换时):
• 寄存器
• PC
• 程序状态字PSW
• 栈指针
进程状态:就绪 、运行、阻塞
a. ready:表示线程已经被创建,正在等待系统调度分配CPU使用权。
b. running:表示线程获得了CPU使用权,正在进行运算
c. waiting:表示线程等待(或者说挂起),让出CPU资源给其他线程使用
为什么除去new和terminated状态?
是因为这两种状态实际上并不存在于线程运行中,所以也没什么实际讨论的意义。对于Java中的线程状态无论是Timed Waiting ,Waiting还是Blocked,对应的都是操作系统线程的waiting(等待)状态。而Runnable状态,则对应了操作系统中的ready和running状态。