Linux操作系统


Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。

1 Linux发展史

1965左右:为了解决终端机数量不够用的问题,由贝尔实验室(隶属于美国的AT&T公司),麻省理工学院和奇异公司共同发起了multics的计划

1969年:肯.汤姆逊开发了一个小型的文件系统,使用汇编语言(Assembler)写了Unix的雏形,当时称为:Unics。在贝尔实验室里面广为流传,并经过多次改版

1973年:Unix正式发行。肯.汤姆逊和丹尼斯.里奇用C语言编写了Unix核心,1973年以后,Unix便和学术界合作开发,最重要的合作伙伴就是伯克莱大学

1977年:伯克莱大学在Unix基础上增加了很多软件和编译程序,并将其命名为BSD,BSD是Unix的重要分支,Sun公司以BSD版本为核心,发布了商业版的Unix版本

各个厂商基于Unix开发自己的系统,他们的操作系统只能在自己的硬件上面跑,不支持个人电脑。


1979年:AT&T公司推出了system V第七版的Unix,支持x86架构的个人计算机,但收回了Unix的版权。

1984年:
(1)谭宁邦编写了Minix系统,主要用在教学方面,没有去修改Bug和打补丁。当时Minix必须通过磁盘购买
(2)史托曼发起了GNU计划,目的:建立一个自由、开放的Unix操作系统。

1990年左右:史托曼编写了C语言的编译程序GNU C Compiler(GCC)。成立了自由软件基金会。

1991年:林纳斯以unix系统为参照,编写了Linux操作系统的雏形,他利用 GNU 的 bash 当做开发环境, GCC当做编译工具,编写了 Linux 内核,一开始 Linux 并不能兼容 Unix,后来经过全世界的网友的帮助,最终能够兼容

2 Linux的内核版本和发行版本

2.1 内核版本

内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。

所有来自全世界的对 Linux 源码的修改最终都会汇总到http://www.kernel.org,由 Linus 领导的开源社区对其进行甄别和修改, 最终决定是否进入到Linux主线内核源码中。

2.2 发行版本

Linux发行版(GNU/Linux发行版)通常包含了包括桌面环境、办公套件、媒体播放器、数据库等应用软件。

常见的发行版本有:CentOS, Redha,Ubuntu,Debian等。

3 Linux应用领域

Linux系统运用在服务器领域、嵌入式领域和个人桌面领域。

3.1 服务器领域

Linux系统可以为企业架构WWW服务器、数据库服务器、负载均衡服务器、邮件服务器、DNS服务器、代理服务器、路由器等,不但使企业降低了运营成本,同时还获得了Linux系统带来的高稳定性和高可靠性,且无须考虑商业软件的版权问题。

3.2 嵌入式领域

Linux运行稳定、对网络的良好支持性、低成本,且可以根据需要进行软件 裁剪,内核最小可以达到几百KB 等特点,使其近些年来在嵌入式领域的应用得到非常大的提高。
主要应用:机顶盒、数字电视、网络电话、程控交换机、手机、PDA、等都是其应用领域,得到了 Google、三星等公司的大力推广。

3.2 个人桌面领域

所谓个人桌面系统,其实就是我们在办公室使用的个人计算机系统,例如:Windows xp、windows 7、Mac等。Linux系统在这方面的支持也已经非常好了,但此领域仍是传统 Linux 应用最薄弱的环节。传统 Linux 由于界面简单、操作复杂、图形界面应用软件少的缺点,一直普及率不如服务器领域。

4 Linux系统目录结构

更详细的信息可查看:https://www.runoob.com/linux/linux-system-contents.html
在这里插入图片描述

Linux的主要目录说明<>:

目录名说明
/根目录,一般根目录下只存放目录,Linux只有一个根目录
/bin
/usr/bin
可执行二进制文件的目录,如常用命令ls、tar、cat、mv等
/boot启动Linux的核心文件
/etc系统配置文件的存放目录,如磁盘、网络、服务等
/etc/rc.d启动的配置文件和脚本
/home系统默认用户的主目录,新增用户时,所有用户的主目录都放在此目录下,比如用户user的主目录就是/home/user,可以用~user表示
~表示当前用户的主目录
/lib
usr/lib
标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件
/media媒体文件
/mnt光驱或移动设备的挂载目录
/opt安装系统后用户本身安装的其余应用软件,是一些大型软件的安装目录或一些服务程序的安装目录,默认是空的,我们安装额外软件可以放在这个里面
/proc虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息
rootroot用户的主目录
/run是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果系统上有 /var/run 目录,应该让它指向 run
/sbin
usr/sbin
系统管理命令,这里存放的是系统管理员使用的管理程序
/srv存放服务启动后需要提取的数据(不用服务器就是空)
/usr要用到的应用程序和文件几乎都在这个目录
/usr/doclinux文档
/usr/includelinux下开发和编译应用程序所需要的头文件
/usr/lib常用的动态链接库和软件包的配置文件
/usr/man帮助文档
/usr/src源代码,linux内核的源代码就放在/usr/src/linux里
/usr/local/bin本地增加的命令
/usr/local/lib本地增加的库
/dev设备特殊文件
/tmp公用的临时文件存储点
/lost+found系统非正常关机而留下“无家可归”的文件
/var某些大文件的溢出区,比方说各种服务的日志文件

5 Linux常用命令

5.1 历史命令

直接按上下光标键盘,输入的历史命令会直接出现在命令行中。使用Ctrl+c退出。

5.2 自动补全

直接按tab键。
如:命令行中输入:cd /Desk,按下tab键,自动补全为:cd /Desktop

5.3 修改屏幕分辨率

查看分辨率:xrandr -q
修改分辨率:xrandr -s 分辨率_刷新率

5.4 放大缩小终端字体大小

直接使用快捷键:
放大:Ctrl Shift =
缩小:Ctrl -

5.5 查看帮助

man 命令或者命令 --help
下一页:空格 或 f
上一页:b
下一行:enter
退出:q

5.6 查看当前所在目录

pwd

5.7 显示目录内容

ls -alh 目录名,有目录名代表显示指定目录内容,无目录名代表显示当前目录内容。./表示当前目录,../表示上级目录

参数说明:
-a: 显示所有文件,包含隐藏文件
-l:显示文件或目录的详细信息
在这里插入图片描述

  • 文件类型:-代表文件,d代表目录
  • 文件存取控制:一共9位,每3位为1组,共3组,分别代表:文件拥有者,文件所属组,和其他用户。每3位代表3种权限:r代表可读,w代表可写,x代表可执行。
  • 文件属主:即文件拥有者
  • 文件所属组:每个目录或者文件一定会属于一个用户和一个组,用户名和组名可以相同
  • 通配符:
    使用 * 代表多个字符,?代表任意字符,[ ]代表范围。

-h: 配合 -l 使用,显示文件大小的时候,用人性化方式显示(带单位)

5.8 修改目录/文件权限

chmod 用户 授权或取消权限 权限 文件或目录

  • (1)用户:
    u: user,文件属主
    g:group,文件所属组
    o:other,其他用户
    a:all,所有用户

  • (2)授权或取消权限:
    +:授权
    -:取消权限
    =:设置文件或目录的权限,=后面有什么权限就赋予什么权限,没有的就取消权限

  • (3)权限:

    • r:可读权限
      对于文件:没有可读权限,文件不可读
      对于目录:没有可读权限,不能查看目录的内容

    • w:可写权限
      对于文件:没有可写权限,无法修改文件内容,只能通过另存为修改后保存为另一个文件
      对于目录:没有可写权限,不可以在该目录下添加文件或目录

    • x:可执行权限
      对于文件:没有可执行权限,如果这个文件是个可执行的程序,将无法执行
      对于文件夹:没有可执行权限,不能进入该文件夹

(4)另一种赋权方式—数字法赋权:chmod 数字权限 文件或目录名
数字法权限示意图:
在这里插入图片描述
举个🌰:赋予所有权限:chmod a+rwx 文件名chmod 777 文件名

5.9 切换目录

cd 目录名

切换到主目录:cd ~cd
切换到之前的目录:cd -

5.10 创建空文件或修改文件最后修改时间

创建空文件:touch 文件名
修改文件最后更改时间:touch 目录名,如果要更改一个目录的最后修改时间,touch后面的目录名一定要存在。

5.11 创建目录

mkdir -p 目录名

参数说明:
-p:创建嵌套的目录

5.12 删除文件或目录

rm -rfi 文件名或目录名,删除多个文件或目录,各个文件之间用空格隔开

参数说明:
-r:删除目录
-f:当文件或者目录不存在的时候,rm会报错,使用参数-f,如果目标不存在,也不报错
-i:给出是否删除的提示信息

5.13 文件拷贝

cp -ri 原文件名 路径/拷贝的文件名:将原文件拷贝到哪个路径下,文件名是什么

参数说明:
-r:拷贝目录
-i:当目标文件已经存在,给用户是否覆盖的提示

5.14 文件移动

mv -i 原文件 路径

参数说明:
-i:当目标文件已经存在,给用户是否覆盖的提示

5.15 查看文件内容

cat -nb 文件名
合并查看多个文件内容:cat -nb 文件1 文件2....

参数说明:
-n: 显示行号(包括空行)
-b:显示行号(不包括空行)
在这里插入图片描述

5.16 分屏查看文件内容

more 文件名

下一页: 空格
上一页: b
下一行:enter
退出: q

5.17 在指定文件中查找指定字符串

grep -niv 字符串 文件名,找到指定内容后,显示符合要求的行,查找内容标红

参数说明:
-n: 显示行号
-i: 不区分大小写
-v: 查找不包含指定内容的行

模式查找:
^字符串:查找指定字符串开头的行
字符串$:查找指定字符串结尾的行
^字符串.*字符串$: 查找指定字符串开头,指定字符串结尾的行

举个🌰:文件“123.txt”中的内容如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

5.18 回显字符串

echo 字符串, 把echo后面的字符串回显到屏幕
在这里插入图片描述

5.19 清屏

clear,清空终端显示的所有内容

5.20 输出重定向

命令 > 文件名, 把一个命令指定的结果不输出到屏幕,而是重定向到一个指定的文件中,如果文件不存在就创建文件,如果文件存在就覆盖文件。

命令 >> 文件名,把一个命令指定的结果不输出到屏幕,而是重定向到一个指定的文件中,如果文件不存在就创建文件,如果文件存在就追加到文件末尾

在这里插入图片描述
在这里插入图片描述

5.21 合并文件

cat 文件1 文件2...... > 合并文件名

5.22 管道符

命令1 | 命令2,把一个命令1的输出结果作为命令2的输入,如:cat 123 | more

5.23 查找指定文件

find 开始目录 -name 文件名,默认从当前路径开始查找

5.24 创建链接文件

5.24.1 硬链接

ln 原文件 链接文件,创建硬链接

用ls -l显示文件硬链接数会增加,会占用磁盘空间,当原文件不存在,硬链接还可以使用
在这里插入图片描述

5.24.2 软链接

ln -s 原文件 链接文件,创建软连接

用ls -l 显示的时候 第一行标识是 l,不占用磁盘空间,当原文件不存在时,软链接也没有意义
在这里插入图片描述

5.25 压缩和解压文件

5.25.1 zip压缩和解压

压缩:zip 压缩文件名 被压缩文件名,压缩完成后,文件依旧存在, 压缩文件以.zip结尾
在这里插入图片描述
解压:uzip 压缩文件名,解压完成后,原压缩文件依旧存在

5.25.2 gzip压缩和解压

gzip 压缩文件名,压缩完成后,原文件不存在, 不能压缩文件夹,压缩文件以.gz结尾
gzip -d 压缩文件名,解压完成后,原压缩文件不存在

5.26 打包和解包

  • 什么是打包?
    打包指将多个文件(或目录)合并成一个文件,方便在不同节点之间传递或在服务器集群上部署。
    压缩或打包文件常见扩展名: *.tar, *.tar.gz, *.gz, *.bz2, *.Z,*.zip;

  • 命令:
    打包: tar -cvf 打包文件名 被打包文件名
    查看包内容:tar -tvf 打包文件名
    解包:tar -xvf 打包文件名

  • 参数说明:
    -c: 建立打包文件
    -v:在压缩/解压缩的过程中,将正在处理的文件名显示出来
    -f: filename,指定文件名称,-f 后面跟处理后文件的全名称(路径+文件名+后缀名)

5.27 tar 与 gzip 通过 -z 实现一步打包压缩和解包解压缩

打包压缩:tar -zcvf 打包压缩文件名 被打包压缩文件名
解压解包:tar -zxvf 打包压缩文件名

5.28 显示磁盘大小

df -h
在这里插入图片描述

5.29 显示系统进程,并显示进程详细信息

ps -aux
在这里插入图片描述

5.30 动态查看进程信息

top
退出:Ctrl+c

5.31 结束进程

kill PID
强制结束:kill -9 PID

5.32 是否连通网络

ping IP或域名

5.33 查看网卡信

ifconfig

5.34 切换当前用户

su 用户名

切换用户同时改变当前目录为用户主目录:su -用户名

常见问题:

  • (1)ubuntu在su root 时会报错:su: Authentication failure
    原因:ubuntu默认不允许使用root登陆
    解决方案:执行命令:sudo passwd root

  • (2)反复使用su命令,会产生嵌套,如下图:在这里插入图片描述
    解决方案:su之后一定要用exit退出当前用户,不要不停su到新用户

5.35 退出当前用户

exit

5.36 创建普通用户

useradd -d /home/用户名 用户名 -m,添加用户,同时指定其主目录,只有root可以添加用户

在新增用户同时指定用户默认的 shell: useradd -d /home/用户名 用户名 -m -s /bin/bash新增用户同时指定 shell 为 bash

5.37 修改用户密码

passwd 用户名

5.38 删除用户

userdel -rf 用户名

参数说明:
-r:删除用户的同时也删除其主目录
-f: 即使用户已经登陆了,也强制删除

5.39 查看当前用户登录名

whoami

5.40 编辑文件

vi 文件名vim 文件名若文件不存在会先创建一个文件,之后再打开,若已存在,直接打开文件

在这里插入图片描述
(1) 末行模式下的常用操作:

  • 进入编辑模式:
    i 在当前光标位置插入
    I 在光标所在行首插入
    a 在光标所在后面插入
    A 在光标所在行行尾插入
    o 在光标所在行下面开启一个新行插入
    O 在光标所在行上面开启一个新行插入

  • 进入命令模式:shift+;

  • 删除:
    x 删除光标所在位置字符
    dd 删除光标所在行
    ndd 代表删除指定数量的行,n代表数量

  • 撤销与反撤销
    u撤销
    ctrl+r 反撤销

  • 复制和粘贴:
    yy复制光标所在的一行
    nyy复制光标所在的n行
    p从光标所在位置下面开辟新行并复制

  • 查找:
    查找指定的字符串:/字符串, n查找下一个,N查找上一个

  • 定位到指定的行:
    nG —跳转到第n行
    G ----到最后一行

(2) 命令模式下的常用操作:
w 保存文件,不退出vi 或 vim
w + 文件名,文件另存为
wq 保存并退出
q 退出,如果文件内容已经修改,q会提示错误
q! 不保存,强制退出

5.41 配置环境变量

step1: 回到用户主目录 cd
step2: 在主目录下用vi编辑 .profile文件
step3: 在 .profile后添加一行 export PATH = $PATH:.
step4: 让修改立刻生效:source .profile

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值