目录
一、操作系统
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 initrd.img 文件都位于这个目录中。在一般情况下,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 abc.txt 在当前目录下创建 如果指定了目录,必须保证上级目录存在
- touch .abc 创建隐藏文件
- gedit abc.txt 使用记事本打开文件(若文件不存在,则创建文件并打开)
⑥ rm 删除文件
- rm a.txt 删除文件
- 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.txt(源文件) 2.txt(目标文件)/1_bank9(重命名)
③ 重定向 > 和 cat 命令
- ls >1.txt :表示把命令ls返回的结果输出到1.txt文件上,默认情况命令返回的结果是显示到屏幕中(没有这个文件时就会自动新建文件)
- > 会被覆盖;>>不会被覆盖
- cat 1.txt 2.txt :把文件的内容全部显示到屏幕上
④ 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] |
匹配[]中一系列字符中的一个 |
. |
点代表任一非换行符的字符 |
grep -n hello 1.txt #在1.txt文件下寻找有hello的行并显示行数
grep -n hello . -r #在.目录下的所有文件(不管是第几层的)包含hello的行并显示行数
grep -n ^h 1.txt #在1.txt文件下寻找以h开头的行并显示行数
grep -n o$ 1.txt #在1.txt文件下寻找以o结尾的行并显示行数
grep -n [Ss]igna[Ll] #在1.txt文件下搜寻匹配单词signal、Signal、signaL、SignaL的行并显示行数
grep -n e.e 1.txt #.代表任意一个字符,eg.eve,evea 匹配,ee,evve不匹配
⑧ 查找文件 find
一般格式:
find [目录] -name [文件名称]
注意:如果文件名称加上通配符,要加上单引号
find /home -name 1.txt #在/home目录下查找文件名为1.txt的文件
find /home -name '*txt' #在/home目录下查找以txt结尾的文件
⑨ 归档(打包) tar
将一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据
一般格式: tar [参数] 打包文件名 要打包的文件
tar 命令的参数前面可以加“-”,也可以不加
常用参数
参数 |
含义 |
-c |
生成档案文件,创建打包文件 |
-v |
列出归档文件的详细过程,显示进度 |
-f |
指定归档文件名称 |
-t |
列出档案中包含的文件 |
-x |
解开档案文件 |
#打包
tar cvf a.tar 1.txt 2.txt
#创建打包文件a.tar把文件1.txt、2.txt打包到a.tar中,并显示详细过程
#列出包里面的文件
tar tf a.tar
#解包
tar xvf a.tar
#如果没写目录,包里面的文件解开放在当前目录
tar xvf a.tar -C tar
#把a.tar文件解开放到tar目录下,并显示详细过程(tar目录要在该目录下,否则要先新建)
⑩ 文件压缩解压 gzip
tar 与 gzip 结合使用实现文件打包压缩。tar只负责打包文件,gzip用来压缩tar打包后的文件,其扩展名一般用 xx.tar.gz
gzip 使用格式:
gzip [选项] 要压缩文件
常用选项
选项 |
含义 |
-d |
解压 gzip -d a.tar.gz |
-r |
压缩 gzip -r a.tar |
压缩:
- 打包 tar cf a.tar *.txt
- 压缩 gzip -r a.tar
解压:
- 解压 gzip -d a.tar.gz
- 解包 tar xf a.tar
一键到位压缩和解压
实际应用中不会像上面那么复杂,通常直接在执行tar命令的时候添加(-z)选项调用gzip命令来一步实现压缩解压
压缩:
- tar cvzf 压缩文件名 要压缩的文件
- tar cvzf a.tar.gz *txt
解压:
- tar xvzf 要解压的文件
- tar xvzf a.tar.gz
⒒ 文件压缩解压 bzip2
- 和 gzip 用法一致(扩展名一般为:xx.tar.bz2)
- 在tar 命令中添加(-j)选项可以调用bzip2来实现一键压缩功能
压缩用法:tar jcvf a.tar.bz2 *.txt
⒓ 文件压缩解压 zip unzip
通过zip压缩文件不需要指定扩展名,默认扩展名为zip
压缩文件:zip -r 目标文件(没有扩展名) 源文件
解压文件:unzip -d 解压后的目录文件 压缩文件
压缩率:zip
通用性:zip>gzip
⒔ 其他命令
- 查看命令位置: which [命令]
- 切换到root管理员(得到权限):su (切换回admin用户时:su admin)
- 设置用户密码:passwd (想设置简单密码可切换到root,输入命令passwd admin)
- 退出登录用户:exit
- 查看当前登录的用户:who(admin pts/0 (代表一个终端);admin tty1(代表用户登录了操作系统))
- pkill -kill -t tty1:杀死用户
- 关机重启 shutdown 、rebootreboot 不需要权限;shutdown需要权限
⒕ 修改文件权限 chmod
chmod u+r test.txt #给test.txt文件的拥有者添加权限r
chmod u=rwx,g-w,o+x test.txt
chmod a+w test.txt
chmod a=- test.txt #将文件test权限都设置为-(没有权限)
chmod 111 test.txt
五、vim编辑器(高级记事本)
进入vim:vim 1.txt(刚进入的时候属于命令模式)
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 : 删除光标开始位置的字,包含光标所在字符
撤销命令:
重复命令:
文本行移动:
复制粘贴:
- yy:复制当前行,n yy:复制n行
- p:在光标所在位置向下开辟一行,粘贴
可视模式(选中文本):
- v:按字符移动,选中文本
- V:按行移动,选中文本,可以配合d、y、>>、<<实现对文本块的删除、复制、左移、右移
替换操作:
- r:替换当前字符
- R:替换当前行中光标后面的字符,直到按esc
查找命令: