Linux应知应会(一)

一、Linux入门概述

1.1 概述

Linux内核最初由芬兰人Linus Torvalds在赫尔辛基大学就读时处于个人爱好编写的。

Linux是一套免费使用且*传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。Linux能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

而目前市面上较为知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SUSE、OpenSUSE。

1.2 下载地址

CentOS下载地址:

网易镜像:http://mirrors.163.com/centos/8/isos/

搜狐镜像:http://mirrors.sohu.com/centos/8/isos/

1.3 Linux的特点

在Linux系统中,一切皆是文件,没有后缀名的这一说法。

1.4 Linux和Windows的区别

目前国内Linux更多应用于服务器上,而桌面操作系统(个人PC以及办公电脑)更多使用的是Windows,不过也有少数人选择Deepin(国产Linux桌面操作系统)。Linux和Windows的主要区别有:

  • 在界面上,windows的界面统一,外壳程序固定所有Windows程序菜单几乎一致,快捷键也几乎相同;而Linux使用圆形界面风格,且不同的发布版本也会有不同的改变,可能互不兼容。GNU/Linux的终端机是从Unix传承下来,基本命令和操作方法也几乎一致。
  • 在驱动程序上,Windows的驱动程序丰富,版本更新频繁。默认安装程序里面一般包含该版本发布时流行的硬件驱动程序,之后所出的新硬件驱动依赖于硬件厂商提供,对于一些老硬件,如果没有了原配的驱动有时候很难支持,另外有时硬件厂商未提供所需版本的Windows下的驱动,会比较难搞;而Linux的驱动程序由志愿者开发,由核心开发小组发布,很多硬件厂商基于版本考虑并未提供驱动程序,尽管多数无需手动安装,但是涉及安装则相对复杂,是的新用户面对驱动程序问题会一筹莫展,但是在开源开发模式下,许多老硬件尽管在Windows下很难支持的也容易赵铎驱动,HP、Intel和AMD等硬件厂商逐步不同程序支持开源驱动,问题正在得到缓解。
  • 在使用方面,Windows的使用更加简单却容易入门,圆形化界面对没有计算机背景知识的用户使用十分有利;而Linux的文字界面(即命令行界面)需要学习才能掌握,相对较难入门。
  • 在学习方面,Windows系统构造复杂、变化频繁,且知识、技能淘汰快,深入学习较难;而Linux系统构造简单、稳定,且知识、技能传承性好,深入学习相对容易。
  • 在软件方面,Windows每一种特定功能可能都需要商业软件的支持,需要购买相应的授权;而Linux大部分软件都可以*获取,同样功能的软件选择较少。

二、Linux目录结构

2.1 概览

Linux应知应会(一)

 

 2.2 目录结构及作用

  • /bin:是Binary的缩写,该目录下存放着系统必备的执行命令,例如:cd、ls、cat...
  • /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件和镜像文件,类似于Windows下的system目录
  • /dev:Device的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的
  • /etc:所有的系统管理所需要的配置文件和子目录
  • /home:存放普通用户的主目录,在Linux中每个yoghurt都有一个自己的目录,一般该目录名是以用户的账号命名的
  • /lib:系统开机所需要最基本的动态链接共享库,其作用类似于Windows里的dll文件,几乎所有的应用程序都需要用到这些共享库
  • /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就会产生会自动删除的碎片文件
  • /media:linux系统会自动识别一些设备,例如U盘、光驱等,当识别后,Linux会把识别的设备挂载到这个目录下
  • /mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里面的文件了
  • /net:存放着和网络相关的一些文件
  • /opt:这是给主机额外安装软件所摆放的目录,比如要安装一个Oracle数据库就可以放在这个目录下,默认是空的
  • /proc:该目录是一个虚拟的目录,是系统内存的映射,可以通过直接访问这个目录来获取系统信息
  • /root:该目录为系统管理员,也称作超级权限者的用户主目录
  • /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序
  • /selinux:这个目录是Redhat和CentOS特有的目录,Selinux是一个安全机制,类似于windows的防火墙
  • /srv:service的缩写,该目录存放一些服务启动之后需要提取的数据
  • /sys:存放着与Linux系统相关的文件
  • /tmp:用来存放临时文件
  • /usr:存放用户的很多应用程序和文件,类似于windows的program files目录
  • /var:存放着不断扩充的东西,我们习惯将那些经常被修改的目录放在该目录下,包括各种日志文件

三、VI、VIM编辑器

3.1 概述

所有的Unix Like系统都会内建vi文书编辑器,其他的文书编辑器则不一定会存在。但是目前我们使用比较多的是vim编辑器。

Vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。Vim是从VI发展出来的一个文本编辑器,代码补完、编译及错误 跳转等方便编程的功能特别丰富,被广泛使用。

具体来说,VI是老师的字处理器,不过功能已经齐全,但是可以改进;VIM则可以说是程序开发者的一项很好用的工具。

3.2 一般模式

以VI打开一个档案就直接进入一般模式了,也是默认模式。在这个模式中,你可以使用【上下左右】按键来移动光标,可以使用【删除字符】或【删除整行】来处理档案内容,也可以使用【复制】【粘贴】来处理文件数据。

常用语法

  1. 【yy】:复制光标单签一行
  2. 【y数字Ny】:复制一段(光标后N行)
  3. 【p】:箭头移动到目的行粘贴
  4. 【u】:撤销上一步
  5. 【dd】:删除光标当前行
  6. 【d数字Nd】:删除光标后N行
  7. 【x】:删除一个字母,相当于del
  8. 【X】:删除一个字母,相当于backspace
  9. 【yw】:复制一个词
  10. 【dw】:删除一个词
  11. 【shift+^】:移动到行头
  12. 【shift+$】:移动到行尾
  13. 【1+shift+g】:移动到页头,数字
  14. 【shift+g】:移动到页尾
  15. 【数字N+shift+g】:移动到目标行

3.3 编辑模式

在一般模式中可以进行删除、复制、粘贴等动作,但是却无法编辑文件内容。要等按下【i,I,o,O,a,A,r,R】任何一个字母之后才会进入编辑模式。

在Linux中,按下这些按键时,会在画面的左下方出现【INSERT】或【REPLACE】字样,此时代表进入编辑模式,可以进行编辑,如果要回到一般模式时,必须按下【Esc】退出编辑模式。

常用语法

  1. 【i】:进入编辑模式,当前光标前
  2. 【a】:进入编辑模式,当前光标后
  3. 【o】:进入编辑模式,当前光标行的下一行
  4. 【Esc】:退出编辑模式

3.4 指令模式

在一般模式中,输入【:】【/】【?】中的任何一个按钮,就可以将光标移动到最底下那一行。

在这个模式中,可以提供搜寻资料的动作,而读取、存盘、大量取代字符、离开vi、显示行号等动作都是在此模式中达成。

常用语法

  1. 【:】:选项
  2. 【w】:保存
  3. 【q】:退出
  4. 【!】:强制执行
  5. 【/被查找词】:n是查找下一个,shift+n是往上查找
  6. 【?被查找词】:n是查找上一个,shift+n是往下查找
  7. 【:wq!】:强制保存退出

四、网络与防火墙

4.1 查看、修改IP、网关、DNS

一、临时修改IP地址、网关

  1. 修改IP:命令行输入 network eth0 192.168.1.100 netmask 255.255.255.0
  2. 修改网关:命令行输入 route add default gw 192.168.1.1
  3. 删除网关:命令行输入 route del dafault gw 192.168.1.1

注意:在命令行中的操作待用户退出后会失效,如要永久生效,则需要修改配置文件

二、永久修改IP地址、网关、DNS

  1.  在命令行输入setup,在弹出的窗口中手动配置IP、网关、DNS即可
  2. 修改IP地址和网关:

  命令行输入:vim /etc/sysconfig/network-scripts/ifcfg-eth0

  

  DEVICE = eth0 //etho标识网卡的标识

  IPADDR =192.138.1.100 //标识网卡的IP

  GATWAY = 192.168.1.1 //标识网关

  NETMASK = 255.255.255.0 //标识子网掩码

  HWADDR = 11:22:***:33  //标识Mac地址

  ONBOOT = yes/no  //启动时是否激活该网卡

   3. 修改DNS:在命令行输入 vim /etc/resolv.conf,手动输入:nameserver 123.125.81.6

三、查看IP、网关、DNS

命令行中输入ifconfig可以查看IP

命令行中输入route -n ,IP地址为0.0.0.0后的gateway即为默认网关

四、IP等信息修改完成后需要执行service network restart重启生效

4.2 防火墙

一、基本语法

  1. 【service iptables statas】:查看防火墙状态
  2. 【chkconfig iptables -list】:查看防火墙开机启动状态
  3. 【service iptables stop】:临时关闭防火墙
  4. 【chkconfig iptables off】:关闭防火墙开机启动
  5. 【chkconfig iptables on】:开启防火墙开机启动

二、扩展

Linux系统有7个运行级别(runlevel),分别是:

  1. 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
  2. 运行级别1:单用户工作状态,root权限,用户系统维护,进制远程登陆
  3. 运行级别2:多用户状态(没有NFS)
  4. 运行界别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
  5. 运行级别4:系统未使用,保留
  6. 运行级别5:X11控制台,登录后进入图形GUI模式
  7. 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

4.3 关机重启

Linux大多用于服务器,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。正确的关机流程为:sync ->shutdown ->reboot -> halt。

一、基本语法

  • 【sync】:将数据有内存同步到硬盘中
  • 【shutdown [选项][时间]】,选项:-h:关机,-r:重启
  • 【halt】:关闭系统,等同于shutdown -h now 和 poweroff
  • 【reboot】:重启,等同于shutdown -r now

二、示例

  1. 10分钟后关机:shutdown -h 10
  2. 立即重启:shutdown -r now或者reboot
  3. 关机:halt

五、常用基本命令

5.1 帮助命令

5.1.1 man获得帮助信息

基本语法

man 【命令或配置文件】:获得帮助信息

Linux应知应会(一)

Linux应知应会(一)

  1. 显示说明
NAME 命令的名称和单行描述
SYNOPSIS 怎样使用命令
DESCRIPTION 命令功能的深入讨论
EXAMPLES 示例
SEE ALSO 相关主题

    2. 数字说明(命令之后括号中的数字)

1 用户在shell环境中可以操作的命令或是可执行的文件
2 系统内核(Kernel)可以调用的函数
3 常用的函数或函数库
4 设备配置文件
5 配置文件的格式
6 游戏相关
7 linux网络协议和文件系统
8 系统管理员可以用的命令
9 和内核有关系的文件

5.1.2 help获得shell内置命令的帮助信息

基本语法

help 【命令】:获得shell内置命令的帮助信息

Linux应知应会(一)

5.1.3 常用快捷键

Ctrl+C 停止进程
Ctrl+L 清屏
Ctrl+Q 退出
Ctrl+ALT 虚拟机中linux和window切换
TAB 命令、目录补全
上下键 查找执行过的命令

5.2 文件目录类命令

5.2.1 pwd显示当前工作目录的绝对路径

基本语法

【pwd】:显示当前工作目录的绝对路径

Linux应知应会(一)

 5.2.2 ls 列出目录的内容

基本语法

ls【选项】【目录或是文件】

选项:

-a :全部的文件,连同隐藏文件一起列出来

-l :长数据串列出,包含文件的属性与权限等,每行列出的基本信息依次为:文件类型与权限、链接数、文件属主、文件属组、文件大小(用byte表示)、建立或最近修改的时间、名字。

Linux应知应会(一)

 5.2.3 mkdir创建一个新的目录

基本语法

mkdir 【-p】目录名称

选项:-p:创建多层目录

Linux应知应会(一)

 5.2.4 rmdir 删除一个空的目录

基本语法

rmdir 【目录名称】

Linux应知应会(一)

 

 5.2.5 touch创建空文件

基本语法

touch 【文件名称】

Linux应知应会(一)

 

 5.2.6 cd切换目录

基本语法

cd 绝对路径 进入指定目录
cd 相对路径 进入指定目录
cd~或cd 进入home家目录
cd - 回到上一次所在目录
cd .. 回到当前目录的上一级目录
cd -P 跳转到实际物理路径,而非快捷方式路径

Linux应知应会(一)

 

 5.2.7 cp复制文件或目录

基本语法

  • cp 【source】【dest】:复制source文件到dest
  • cp -r【sourceFolder】 【targetFolder】:递归复制整个文件夹

Linux应知应会(一)

 5.2.8 rm 移除文件或目录

基本语法

rm 【文件名】 删除文件
rm -r 【目录名】 递归删除目录
rm -rf【目录名】 强制递归删除目录
rm -rf * 删库跑路必备

Linux应知应会(一)

 

 Linux应知应会(一)

 

 5.2.9 mv移动文件与目录或重命名

基本语法

  • mv 【oldNameFolder】【newNameFolder】:重命名
  • mv 【movefile】 【targetFolder】:移动文件

Linux应知应会(一)

 

 5.2.10 cat查看文件内容

查看文件内容,从第一行开始显示。

基本语法

cat 【选项】【文件名】

选项:

-A 相当于-vET的整合,可列出一些特殊字符而不是空白
-b 列出行号,仅针对非空白行做行号显示,空白行不标行号
-E 将结尾的断行字节$显示出来
-n 列出行号,连同空白行也会有行号
-T 将【TAB】按键以^I显示出来
-v 列出一些看不出来的特殊字符

Linux应知应会(一)

 

 5.2.11 tac查看文件内容

查看文件内容,从最后一行开始显示,可以看出tac是cat的反写。

基本语法

tac 【选项参数】【文件名】

Linux应知应会(一)

 

 5.2.12 more查看文件内容

查看文件内容,一页一页的显示。

基本语法

more 【文件名】

Space空格键 向下翻一页
Enter回车键 向下翻一行
q 立刻离开more,不再显示内容
Ctrl+F 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号

Linux应知应会(一)

 

 5.2.13 less查看文件内容

less的作用于more十分相似,都可以用来浏览文字档案的内容,不同的是less允许使用【pageUp】和【pageDown】来回滚动。

基本语法

less 【文件名】

Space空格键 向下翻动一页
pageDown 向下翻动一页
pageUp 向上翻动一页
/【字串】 向下搜寻【字串】,n:向下查找,N:向上查找
?【字串】 向上搜寻【字串】,n:向上查找,N:向下查找
q 离开less程序

Linux应知应会(一)

 

 5.2.14 head查看文件内容

查看文件内容,只看前几行。

基本语法

head -n 【数字M】【文件名】:查看文件的前M行内容。

Linux应知应会(一)

 

 5.2.15 tail查看文件内容

查看文件内容,只看后几行。

基本语法

  • tail -n 【数字M】【文件名】:查看文件后M行内容。
  • tail -f 【文件名】:实时追踪该文件的所有更新。

Linux应知应会(一)

 

 5.2.16 重定向命令

基本语法

  • ls -l >文件名:列表的内容写入文件中(覆盖写)
  • ls -al >>文件名:列表的内容追加到文件的末尾

Linux应知应会(一)

 

 5.1.17 echo命令

基本语法

  • echo【要显示的内容】>>【文件名】:将要显示的内容存储到文件中
  • echo 【变量】:显示变量的值

Linux应知应会(一)

 

 5.2.18 In软链接

基本语法

In -s 【原文件】【目标文件】:给原文件创建一个软链接,软链接存放在目标文件目录

Linux应知应会(一)

 

 5.2.19 history查看命令历史

基本语法

【history】

Linux应知应会(一)

 

 

==================================================================================================================================================================

2020-07-14

22:36:00  

                  

Linux应知应会(一)

上一篇:Mac在已有jdk1.8的环境下安装jdk1.6


下一篇:shell学习