zl程序教程

您现在的位置是:首页 >  系统

当前栏目

linux复习 --个人快速复习&乱写

Linuxamp 快速 -- 个人 复习
2023-09-11 14:18:49 时间

文章目录

1.系统概述

1.1.1计算机组成-硬件

计算机体系结构沿用Von Neumann(冯 诺依曼)体系结构

现代计算机硬件系统由于 cpu 内存,若干i/o设备组成,从功能上由五大功能部件组成:运算器,控制器,存储器,输入设备,输出设备

1.CPU:
从内存(或高速缓存)中取出指令并执行,基本工作过程:提取指令,译码分析,执行指令.
2.存储器:
高速缓存,内存,磁盘,光盘等.
CPU可以直接存取高速缓存和内存中的程序或数据.
现在磁盘一般专指硬磁盘,存取速度低于内存,价格便宜.
3.I/O设备:
控制器是I/O设备的电子部分,通常是主板上的一块或一组芯片,接受来自操作系统的命令然后执行,实际控制设备的动作,本身捕鱼OS打交道,
种类多:键盘鼠标,打印机,显示器,绘图仪,存储设备-磁盘,光盘,U盘.

1.1.2 软件

程序定义:
程序是计算机完成一项任务的指令的集合.
数据::
数据是由程序使用或生成的不同类型的信息.

1.系统软件

包括;操作系统,编译程序,汇编程序,链接装配程序,数据库管理系统,这些软件对计算机系统的资源进行控制管理,为用户运行的程序提公共服务.

2.支撑软件

是辅助软件技术人员从事软件开发工作的软件,包括各种开发工具,测试工具,又成为工具软件.

3.应用软件

是为解决某一类应用需要或某个特定问题而设计的程序,与系统软件恰好相反,不同的应用软件根据用户所服务的领域提供不同的功能.

1.2操作系统概述

什么是操作系统?

操作系统是控制和管理计算机系统各种硬件和软件资源,有效地组织多到程序运行的系统软件(或程集合),是用户和计算机之间的接口.

1.操作系统是软件,而且是系统软件
2.基本只能是控制和管理系统内的各种资源,有效组织多道程序的运行

操作系统的功能?

1.存储管理

程序->内存

1.内存分配
2.地址映射

逻辑地址->物理地址

3.内存保护

内存保护机制:两个界限寄存器寄存器->分别存放在正在执行的程序在内存中的{上界地址值,下界地址值}
每次访问时候都做地址合法性检查

4.内存扩充

虚拟存储技术:程序部分装入内存时->启动并执行,根据执行时候的要求和内存使用情况,随机地将所需要部分调入内存,必要时把已分出去的内存回收,供其他程序使用

2.进程和处理机管理

1.作业和进程调度

1)作业和进程调度
分配和运行处理机的基本单位.

2)进程控制
程序中活动的实体.
创建,撤销,封锁,唤醒进程等.

3)进程通信
多进程在互动中很可能相互依赖或者约束.
为进程都能正常活动,必须设置进程同步机制->{同步,互斥}

3.文件管理

1)文件存储空间的管理
2)文件操作的一般管理
3)目录管理
4)文件读取管理和存取控制

4.设备管理

1)缓冲区管理
CPU Speed -> I/O Speed,need Buffer
2)设备分配
3)设备驱动
4)设备无关性
写的程序和实际物理设备无关,OS把逻辑设备映射到物理地址

5.用户接口

1)GUI
2)GLI
3)Programe API

1.2.3操作系统的类型

批处理

分时

实时

网络操作系统

分布式操作系统

1.3Linux历史和现状

1.3.2 linux应用 ->桌面,云,服务器,嵌入式,移动端

1.4linux的特点

1.UNIX兼容

2.open source

3.性能高,安全强

4.便于二次开发

5.互操作性好

1.5linux发展优势和存在的问题

优势

1.openSource
2.世界各国政府支持
3.全球个大硬件公司支持
4.价格优势
5.安全性

不足

多数人认为制约Linux发展的不利因素主要是:
没有特定的支持厂商,不像Windows系统有微软公司专门运营开发并进行版本更新;
使用不方便,命令行方式难学难记;
图形界面不如Windows7或Windows10等产品那样靓丽舒适;
应用软件少,特别是游戏软件不如Windows丰富多彩等等。
huawei
上述问题正在得到解决

1.6 Linux常用版本

1.内核->a.b.c a(major) b(minor) c(patchlevel)
2.发行版 略

思考题

1.OS由那两部分组成?什么关系?

1.硬件,软件
2.software based on the hardware,SW可以对HW管理和功能扩展

2.什么是软件?软件几大类?LINUX,flash,oracle,抓图,SKYPE各属于哪类软件?

1.是相对于hardware而言的,是与数据处理系统操作有关的计算机程序和相关数据等的总称.
2.linux oracle系统软件,flash,抓图,skype 应用软件.

操作系统的主要功能是什么?主要有哪些类型?

1.存储管理,进程和处理机管理,文件管理,设备管理,用户接口.
2.批处理,分时,分时,网络操作,分布式

下列那些事开源软件 win10 redhat ie unix?

redhat unix

Linux系统有什么显著特征?主要应用领域?

1,显著特征

1.UNIX兼容

2.open source

3.性能高,安全强

4.便于二次开发

5.互操作性好

2.桌面,云,服务器,嵌入式,移动端

Linux迅速发展的优势是什么?

1.openSource
2.世界各国政府支持
3.全球个大硬件公司支持
4.价格优势
5.安全性

LInux kernel version and release version 有什么不同?

一个是内核,一个是发行版

win一统天下会出现什么后果,为什么?

垄断导致用户体验下降,多样性下降,收费上涨.
为什么?你该去问经济学家和向往自由的黑客.

学习,应用.开发.linux的必要性是什么?

openSource
National Information Security
Autonomous and independent

贴一个Richard Mstallman个人网站的MS作恶

Reasons not to use Microsoft
Amazon, Google parent Alphabet and Microsoft are being sued over imagesused to train their facial recognition technologies. Microsoft
is running a patent protection racket, threatening to sue users of
free software. Microsoft’s principal wrong is distributing a nonfree
operating system, Microsoft Windows. That system is jam-packed with
malicious functionalities, including surveillance of users, DRM,
censorship and a universal back door. Microsoft tricked users into
“upgrading” to Windows 10. Microsoft Windows 10 forced software
changes can sabotage the user terribly if Microsoft chooses an
inconvenient time to do them. Since the article is in the mainstream
media, it suggests only to buy another computer that serves a master
that doesn’t do this particular form of nastiness. It completely
ignores the possibility of installing a free operating system in the
PC—which doesn’t even require buying a new computer. The only kind of
account that Windows 10 Home allows a new user to create nowadays is
one that is linked to Microsoft’s servers. Snooping on users is now an
inherent functionality of Windows 10. The article describes an
undocumented way to avoid linking with a server account, but the
existence of that is no excuse.

Microsoft tablets and phones impose censorship of applications.
Microsoft’s chatbot in China threatens people who communicate using
prohibited words. Microsoft recorded users of Xboxes and had human
workers listen to the recordings.

Morally I see no difference between having human workers listen and
having speech-recognition systems listen. Both intrude on privacy.

Microsoft forced a ridiculous “open” standard, OOXML (used in DOCX
files), through the International Standards Organization by corrupting
most of the national standards organizations that voted. The
specifications document was so long that it would be difficult for
anyone else to implement it properly. When the proposed standard was
submitted through the usual track, experienced evaluators rejected it
for many good reasons. Microsoft responded using a special override
procedure in which its money buy the support of many of the voting
countries, thus bypassing proper evaluation and demonstrating that ISO
can be bought. Microsoft pressured nearly all manufacturers of PCs to
pay for a Windows license for every machine sold, thus charging every
purchaser for a Windows license. This is referred to sardonically as
the “Microsoft tax”. (Wherever that page says “Linux” it actually
means the GNU/Linux operating system rather than Linux proper.) The
fee doesn’t force you to run Windows on your PC, but it is an
injustice nonetheless. One way to avoid it is to buy hardware that is
never sold with Windows. Some countries have laws under which users
have sued for the right to get a reimbursement for the Windows
license. Exercising that right is a hassle, but doing so is useful as
it puts pressure on the system Microsoft has set up. However, the
existence of an inconvenient escape path, limited to a few countries,
has no effect on the judgment that Microsoft’s practices are an
injustice and deserve condemnation.

Common command line and file operations

1.who命令

列出所有正在使用系统的用户、所用终端名和注册到系统的时间。

$ who

mengqc :0  2016-03-28 07:52(只有一个用户mengqc登录进入系统)

2.echo word 打印word

3.clear 清楚

6.passwd 改密码

7.ls 打印目录树 ls path 打印path目录数

8.pwd print 当前目录

9.su 更改用户身份

  1. su命令
    su命令可以更改用户的身份,如从超级用户root改到普通用户mengqc:

su mengqc
$ ▍(提示符变为"$ ",表明现在是普通用户身份了)
$ su(再改回到超级用户)
密码:▍(输入超级用户root的密码,不显示输入的字符)
▍(输入密码后,系统进行认证、处理,无误后,显示提示符“# ”)

command line format

命令名 [选项] [参数]
1.小写
2.空格
3.选项参数是可选
4.选项是对命令的特别定义,执行某个功能
5.参数给信息
6.如果没有参数也有尽可能键盘read参数
7.command line 正常返回一个0 表示为真
8.man显示帮助

在PS1中常用的转义字符及其含义如下:

\d 以“星期月日”形式表示的日期,如Mon Dec 1。
\h 主机名,直至第一个“.”为止。
\H 主机名。
\s 所用shell名称。
\t 按24小时制(即小时:分:秒)形式表示的当前时间。
\T 按12小时制(即小时:分:秒)形式表示的当前时间。
@ 按12小时制am/pm 形式表示的当前时间。
\u 当前用户的用户名。
\v bash的版本号。
\w 当前的工作目录。
$ 如果有效的UID(用户标识)为0,那么它就是一个“#”;否则,就是一个“$”。

command line normal format

1.文件

文件(File)是被命名的相关信息的集合体。
通常存放在外存(如磁盘、磁带)上,可以作为一个独立单位存放和实施相应的操作(如打开、关闭、读、写等)。
文件表示的对象相当广泛。

2.文件的成分

▲索引节点,又称I节点。系统利用其中的信息对相应文件实施控制和管理。
这些信息包括文件权限、文件主、文件大小、存放位置、建立日期等。
▲数据:文件的实际内容,它可以是空的,也可以非常大,并且有自己的结构。

File

file命令对每个参数FILE进行检查,并予以分类。
一般格式: file [选项]… FILE

who

-b --boot
-H --heading
-m 输入相关的主机名和用户
-q --count
-t --time

echo

-n 不换行 --help 显示帮助信息并退出

cat

查看少量信息

less

向上 向下

head 开头几行

4.head命令
在屏幕上显示指定文件的开头若干行。显示行数的默认值是10。
一般格式: head [选项]… [文件]…
$ head -5 mfile (显示文件mfile的前5行)
$ head --bytes=-100 mfile (显示文件mfile除最后100个字节之外的所有内容。注意:“=”与“-”之间没有空格。)
$ head -v mfile (显示文件mfile的内容,并且给出文件名标题)
$ head -q mfile (显示文件mfile的内容,但不列出文件名标题)

tail 显示最后几行

tail命令在屏幕上显示指定文件FILE的末尾10行。
一般格式:tail [选项]… [FILE]…
$ tail mfile (显示文件mfile的最后10行)
$ tail -n +20 mfile (显示文件mfile的内容,从第20行至文件末尾)
$ tail -c 10 mfile (显示文件mfile的最后10个字符)

touch 创建空白文件

可以修改指定文件的时间标签或者创建一个空文件。
一般格式:touch [选项]… FILE…
$ touch ex2 (在当前目录下建立一个空文件ex2)
$ touch –m mfile (将文件mfile的修改时间改为系统当前时间)

file 可以确定文件类型

-b --brief 在输出行前不加文件名
-r --raw 对不可打印的自负不以八进制形式\000输出,一般情况下,对不可打印的字符以八进制形式输出

匹配 排序 显示指定内容

grep 匹配 搜索一个指定的模式

egrep == grep -E 可以使用扩展的字符串模式进行搜索
fgrep == grep -F 是快速搜索命令 检索固定字符串 但不识别正则表达式

grep 选项 模式 文件

选项;
-E 将模式解释为扩展的正则表达式
-F 将模式解释为一系列以换行符分开的单纯的字符串,其中任何一个都可以匹配
-b --byte-offset
-c --count 显示文件中匹配字符串的行的总数
-f File --file=FILE 从文件FILE中获取模式,每行一个,空行不匹配
-I --ignore-case 匹配比较时不去分字母的大小写
-R -r --recursive 递归查询

比较文件内容的命令

comm 选项 file1 file2

两个已排序文件进行比较

-1 不输出仅在文件1出现的行
-2不输出仅在文件2出现的航
-3不输出尽在两个文件中都存在的行

2.diff命令

该命令逐行比较两个文件,列出它们的不同之处,并且告诉用户,为了使两个文件一致,需要修改它们的哪些行。
一般格式: diff [选项] 文件1 文件2
该命令输出的一般形式如下:
n1 a n3,n4 (把文件1的n1行附加到文件2的n3~n4行后,则二者相同)
n1,n2 d n3 (删除文件1的n1~n2行及文件2的n3行,则二者相同)
n1,n2 c n3,n4 (把文件1的n1~n2行改为文件2的n3~n4行,则二者相同)

字母(a,d和c)之前的行号(n1,n2)是针对文件1的,其后面的行号(n3,n4)是针对文件2的。
字母a表示附加,字母d表示删除,字母c表示修改。

复制\删除\移动-文件

1.cp命令

如果源文件是普通文件,则该命令把它复制到指定的目标文件中;如果是目录,就需要使用“-r”选项,将整个目录下所有的文件和子目录都复制到目标位置。
一般格式: cp [选项]… 源文件或目录 目标文件或目录
$ cp mfile /home/mengqc/exam1
将文件mfile复制到目录/home/mengqc下,并改名为exam1
$ cp -r /home/mengqc /home/liuzh
将目录/home/mengqc下的所有文件及其子目录复制到目录/home/liuzh中
$ cp -i /home/mengqc/m*.c /home/liuzh
交互式地将目录/home/mengqc中以m打头的所有.c文件复制到/home/liuzh中
$ cp …/mary/Homework/assign .
将指定文件复制到当前目录下

常用选项
-a  该选项通常在复制目录时使用。它递归地将源目录下的所有子目录及其文件都复制到目标目录中,并且保留文件链接和文件属性不变。
-f,–force 如果现存的目标文件不能打开,则强行删除而不加提示。
-i,–interactive 与-f选项不同,它在覆盖目标文件之前先给出提示,要求用户予以确认。回答y,将覆盖目标文件。这是交互式复制。
-p 除复制源文件的内容外,还将其修改时间和存取权限也复制到新文件中。
-R,-r 递归复制目录,即将源目录下的所有文件及其各级子目录都复制到目标位置。
-l 不复制,而是创建指向源文件的链接文件,链接文件名由目标文件给出。

cp命令复制一个文件,而原文件保持不变!

rm 删除
-f --force
-r -R --recursive 递归
-i --interactive

2.rm命令
该命令可以删除每个指定的文件,默认情况下,它不能删除目录。
一般格式: rm [选项]… 文件…
注意:使用rm命令要格外小心。因为一旦删除了一个文件,就无法再恢复它。所以,在删除文件之前,最好看一下文件的内容,确定是否真要删除。
$ rm -i test example
rm: 是否删除一般文件‘test’?n (不删除文件test)
rm: 是否删除一般文件‘example’?y (删除文件example)
$ rm -r * (删除当前目录下除隐含文件外的所有文件和子目录。危险!)
常用选项
-f,–force    忽略不存在的文件,并且不给出提示信息。
-r,-R,–recursive 递归地删除指定目录及其下属的各级子目录和相应的文件。
-i  交互式地删除文件。

mv [选项] SOURCE DEST
移动或重命名
-i --interacive
-f 禁止交互式
-t --target-directory

3.mv命令
mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。
一般格式: mv [选项]… SOURCE DEST
$ mv ex3 new1 (将文件ex3改名为new1)
$ mv /home/mengqc/* .
将目录/home/mengqc中的所有文件移到当前目录(用“.”表示)中
源文件被移至目标文件有两种不同的结果:
(1)如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。
(2)如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖已存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。

常用选项
-i,–interactive  交互式操作。如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入y,表示将覆盖目标文件;输入n,表示取消对源文件的移动。这样可以避免误将文件覆盖。
-f 与-i相反,它禁止交互式操作。在覆盖已有的目标文件时,不给任何提示。
-t,–target-directory=DIRECTORY
把所有的源文件或目录都移到DIRECTORY 所指示的目标中。

文件内容统计

wc 统计指定文件字节数\字数\行数
-c --bytes
-l --lines
-m --chars
-w --words

wc命令用来统计指定文件的字节数、字数、行数,并将统计结果显示出来。
一般格式: wc [选项]… [文件]…
输出格式:行数 字数 字节数 文件名
$ wc mfile
20 36 409 mfile
$ wc -lcw mfile m2 (统计文件mfile 和m2的字节数、字数和行数。)
20 36 409 mfile
232 851 8865 m2
252 887 9274 总计
$ wc mfile m2 不带选项,统计文件ex1和ex2的字节数、字数和行数
常用选项
-c,–bytes 统计字节数。
-l,–lines 统计行数。
-m,–chars 统计字符数。
-w,–words 统计字数。

第三章 目录及操作

目录

在这里插入图片描述
以下是对这些目录的解释:

/bin:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

/boot:
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

/dev :
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

/etc:
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

/home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。

/lib:
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/media:
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。

/opt:
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

/proc:
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。

/sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。

/selinux:
这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

/srv:
该目录存放一些服务启动之后需要提取的数据。

/sys:

这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。

该文件系统是内核设备树的一个直观反映。

当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

/tmp:
tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。

/usr:
usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

/usr/bin:
系统用户使用的应用程序。

/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。

/usr/src:
内核源代码默认的放置目录。

/var:
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。

值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给 root 使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

用户及文件存取权限

1.owner
2.group
3.others
4.root

root 啥都行

文件权限
r --read
w --write
x --可执行或查找

权限:

  • rwx rwx rwx
  • 111 111 111

Linux数字权限解释
linux系统文件夹644、755、777权限设置详解 ,左至右,第一位数字代表文件所有者的权限,第二位数字代表同组用户的权限,第三位数字代表其他用户的权限。

而具体的权限是由数字来表示的,读取的权限等于4,用r表示;写入的权限等于2,用w表示;执行的权限等于1,用x表示;

通过4、2、1的组合,得到以下几种权限:0(没有权限);4(读取权限);5(4+1 | 读取+执行);6(4+2 | 读取+写入);7(4+2+1 | 读取+写入+执行)

以755为例:

第一位7等于4+2+1,rwx,所有者具有读取、写入、执行权限;

第二位5等于4+1+0,r-x,同组用户具有读取、执行权限但没有写入权限;

第三位5,同上,也是r-x,其他用户具有读取、执行权限但没有写入权限。

下面列出常用的linux文件权限:

444 r–r–r–
600 rw——-
644 rw-r–r–
666 rw-rw-rw-
700 rwx——
744 rwxr–r–
755 rwxr-xr-x
777 rwxrwxrwx

常用目录操作命令

mkdir
-m --mode=MODE 存储权限设置为MODE,存取权限用给定的八进制数字表示
-p --parents 可一次建立多个目录

rmdir 删除空目录
-p --parents 递归删除父
-v --verbose 对每个被处理的目录输出相关诊断信息

cd
cd …/,

pwd

ls
-a --all
-A --almost-all 不列出.和…的目录
-b --escape 当文件夹包含不可显示的字符时,泽用\ddd显示该字符
-c 按照文件的修改时间排序
-C 分成多列显示

ln 连接
-f --force 删除已有的目的地文件
-i --interactive
-s --symbolic 建立符号链接
-v --verbose 显示被链接文件的名字

改变文件或目录存取权限

chmod [选项] MODE,[MODE] 文件

u --onwer 与文件所有者有一样的权限
-g --group
-o --other

chmod [选项] OCTAL-MODE 文件

umask [-p] [-s] [mode]
用来设置限制新建文件权限的掩码

-P 如果省略了mode,则以数字形式输出掩码的当前值
-S 以符号形式显示掩码,默认掩码输出形式为八进制

chgrp --changeGroup 改变文件或目录所属的用户组

第四章

1.程序并发执行的特征

① 失去封闭性。
并发执行的多个程序共享系统中的资源,因而这些资源的使用状态不再仅由某个程序所决定,而是受到并发程序的共同影响。
② 程序与计算不再一 一对应。
“程序”是指令的有序集合,是“静态”概念;而“计算”是指令序列在处理机上的执行过程,是“动态”概念。
③ 并发程序在执行期间相互制约。
并发程序的执行过程不再像单道程序系统那样总是顺序连贯的,而具有“执行—暂停—执行”的活动规律,各程序活动的工作状态与所处的系统环境密切相关。

进程概念

1.进程定义

由于多道程序并发执行时共享系统资源,共同决定这些资源的状态,因此系统中各程序在执行过程中就出现了相互制约的新关系,程序的执行出现“走走停停”的新状态。
用程序这个静态概念已不能如实反映程序并发执行过程中的这些特征。
进程(或任务)是在60年代中期由美国麻省理工学院(MIT)J.H.Saltzer首先提出的,并在所研制的MULTICS系统上实现。IBM公司把进程叫做任务(task),它在TSS/360系统中实现了。

进程定义:程序在并发环境中的执行过程。

“进程”是操作系统的最基本、最重要的概念之一。
进程最根本的属性是动态性和并发性。

2.进程的基本特征

①动态性
进程是程序的执行过程,它有生有亡,有活动有停顿。可以处于不同的状态。
②并发性
多个进程的实体能存在于同一内存中,在一段时间内都得到运行。
③调度性
进程是系统中申请资源的单位,也是被调度的单位。
④异步性
各进程向前推进的速度是不可预知的,即异步方式运行。
⑤结构性
进程有一定的结构,它由程序段、数据段和控制结构(如进程控制块)等组成。

▲在很多系统中,又增加了两种基本进程状态,即新建状态和终止状态。

在这里插入图片描述

PS

ps命令是查看进程状态的最常用的命令,它可以提供关于进程的许多信息。
一般格式: ps [选项]
示例:
①直接用ps命令可以列出每个与你的当前shell有关的进程的基本信息:

kill

1. kill命令
kill命令通过向进程发送指定的信号用来终止一个进程的运行。
一般格式:
kill [-s 信号|-p ] [-a] pid…
kill -l [信号]
▲kill命令是通过向进程发送指定的信号来结束相应进程(pid)的。在默认情况下,采用编号为15的TERM信号。用编号为9的KILL信号,可以强行“杀掉”该进程。
▲示例:
$ find / -name core -print > /dev/null 2>&1&
这是一条后台命令,执行时间较长。现在决定终止该进程。
运行ps命令来查看该进程对应的PID。例如,该进程对应的PID是1651。
$ kill 1651
再用ps命令查看进程状态时,就可以看到,find进程已经不存在了。

df

1.df命令
命令df可以报告文件系统中未用磁盘空间的情况。按照默认,磁盘盘块以1k字节为单位。
一般格式: df [选项]… [FILE]…
示例:

du

2.du命令
命令du统计出每个目录占用磁盘空间的情况。该命令可以逐级进入每一个子目录并显示该目录的磁盘利用情况。
一般格式: du [选项]…[目录名]…

gzip

1.gzip命令
gzip命令用来对文件进行压缩和解压缩。
一般格式: gzip [选项] [name…]
常用选项
-c,–stdout,–to-stdout    将输出写到标准输出上,并保留原有文件。
-d,–decompress,–uncompress 将被压缩的文件进行解压缩。
-l,–list  对每个压缩文件,列出以下字段:
  compressedsize:压缩文件的大小
  uncompressedsize:未压缩文件的大小
  ratio:压缩比(未知时为0.0%)
  uncompressed_name:未压缩文件的名字
-r   递归地查找指定目录并压缩其中的所有文件或者是解压缩。
-t   测试,即检查压缩文件的完整性。
-v   对每个压缩文件和解压缩文件,显示其文件名和压缩比。
-num 用指定的数字num 调整压缩速度,其中-1或–fast表示最快的压缩方法(低压缩比),-9或–best表示最慢的压缩方法(高压缩比)。系统默认值为-6。

unzip

2.unzip命令
unzip命令对ZIP格式的压缩文件进行解压缩。这种格式的压缩文件带有后缀.zip。
一般格式: unzip [选项] 被压缩文件名
示例:
将压缩文件chapter1.zip在当前目录下解压缩:
$ unzip chapter1.zip
显示有关压缩文件的信息,但不作解压缩:
$ unzip -v chapter1.zip

第五章

在这里插入图片描述
i --inster 插入
a --add 末尾添加
o --otherLine 重新开启一行

5.4光标移动命令 -> l向右,j向左,k向上,j向下

如果在相应命令的前面加上一个数字n ,那么,就把光标相应移动n个字符。例如:
6l,则向右移6个字符(但不能跨行); 4h ,则向左移动4个字符 (但不能跨行);
3+,则向下移3行,光标位于行首; 6k ,则光标上移6行,列数不变。

5.移至行首

使用命令(键)^ 或0(数字0)将光标移到当前行的开头。例如:
int main ( )
{
printf ( "Hello ! \ n " ); (光标位于字母e上)
}
输入^命令,光标移至字母p;再输入0命令,光标左移至该行的第一列(空格)上。

6.移至行尾

可以使用命令(键)$将光标移至当前行的行尾,停在最后一个字符上。

7.移至指定行

可以使用命令(键)[行号]G将光标移至由行号所指定的行的开头。

8.移至指定列

可以使用命令(键)[列号]| 将光标移至当前行指定的列上。

5.5 文本修改命令 5.5.1 文本删除

1.删除字符

命令x(小写字母)删除光标所在的字符。
命令X(大写字母)删除光标前面的那个字符。

2.删除文本对象

命令dd删除光标所在的整行。
命令D从光标位置开始删除到行尾。
组合命令d+<光标移动命令>删除从光标位置开始至光标移动命令限定的位置之间的所有字符。例如:
d0 从光标位置(不包括光标位)删至行首。
d3l 从光标位置(包括光标位)向右删3个字符。
d$ 从光标位置(包括光标位)删至行尾。与D相同。
d5G 将光标所在行至第5行都删除。

5.5.2 复原命令

u 取消前面刚执行的插入或删除命令的效果,恢复到此前的情况。
U 总是把当前行恢复成它被编辑之前的状态。

5.5.3 重复命令

·(圆点)在命令方式下,重复执行前面最近一次插入命令或删除命令

5.5.4 修改命令

■命令c、C和 cc的功能是修改文本对象,即用新输入的文本代替老的文本。

1.命令c

c后面紧随光标移动命令(用来限定删除文本的范围),之后是新输入的文本,最后单击 < Esc >键。
/* thare are a C program */ (光标位于字母a上)
输入c^ 后,屏幕显示为: a C program */
接着输入“/this is ”,单击,显示为:
/
this is □ a C program */

2.命令C

C后面紧接新输入的文本,最后单击< Esc >键。它等价于:c$。
屏幕显示为: /* this are a example /
输入C,显示为: /
this □
接着输入字符串“is a program / ”,然后单击,显示为:
/
this is a program * /

3.命令cc

命令cc删除光标所在行整行(不是行的一部分),用随后输入字符串替代。其余作用与C命令相同。
屏幕显示为:
/ * this are test /
int main( )
输入cc后,显示为:

int main( )
接着输入字符串“/
this is a program / ”,并单击< Esc >键,显示为:
/
this is a program */
int main ( )

▲C和cc前面还可以加上数字——表示要修改的行数。

5.5.5 取代命令

1. 命令r(替换单个字符)

命令r用随后输入的单个字符取代光标所在的字符。
屏幕显示为:
/* this as a program / (光标在字母a)
输入命令:ri ,则显示为:
/
this is a program */

2.命令R(替换多个字符)

命令R用随后输入的文本取代光标所在字符及其右面的若干字符,每输入一个字符就替代原有的一个字符。
屏幕显示为:
/* this as a program */
main( )
输入R,接着输入“is a good example program /”,单击< Esc >键,显示为:
/
this is a good example program */
main( )

1.命令s(吞一个当前字符并向前Inster)

命令s(小写)用随后输入的的正文替换光标所在的字符。
屏幕显示为:
/* this is A example C program /
int main( )
输入s后,显示变为:
/
this is A xample C program /
int main( )
然后输入:good,并单击< Esc >键,显示为:
/
this is A goodxample C program */
int main( )

2.命令S(吞一整行并写出)

命令S(大写)用新输入的正文替换整个当前一行。
屏幕显示为:
/* this is a program /
int a ;
int main( )
输入S后,光标所在行成为空行,光标停在行的开头。接着输入:
#include < stdio.h > #include < math.h >
显示为:
/
this is a program */
#include < stdio.h >
#include < math.h >
int main( )

5.6 字符串检索

向前检索命令的基本格式是:

/模式〈Enter〉
例如: /sTudent 〈Enter〉

向后检索命令的基本格式是:

?模式 〈Enter〉
例如: ?flout 〈Enter〉