Linux操作系统
- 1 Linux发展史
- 2 Linux的内核版本和发行版本
- 3 Linux应用领域
- 4 Linux系统目录结构
- 5 Linux常用命令
- 5.1 历史命令
- 5.2 自动补全
- 5.3 修改屏幕分辨率
- 5.4 放大缩小终端字体大小
- 5.5 查看帮助
- 5.6 查看当前所在目录
- 5.7 显示目录内容
- 5.8 修改目录/文件权限
- 5.9 切换目录
- 5.10 创建空文件或修改文件最后修改时间
- 5.11 创建目录
- 5.12 删除文件或目录
- 5.13 文件拷贝
- 5.14 文件移动
- 5.15 查看文件内容
- 5.16 分屏查看文件内容
- 5.17 在指定文件中查找指定字符串
- 5.18 回显字符串
- 5.19 清屏
- 5.20 输出重定向
- 5.21 合并文件
- 5.22 管道符
- 5.23 查找指定文件
- 5.24 创建链接文件
- 5.25 压缩和解压文件
- 5.26 打包和解包
- 5.27 tar 与 gzip 通过 -z 实现一步打包压缩和解包解压缩
- 5.28 显示磁盘大小
- 5.29 显示系统进程,并显示进程详细信息
- 5.30 动态查看进程信息
- 5.31 结束进程
- 5.32 是否连通网络
- 5.33 查看网卡信
- 5.34 切换当前用户
- 5.35 退出当前用户
- 5.36 创建普通用户
- 5.37 修改用户密码
- 5.38 删除用户
- 5.39 查看当前用户登录名
- 5.40 编辑文件
- 5.41 配置环境变量
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 | 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息 |
root | root用户的主目录 |
/run | 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果系统上有 /var/run 目录,应该让它指向 run |
/sbin usr/sbin | 系统管理命令,这里存放的是系统管理员使用的管理程序 |
/srv | 存放服务启动后需要提取的数据(不用服务器就是空) |
/usr | 要用到的应用程序和文件几乎都在这个目录 |
/usr/doc | linux文档 |
/usr/include | linux下开发和编译应用程序所需要的头文件 |
/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