linux os是什么

在linux中,OS是指操作系统,是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。OS存在的原因:单纯的硬件计算机,操作起来效率特别低下,难度特别高。

linux os是什么

本教程操作环境:linux7.3系统、Dell G3电脑。

前言: OS(操作系统)的学习是很重要的,这里学习操作系统先从Linux开始。

Linux是指令操作的,距离OS更近,更便于我们掌握OS。学习C++,一般从事后端较多,并且Linux对于想要从事后端是非常重要,LInux很大概率就是工作的OS。

一.OS(操作系统)基本概念

操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。

OS存在的原因:单纯的硬件计算机,操作起来效率特别低下,难度特别高。

OS是一款软件,用来进行对软硬件资源进行管理的软件,管理目的:对上,对下,提高操作效率。

linux os是什么

现实生活中的操作系统

  • win7

  • Mac

  • Android

  • iOS

二.Linux常见指令

我们为什么要学习指令呢?

因为所有的操作系统,刚开始的时候都是支持指令操作的,图形化界面是后来才有的,所以指令执行距离OS更近,便于我们更好的掌握OS。

1.ls指令

(1)语法:ls [选项] [目录或文件] (目录或文件不写为当前目录)

(2)功能:对于目录,该命令列出该目录下的所有子目录和文件。

对于文件,将列出文件名及其他信息。

(3)常用选项

① 直接使用ls 只有子目录和文件

② -l 列出文件的详细信息(可以写成ls -l,也可以写成ll

③ -a 列出目录下的所有文件,包括以 . 开头的隐含文件

以 . 开头的文件我们称为隐藏文件,在任意目录下,都会存在两个隐藏文件

.(当前路径) ..(上级路径)

④ -i 输出文件的i节点的索引信息

⑤ -n 用数字的 UID,GID 代替名称

(4)举例

ls -al

2.pwd指令

(1)语法:pwd

(2)功能:显示用户当前所在目录

Linux的路径分割符是:/(斜杠)

Window的路径分割符是:(反斜杠)

(3)举例

pwd

3.cd指令

我们一般定位某个文件,是通过路径定位的方式,找到文件的。那为什么我们是通过路径的方式定位文件的呢?

Linux的目录结构本质是一颗多叉树(1. 每一个子节点既可以是一个目录(再放目录或者普通文件,递归式的定义),也可以是一个普通文件 2. 这颗多叉树的叶子节点,一定是一个普通文件或者空目录)

因此任何一个节点,可以有多个子节点,但是任何一个子节点,都只有一个父节点。

所以常规的路径定位是具有唯一性的(绝对路径具有唯一性

除了相对路径,还有绝对路径(相对于当前所处的路径)

如果是日常使用,推荐相对路径 —— 简单

如果是添加配置文件之类,推荐绝对路径 —— 不会出错

(1)语法:cd [目录名]

(2)功能:改变工作目录,将当前工作目录改变到指定的目录下。(进入输入的目录)

(3)常用选项

① cd .. 返回上级目录(.为当前目录,..为上级目录)

② cd 绝对路径

③ cd 相对路径

④ cd – 返回最近访问目录

⑤ cd ~ 进入用户家目录(/home/hb)

(4)举例

cd .. :返回上级目录

cd /home/hb/code :绝对路径

cd ../test :相对路径

cd – :返回最近访问目录

cd ~ :进入用户家目录

4.touch指令

如果我们创建了一个空文件,在磁盘中会占据空间吗?

要占用 文件有属性数据,也是数据

文件 = 文件内容 + 文件属性

我们要学的所有的文件操作无非两类:

①对文件的内容操作

②对文件的属性操作

(1)语法:touch [选项] [文件]

(2)功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件,

(3)常用选项

① 直接使用touch 创建一个文件

(4)举例

touch test.c

5.mkdir指令

(1)语法:mkdir [选项] [目录名字]

(2)功能:在当前目录下创建一个目录

(3)常用选项

-p [路径名称] 可以是一个路径名称,此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录

(4)举例

mkdir dir :创建一个目录

mkdir -p dir1/dir2/dir3 :递归建立多个目录

6.rmdir指令 && rm指令

rmdir是一个于mkdir相对于的指令,mkdir是建立目录,而rmdir是删除目录

Ⅰ. rmdir:

(1)语法:rmdir [选项] [目录名字]

(2)功能:删除空目录

(3)常用选项

① -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除

(4)举例

rmdir dir

rmdir -p dir

Ⅱ. rm(一般这个用的较多)

(1)语法:rm [选项] [目录名字]

(2)功能:删除文件或目录

(3)常用选项

① 直接使用rm 删除一个文件或目录(文件都可以删除,但只能删除空目录)

② -r 删除目录及其下的所有文件(可以删除非空目录)

③ -f 强制删除文件,即使文件属性为只读(即写保护)

④ -i 删除前逐一询问确认

(4)举例

rm dir :删除目录

rm test :删除文件

rm -r dir :删除目录下所有文件

rm -rf dir :强制删除目录下所有文件

rm -ir dir :删除目录下所有文件时依次询问

* 通配符:匹配当前目录下的任何内容

rm * :删除当前目录下的所有文件(等价于rm ./*)

./ 当前目录:告知系统,要访问的资源在当前目录下,如果省略,部分情况下,默认就是当前目录

7.man指令

(1)语法:man [选项] 命令

(2)功能:man相当于一个联机手册,Linux的命令有很多参数,我们不可能全都记住,这时候就可以使用man来获取帮助。

(3)常用选项

① -k 根据关键字搜索联机帮助

② man man 可以搜索man的相关操作

③ 数字 输入对应的数字,会去查找不同的命令

man手册:

1 是普通的命令

2 是系统调用,如open(通过这个可以很方便的查到如何调用这个函数,以及需要加说明头文件)

3 是库函数,如printf

4 是特殊文件,也就是/dev下的各种设备文件

5 是指文件的格式,比如password,就会说明这个文件中各个字段的函数

6 是给游戏留的,由各个游戏自己定义

7 是附件和一些变量,比如像environ这种全局变量在这里就由有说明

8 是系统管理用的命令,这些命令只能由root使用,如ifconfigman相当于一个联机手册,Linux的命令有很多参数,我们不可能全都记住,这时候就可以使用man来获取帮助。

(4)举例

man 1 ls

man 3 printf

8.cp指令

(1)语法:cp [选项] 源文件或目录 目标文件或目录

(2)功能:复制文件或目录

(3)常用选项

① 直接使用cp 复制一个文件

② -r 递归处理,将指定目录下的文件和子目录一并复制

③ -f 强制复制文件或目录,不论目的文件或目录是否已经存在

④ -i 覆盖之前先询问

(4)举例

cp file.txt file2.txt

cp -r dir1 dir2

cp -rf dir ..

9.mv指令

mv命令是move的缩写,可以用来移动文件或者将文件改名,经常用来备份文件或者目录。

(1)语法:mv [选项] 源文件或目录 目标文件或目录

(2)功能

根据mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。

①当第二个参数类型是源文件(源目录)时,mv命令完成文件重命名,此时,源文件只能有一个,它将所给的源文件或目录重命名为给定的目标文件名

②当第二个参数类型是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中

(3)常用选项

① 直接使用mv 移动或重命名一个文件或目录

② -f 如果目标文件已经存在,不会询问直接覆盖

③ -i 若目标文件已经存在时,会询问是否覆盖

(4)举例

mv file.txt a.txt

mv file.txt ..

mv dir1 dir2 dir

10.cat指令

(1)语法:cat [选项] [文件]

(2)功能:查看目标文件的内容

(3)常用选项

① -n 输出行编号

(4)举例

cat file.txt

cat -n file.txt

除了cat,还有tac,从后往前查看

tac file.txt

重定向:

这里先介绍一个echo,类似于printf,输出信息到显示器上

例如:echo "hello world"

(1)输出重定向

创建一个文件touch file.txt,然后可以通过echo "hello world" > file.txt,使本来应该写入到显示器的内容,把它写入到文件中(每次都会情况原始文件的内容,进行重新写入)

(2)追加重定向

echo "hello Linux" >> file.txt,类似上面的输出重定向,但是这里是两个>,并且它不会清空原始内容,而是在原始文件的结尾进行新增式的写入

(3)输入重定向

cat < file.txt,输入重定向是把本来应该从键盘文件中读取数据的方式,改成从指定的文件中读取

11.more指令

(1)语法:more [选项] [文件]

(2)功能:功能类似cat,但是可以手动向下翻

(3)常用选项

① -n 输出行编号

② q 退出more

(4)举例

more file.txt

12.less指令

(1)语法:less [选项] 文件

(2)功能:类似cat和more,但是功能更强大,可以向上和向下翻(一般都使用less)

(3)常用选项

① -n 输出行编号

② q 退出less

(4)举例

less file.txt

13.head指令

(1)语法:head [选项] [文件]

(2)功能:显示文件开头(默认显示开头10行)

(3)常用选项

① -n<行数> 想要显示的行数

(4)举例

head -20 file.txt

14.tail指令

(1)语法:rm [选项] [文件]

(2)功能:显示末尾开头(默认显示末尾10行)

(3)常用选项

① -n<行数> 想要显示的行数

(4)举例

tail -20 file.txt

管道:

如果我们想要查看文件的中间部分,比如一个1万行的文本,我们想要查看[5000, 5030]行的信息,我们怎么办呢?

①创建临时文件

通过head -5030 file.txt > temp.txt,先得到一个临时文件,然后在tail -30 temp.txt,我们才能看到[5000, 5030]中的信息了。

比较复杂。

②管道

管道是用来级联多个命令,来完成流水线式的数据处理工作的。(可以传输数据资源)

| 这个就是管道

这么写 head -5030 file.txt | tail -30 就可以通过管道来完成查看了。

15.date指令(时间相关指令)

(1)语法:date [选项] [格式]

(2)功能:指定格式显示时间或者显示时间戳

(3)常用选项

① 在显示上,使用者可以设定想要显示出的格式,格式设定为一个+后接标记,其中常用的标记列表如下:

%H:小时

%M:分钟

%S:秒

%X:相当于%H:%M:%S

%d:日

%m:月份

%Y:年份

%F:相当于%Y-%m-%d

② 时间戳

时间->时间戳 date+%s

时间戳->时间 date -d@时间戳

时间戳是从1970年1月1日开始所经过的秒数,不考虑闰秒

(4)举例

date +%Y-%m-%d_%H:%M:%S

date +%s

16.cal指令

(1)语法:cl [选项] [年份]

(2)功能:显示日历

(3)常用选项

① 直接使用就是当前月份

② -3 显示前一个月,当前月,下一个月的月历

③ -y 显示当前年份的年历

(4)举例

cal -3

cal -y 2020

17.find指令

find命令在目录结构中搜索文件,并执行指定的操作

Linux下find命令提供了相当多的查找条件,功能很强大。由于find具有强大的功能,因次它的选项也很多。

(1)语法:find [查找位置] [选项] [查找]

(2)功能:用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)

(3)常用选项

① -name 按照文件名查找文件

(4)举例

find /usr/include/ -name stdio.h

18.grep指令

(1)语法:grep [选项] 搜寻的字符串 文件

(2)功能:在文件中搜索字符串,将找到的行打印出来(使用正则表达式搜索

(3)常用选项

① 直接使用grep,打印出带有想要字符串的行

② -i 忽略大小写的不同,将大小写视为相同

③ -n 输出行号

④ -v 反向打印,打印出没有想要搜寻的字符串的那些行

(4)举例

grep 'hello' file.txt

grep -i 'HeLlo' file.txt

grep -iv 'HeLlo' file.txt

19.zip/unzip指令

1.zip:

(1)语法:zip 定义压缩文件名.zip [目录或文件]

(2)功能:将目录或文件压缩成zip格式

(3)常用选项

① 直接使用zip 压缩一个文件

② -r 可压缩一个目录下的所有文件

(4)举例

zip test.zip package

zip -r test.zip tar_package

zip -r test.zip -d tar_package

2.unzip

(1)语法:unzip 压缩文件

(2)功能:解压缩

(3)常用选项

① 直接使用unzip 解压缩

② -d 指定压缩到哪一个路径下

(4)举例

unzip test.zip

unzip test.zip -d /home

20.tar指令

(1)语法:tar [选项] [文件或目录]

(2)功能压缩文件或解压缩

(3)常用选项

① -c 建立一个压缩文件

② -z 判断是否具有gzip的属性,是否需要用gzip压缩

③ -f 使用档名,在f之后要立即接档名,不能再加参数

④ -x 解开一个压缩文件

⑤ -t 查看压缩包里面的文件

⑥ -v 压缩的过程中显示文件

⑦ -C 解压到指定目录下

(4)举例

tar czf test.tgz tar_package // 压缩文件

tar xzf test.tgz // 解压缩

tar xzf test.tgz -C /home // 解压缩到指定目录

tar xzvf test.tgz 解压缩过程显示文件

21.bc指令

(1)语法:bc [数字][符号][数字]

(2)功能:计算器

(3)常用选项

① 直接使用bc 计算

(4)举例

bc 1+2

22.uname指令

(1)语法:uname [选项]

(2)功能:用来获取电脑和操作系统的相关信息(可用来显示linux主机所用的操作系统的版本、硬件名称等基本信息)

(3)常用选项

① -r 显示内核版本

② -a 详细输出所有信息,依次为内核名称、主机名、内核版本号、内核版本、硬件名、处理器类型、硬件平台类型、操作系统名称

(4)举例

uname -r

uname -a

23.热键

Tab:命令自动补齐

Ctrl+c:终止失控程序

Ctrl+d:快速退出账户

Ctrl+r:搜索历史命令

24.关机指令

(1)语法:shutdown [选项]

(2)功能:关机

(3)常用选项

① -h 将系统的服务停掉后,立即关机

② -r 在将系统的服务停掉之后就重重新启动

③ -t 在-t后加秒数,表示过多少秒关机

(4)举例

shutdown -h

三.shell命令及运行原理

1.介绍

Linux严格意义上说的是一个操作系统,我们称之为”核心(kernel)“,但是一般用户不能直接使用kernel,而是通过kernel的”外壳“程序,也就是shell,来与kernel沟通。(shell是一种外壳程序)

2.作用

外壳可以保护OS系统,降低操作OS的成本,

shell外壳:传递用户指令,交给OS,OS执行完毕,结果交给shell,shell再交给用户。

从技术角度,Shell的简单定义:命令行解释器包含:

①将使用者的命令翻译给kernel处理

②同时,将核心的处理结果翻译给使用者

Linux中,外壳就是命令行解释器。

Window中,外壳就是图形化界面

在centos 7中常用的命令行解释器(shell),叫做bash

四.Linux权限概念

Linux下有两种用户:①超级用户(root)②普通用户

①超级用户:可以在Linux系统下做任何事情,不受限制

②普通用户:在Linux下做有限的事情

③超级用户的命令提示符是"#",普通用户的命令提示符是"$"

命令:su [用户名]

功能:切换用户

从普通用户切换到root用户,使用su root或su – ,从root用户切换到普通用户user,使用su user

举例:

su - su user
登录后复制

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发