Linux操作系统学习

时间:2024-10-23 13:40:41

目录

一、操作系统

1、什么是操作系统(OS)?

2、常见的操作系统

二、Linux系统的介绍

1、Linux操作系统的特点

2、Linux发展历程

3、Linux内核及发行版本

3.1 Linux内核版本(kernel)

3.2 Linux发行版本

三、Linux目录结构(文件结构)

1、Linux和Windows目录结构的区别

2、Linux主要目录

四、Linux常用终端命令

1、Linux终端命令在哪里编写?

2、Linux常用命令(一)

① pwd  查看当前所在文件夹

② cd  切换文件夹

③ ls  查看目录下的内容

通配符

④ mkdir  创建文件夹

⑤ touch 创建空文件夹

⑥ rm 删除文件

⑦ clear 清屏

⑧ 其他:

4、Linux常见命令(二)

                  ① cp 拷贝

② mv 移动/重命名

③ 重定向  > 和 cat 命令

④ more 查看较大文件

⑤ 管道 |

⑥ 建立链接文件 ln

⑦ 查找文件内容 grep

⑧ 查找文件 find

⑨ 归档(打包) tar

⑩ 文件压缩解压  gzip

一键到位压缩和解压

⒒ 文件压缩解压 bzip2

⒓ 文件压缩解压 zip  unzip

⒔ 其他命令

 ⒕ 修改文件权限 chmod

五、vim编辑器(高级记事本)

1、vim基本操作

2、其他操作

移动光标:

删除命令:

撤销命令:

重复命令:

文本行移动:

复制粘贴:

可视模式(选中文本):

替换操作:

查找命令:


一、操作系统

1、什么是操作系统(OS)?

  • 用来管理计算机硬件与软件资源的计算机程序,是计算机的核心和基石。
  • 是连接用户和计算机的媒介
  • 是所有硬件设备组装后的第一层软件,能够让用户使用硬件设备的软件。

2、常见的操作系统

  • 桌面操作系统:Windows、macOS、Linux
  • 移动端操作系统:iOS、Android
  • 服务器操作系统:Linux、Windows server
  • 嵌入式操作系统:Android(底层是Linux)

二、Linux系统的介绍

与服务器设备进行交互

1、Linux操作系统的特点

  • 来源免费(有些开源的东西也不一定免费)
  • 安全稳定
  • 性能可靠
  • 可移植性(多用户、多任务、多平台、多语言)

2、Linux发展历程

Unix → minix → Linux

3、Linux内核及发行版本

3.1 Linux内核版本(kernel

Linux只有一个内核版本 — — kernel


Linux内核的任务:

  • 从技术层面讲,内核是硬件与软件之间的一个中间层。作用是将应用程序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。
  • 从应用程序的层面讲,应用程序与硬件没有联系,只与内核有联系,内核是应用程序知道的层次中的最底层。
  • 内核是一个资源管理程序。负责将可用的共享资源(CPU时间、磁盘空间、网络连接等)分配得到各个系统进程。
  • 内核就像一个库,提供了一组面向系统的命令。系统调用对于应用程序来说,就像调用普通函数一样。

内核实现策略:

  • 微内核。最基本的功能由*内核(微内核)实现。所有其他的功能都委托给一些独立进程,这些进程通过明确定义的通信接口与中心内核通信。
  • 宏内核。内核的所有代码,包括子系统(如内存管理、文件管理、设备驱动程序)都打包到一个文件中。内核中的每一个函数都可以访问到内核中所有其他部分。目前支持模块的动态装卸(裁剪)。Linux内核就是基于这个策略实现的。

3.2 Linux发行版本

  • Linux发行版指的就是“Linux操作系统”,它可能是由一个组织,公司或者个人发行的,Linux主要作为Linux发行版(通常被称为"distro")的一部分而使用,发行版为许多不同的目的而制作,包括对不同计算机结构的支持,对一个具体区域或语言的本地化,实时应用,和嵌入式系统。
  • 一个典型的Linux发行版包括:Linux核心,一些GNU库和工具,命令行shell,图形界面的X窗口系统和相应的桌面环境,如KDE或GNOME,并包含数千种从办公包,编译器,文本编辑器到科学工具的应用软件。
  • 主流的Linux发行版:Ubuntu、DebianGNU/Linux ,Fedora,Gentoo,MandrivaLinux ,PCLinuxOS,SlackwareLinux,openSUSE,ArchLinux,Puppylinux,Mint,CentOS, Red Hat等。

三、Linux目录结构(文件结构)

1、Linux和Windows目录结构的区别

Linux目录结构和Windows的不同,Linux没有盘符概念,只有一个根目录。

2、Linux主要目录

  • / :根目录,所有的目录、文件、设备都在/之下,/就是Linux文件系统的组织者,也是最上级的领导者。
  • /bin :bin 就是二进制(binary)英文缩写。在一般的系统当中,都可以在这个目录下找到linux常用的命令。系统所需要的那些命令位于此目录。
  • /boot :Linux的内核及引导系统程序所需要的文件目录,比如 vmlinuz 文件都位于这个目录中。在一般情况下,GRUB或LILO系统引导管理器也位于这个目录。
  • /cdrom :这个目录在刚刚安装系统的时候是空的。可以将光驱文件系统挂在这个目录下。例如:mount /dev/cdrom /cdrom
  • /dev :dev 是设备(device)的英文缩写。这个目录对所有的用户都十分重要。因为在这个目录中包含了所有linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序。这一点和常用的windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口。可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。
  • /etc :etc这个目录是linux系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下。
  • /home:如果建立一个用户,用户名是"xx",那么在/home目录下就有一个对应的/home/xx路径,用来存放用户的主目录。
  • /lib:lib是库(library)英文缩写。这个目录是用来存放系统动态连接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。因此,千万不要轻易对这个目录进行什么操作,一旦发生问题,系统就不能工作了。
  • /lost+found :在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中fsck工具会检查这里,并修复已经损坏的文件系统。正在上传、重新上传、取消Linux系统有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。
  • /mnt :这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom等目录。可以参看/etc/fstab的定义。
  • /media :有些linux的发行版使用这个目录来挂载那些usb接口的移动硬盘(包括U盘)、CD/DVD驱动器等等。
  • /opt :这里主要存放那些可选的程序。
  • /proc :可以在这个目录下获取系统信息。这些信息是在内存中,由系统自己产生的。
  • /root :Linux超级权限用户root的家目录。
  • /sbin :这个目录是用来存放系统管理员的系统管理程序。大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin :/usr/X11R6/sbin或/usr/local/sbin目录是相似的,凡是目录sbin中包含的都是root权限才能执行的。
  • /selinux :对SElinux的一些配置文件目录,SElinux可以让linux更加安全。
  • /srv : 服务启动后,所需访问的数据目录,举个例子来说,www服务启动读取的网页数据就可以放在/srv/www中
  • /sys :Linux 内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与 proc 有些类似,但除了与 proc 相同的具有查看和设定内核参数功能之外,还有为 Linux 统一设备模型作为管理之用。
  • /tmp :临时文件目录,用来存放不同程序执行时产生的临时文件。有时用户运行程序的时候,会产生临时文件。/tmp就用来存放临时文件的。/var/tmp目录和这个目录相似。
  • /usr:这是linux系统中占用硬盘空间最大的目录。用户的很多应用程序和文件都存放在这个目录下。在这个目录下,可以找到那些不适合放在/bin或/etc目录下的额外的工具
  • /usr/local :这里主要存放那些手动安装的软件,即不是通过“新立得”或apt-get安装的软件。它和/usr目录具有相类似的目录结构。让软件包管理器来管理/usr目录,而把自定义的脚本(scripts)放到/usr/local目录下面。
  • /usr/share :系统共用的东西存放地,比如 /usr/share/fonts 是字体目录,/usr/share/doc和/usr/share/man帮助文件。
  • /var :这个目录的内容是经常变动的,看名字就知道,可以理解为vary的缩写,/var下有/var/log 这是用来存放系统日志的目录。/var/ www目录是定义Apache服务器站点存放目录;/var/lib 用来存放一些库文件,比如MySQL的,以及MySQL数据库的的存放地。

四、Linux常用终端命令

1、Linux终端命令在哪里编写?

  • ① 应用程序 → 系统工具 → 终端 terminal
  • ② (在想打开终端的地方)点击鼠标右键 → 在终端中打开

2、Linux常用命令(一)

① pwd  查看当前所在文件夹

② cd  切换文件夹

  • cd /home  :绝对路径  以根目录开头
  • cd admin  :相对路径 不以根目录开头(在当前所在目录下一级)
  • cd ..  :返回上一级目录
  • cd ~  :到自己的家目录 (/home/admin)
  • cd -  :类似于电视的回看

③ ls  查看目录下的内容

  • ls
  • ls -l  :显示详细列表
  • ls -lh  :把文件大小信息以人性化方式显示
  • ls -a  :显示所有文件,包含隐藏文件,隐藏文件夹是以.开头的文件
  • ll   等于  ls -l
  • (还可以组合 ls -lah 之类的)

  ls 权限介绍

文件类型:d -- 文件夹(目录)   - -- 文件

文件存取控制:r -- 可读  w -- 可写  x -- 可执行;

  • 第一组rwx:  文件的拥有者(属主)的权限
  • 第二组rwx:文件所属的组的权限
  • 第三组rwx:其他用户的权限

通配符

* 代表文件中任意多个字符
代表文件中任意一个字符
[ ] 将字符组括起来,表示可以匹配字符组中任意一个,- 代表范围
\ 要使通配符作为普通字符使用,要在前面添加转义字符 \ ,通配符“*”和“?”在[]中就已经作为普通字符了

④ mkdir  创建文件夹

  • (在自己家里才有权限)
  • mkdir tupian   在当前目录下创建文件夹
  • mkdir /home/admin/tupian   在绝对路径下创建文件夹
  • mkdir /home/admin/tupian/a/tupian -p  如果上级目录不存在,加上-p自动创建父目录
  • mkdir  a b   在当前目录创建多个文件夹
  • mkdir a/{c,d}  在指定目录下创建多个文件夹
  • mkdir .abc  以.开头 是创建隐藏文件夹

⑤ touch 创建空文件夹

  • touch   在当前目录下创建  如果指定了目录,必须保证上级目录存在
  • touch .abc   创建隐藏文件
  • gedit    使用记事本打开文件(若文件不存在,则创建文件并打开)

⑥ rm 删除文件

  • rm     删除文件
  • rm abc -r   删除文件夹
  • rm *          不能删除隐藏文件

⑦ clear 清屏

⑧ 其他:

自动补全:在敲出文件/目录/命令的前几个字母之后,按下tab键,系统会自动补全

上/下光标键曾经使用过的命令之间来回切换

如果想要退出选择,并且不想执行当前选择的命令,可以按Ctrl+C结束某一命令

--help  :查阅中文的命令使用手册【中文】

man command:查阅英文的命令使用手册【英文】

使用man时的操作键
操作键 功能

空格键

显示手册页的下一屏
enter键 一次滚动手册页的一行
b 回滚一屏
f 前滚一屏
q 退出
/word 搜索Word字符串

4、Linux常见命令(二)

① cp 拷贝

前面源文件,后面目标文件

 -f 可以忽略,因为默认覆盖且不提示了

-i 时,用y 和n 来回复提示信息。

常用 -r 来拷贝文件夹

② mv 移动/重命名

mv (源文件) (目标文件)/1_bank9(重命名)

 ③ 重定向  > 和 cat 命令

  • ls >  :表示把命令ls返回的结果输出到文件上,默认情况命令返回的结果是显示到屏幕中(没有这个文件时就会自动新建文件)
  • > 会被覆盖;>>不会被覆盖
  • cat :把文件的内容全部显示到屏幕上

④ more 查看较大文件

  • 用来查看比较大的文件(可以分页查看),文件内容少时cat查看
  • 按空格或者回车键往上翻页,按b按键往回翻页,按q键退出

⑤ 管道 |

ls -al / |more  :把左边命令返回的结果交给右边的命令处理

⑥ 建立链接文件 ln

Linux链接文件 类似于 Windows的快捷方式

两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以软链接更常用。

(软链接)注意:

  • 如果软链接文件和源文件不在同一目录下,源文件要使用绝对路径。
ln -s /home/admin/day2/1.txt ~/1_soft_day
  • 软链接本身不存储内容,只记得源文件路径名称,假如把源文件删除,再到同样路径下创建一个一样名称的文件,软链接会指向该文件。

(硬链接)注意:

  • 硬链接本身占磁盘空间,是将源文件全部拷贝一份
  • 源文件与硬链接文件内容同步变化,源文件(硬链接)被删除后,不影响硬链接(源文件)
  • 使用ll查看时,有一个数字,代表有几个文件能同步变化

⑦ 查找文件内容 grep

一般格式:

grep [-选项] '搜索字符串' 文件名

常用选项说明
选项 含义
-v 显示不包含匹配文本的所有行(相当于求反)
-n 显示匹配行及行号
-i 忽略大小写

可以组合,eg:-inv

grep 常用正则表达式(通配符)
参数 含义
^a 以a为开头的行
a$ 以a为结尾的行
[Ss]igna[Ll] 匹配[]中一系列字符中的一个
. 点代表任一非换行符的字符
  1. grep -n hello 1.txt #在文件下寻找有hello的行并显示行数
  2. grep -n hello . -r #在.目录下的所有文件(不管是第几层的)包含hello的行并显示行数
  3. grep -n ^h 1.txt #在文件下寻找以h开头的行并显示行数
  4. grep -n o$ 1.txt #在文件下寻找以o结尾的行并显示行数
  5. grep -n [Ss]igna[Ll] #在文件下搜寻匹配单词signal、Signal、signaL、SignaL的行并显示行数
  6. grep -n 1.txt #.代表任意一个字符,,evea 匹配,ee,evve不匹配

⑧ 查找文件 find

一般格式:

find [目录] -name [文件名称]

注意:如果文件名称加上通配符,要加上单引号

  1. find /home -name 1.txt #在/home目录下查找文件名为的文件
  2. find /home -name '*txt' #在/home目录下查找以txt结尾的文件

⑨ 归档(打包) tar

将一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据

一般格式: tar  [参数]  打包文件名  要打包的文件

tar 命令的参数前面可以加“-”,也可以不加

常用参数
参数 含义
-c 生成档案文件,创建打包文件
-v 列出归档文件的详细过程,显示进度
-f 指定归档文件名称
-t 列出档案中包含的文件
-x 解开档案文件
  1. #打包
  2. tar cvf 1.txt 2.txt
  3. #创建打包文件把文件、打包到中,并显示详细过程
  4. #列出包里面的文件
  5. tar tf
  6. #解包
  7. tar xvf
  8. #如果没写目录,包里面的文件解开放在当前目录
  9. tar xvf -C tar
  10. #把文件解开放到tar目录下,并显示详细过程(tar目录要在该目录下,否则要先新建)

⑩ 文件压缩解压  gzip

tar 与 gzip 结合使用实现文件打包压缩。tar只负责打包文件,gzip用来压缩tar打包后的文件,其扩展名一般用

gzip 使用格式:

gzip [选项] 要压缩文件

常用选项
选项 含义
-d 解压  gzip -d
-r 压缩   gzip -r

压缩:

  1. 打包  tar cf   *.txt
  2. 压缩  gzip -r

解压:

  1. 解压  gzip -d
  2. 解包  tar xf

一键到位压缩和解压

实际应用中不会像上面那么复杂,通常直接在执行tar命令的时候添加(-z)选项调用gzip命令来一步实现压缩解压

压缩:

  • tar cvzf 压缩文件名 要压缩的文件
  • tar cvzf *txt

解压:

  • tar xvzf 要解压的文件
  • tar xvzf

⒒ 文件压缩解压 bzip2

  • 和 gzip 用法一致(扩展名一般为:.bz2)
  • 在tar 命令中添加(-j)选项可以调用bzip2来实现一键压缩功能

压缩用法:tar jcvf .bz2 *.txt

⒓ 文件压缩解压 zip  unzip

通过zip压缩文件不需要指定扩展名,默认扩展名为zip

压缩文件:zip -r 目标文件(没有扩展名)  源文件

解压文件:unzip -d 解压后的目录文件  压缩文件

压缩率:zip<gzip<bzip2

通用性:zip>gzip<bzip2

⒔ 其他命令

  1. 查看命令位置: which [命令]
  2. 切换到root管理员(得到权限):su (切换回admin用户时:su admin
  3. 设置用户密码:passwd (想设置简单密码可切换到root,输入命令passwd admin)
  4. 退出登录用户:exit
  5. 查看当前登录的用户:who(admin pts/0 (代表一个终端);admin tty1(代表用户登录了操作系统))
  6. pkill -kill -t tty1:杀死用户
  7. 关机重启  shutdown 、rebootreboot 不需要权限;shutdown需要权限

 ⒕ 修改文件权限 chmod

  1. chmod u+r #给文件的拥有者添加权限r
  2. chmod u=rwx,g-w,o+x
  3. chmod a+w
  4. chmod a=- #将文件test权限都设置为-(没有权限)

chmod 111 test.txt

五、vim编辑器(高级记事本)

进入vim:vim (刚进入的时候属于命令模式)

1、vim基本操作

2、其他操作

移动光标:

  • h : 左移
  • j : 下移
  • k : 上移
  • l :右移
  • M : 光标移动到中间行
  • L : 光标移动到最后一行行首
  • G : 移动到指定行(eg:5+shift+g :移动到第五行)
  • w : 向后一次移动一个字
  • b : 向前一次移动一个字
  • { :按段移动,上移
  • } :按段移动,下移
  • Ctrl+d : 向下翻半屏
  • Ctrl+u : 向上翻半屏
  • Ctrl+f : 向下翻一屏
  • Ctrl+b : 向上翻一屏
  • gg : 光标移动到文件夹开头
  • G : 光标移动到文件夹末尾

删除命令:

  • x : 删除光标后一个字符
  • X : 删除光标前一个字符
  • dd : 删除光标所在行,n dd : 删除指定的行数
  • D:删除光标后本行的内容,包含光标所在字符
  • d0 :删除光标前本行的所有内容,不包含光标所在字符
  • dw :  删除光标开始位置的字,包含光标所在字符

撤销命令:

  • u :一步步撤销
  • ctrl + r :反撤销

重复命令:

  • . :重复上一操作的命令

文本行移动:

  • >> :文本行右移
  • <<:文本行左移

复制粘贴:

  • yy:复制当前行,n yy:复制n行
  • p:在光标所在位置向下开辟一行,粘贴

可视模式(选中文本):

  • v:按字符移动,选中文本
  • V:按行移动,选中文本,可以配合d、y、>>、<<实现对文本块的删除、复制、左移、右移

替换操作:

  • r:替换当前字符
  • R:替换当前行中光标后面的字符,直到按esc

查找命令:

  • /:str查找
  • n:下一个
  • N:上一个