Linux(一)

118 阅读21分钟

Linux

概述

​ 是一种操作系统,Linux内核在开始是由林纳斯·托瓦兹写的。目前比较知名的发行版有Ubuntu,RedHat,CentOS等。

区别

WindowLinux
免费与收费收费免费或少许费用
安全性经常打补丁或者安装系统安全更新。但还是会中木马病毒相对Windows平台来说要更加安全
使用习惯普通用户基本上都是纯图形界面下操作使用,依靠鼠标和键盘完成一切操作,用户上手容易入门简单兼具图形界面操作和完全的命令行操作,可以只用键盘完成一切操作,新手入门比较困难,需要一些学习和知道,一旦熟练之后效率极高
软件与支持数量和质量的优势,不过大部分是收费软件。由微软官方提供支持和服务。开源自由软件,用户可以修改定制和在发布,由于基本免费没有资金支持,部分软件质量和体验欠缺。由全球所有的Linux开发者和自由软件社区提供支持。
可定制性封闭的,系统的可定制性很差开源,可定制化非常强
应用场景桌面操作系统主要使用的是windows支持百度,谷歌,淘宝等应用软件和服务的,是后台成千上万的Linux服务器主机。世界上大部分软件和服务都是运行在Linux之上的。

CentOS下载地址

网易镜像:mirrors.163.com/centos/7/is…

搜狐镜像:mirrors.sohu.com/centos/7/is…

网易镜像:mirrors.sohu.com/centos/7.5.…

使用前准备

在虚拟机上使用Linux系统,可以避免一些麻烦

1.安装VMWare虚拟机.

2.安装CentOS【需要检查BIOS虚拟化支持,在任务管理器的CPU中查看虚拟化是否启用】。此处安装的是7,后边的文件结构也以7为例。

3.安装Xftp,作用是从本机发送文件到虚拟机中。

4.安装Xshell,实际写命令时不在虚拟机上,而是使用Xshell连接虚拟机来写命令行。

由于虚拟机启动时ip是不确定的,所以为了在使用Xftp和Xshell时更省力,要在虚拟机命令行中修改网络服务的设置,给它配置一个固定的ip【这个ip不能与主机ip相同】。

文件

Linux系统中 一切皆文件。

目录结构

Linux-1.png

  • /bin
    • 是Binary的缩写,这个目录存放最经常使用的命令
  • /sbin
    • s就是SuperUser的意思,这里存放的是系统管理原使用的系统管理程序。
  • /home
    • 存放普通用户的主目录,在Linux中每一个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
  • /root
    • 该目录为系统管理员,也称作超级权限者的用户主目录。
  • /lib
    • 系统开机所需要的最基本的动态连接共享库,起作用类似于Windows的DLL文件。几乎所有应用都要使用到这些共享库。
  • /lost+found
    • 这个目录一般情况是空的,当系统非法关机后,这里会存放一些文件。
  • /etc
    • 所有的系统管理所需要的配置文件和子目录。
  • /usr
    • 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
  • /boot
    • 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,我们的个人文件或安装的文件不要放在这里。
  • /proc
    • 这个目录时一个虚拟的目录,他是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
  • srv
    • service的缩写,该目录存放一些服务启动之后需要提取的数据。
  • /sys
    • 这是Linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs。
  • /tmp
    • 这个目录是用来存放一些临时文件的。
  • /dev
    • 类似于windows的设备管理器,把所有的硬件用文件的形式存储。
  • /media
    • Linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux会把识别的设备挂载到这个目录下。
  • /mnt
    • 系统剃光该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里面的内容了。
  • /opt
    • 这是给主机额外安装软件所摆放的目录。比如你安装了一个mysql数据库就可以放到这个目录下。默认是空的。
  • /var
    • 这个目录中存放着不断扩充着的东西,我们习惯将那些经常修改的目录放在这个目录下。包括各种日志文件。
  • /selinux
    • SELinux是一种安全子系统,它能控制程序只能访问特定文件。

编辑模式

​ 使用vi或vim进入文件后,默认是一般模式。

​ 在一般模式中可以进行删除、复制、粘贴等动作,但是没有办法编辑文件内容。

​ 等到你按下『i, I, o, O, a, A』等任何一个字母之后才会进入编辑模式

​ 通常在Linux中,按下这些按键时,在画面的左下方会出现『INSERT或 REPLACE』的字样,此时才可以进行编辑。而如果要回到一般模式时, 则必须要按下『Esc』这个按键即可退出编辑模式

操作
进入编辑模式i, I, o, O, a, A
退出编辑模式Esc

命令模式

​ 在一般模式中,输入**: / ?**中任何一个按钮,就可以将光标移动到最底下的那一行。在这个模式中,可以提供搜寻当前资料的动作,而读取、存盘、大量取代字符、离开vi、显示行号的动作都是在这个模式中达成的。

注意:一定要退出编辑模式。

基本语法

命令功能
:w保存
:q退出
:!强制执行
: %s/old字符/new字符批量替换
/ 要查找的词n 查找下一个,N 往上查找
? 要查找的词n是查找上一个,N是往下查找
:set nu显示行号
:set nonu关闭行号
ZZ(shift+zz) :nohl没有修改文件直接退出,如果修改了文件保存后退 去除高亮显示
强制保存退出:wq!

网络配置和系统管理操作

1查看网络ip和网关

①查看虚拟网络编辑器

②修改IP地址

找到NAT模式->修改子网

③查看网关【NAT设置】

网关改为192.168.6.2

2配置网络ip地址

①ifconfig配置网络接口

  1. 基本语法 查看当前网络ip ifconfig

②修改Ip地址【如果是centOS8语法会有不同】

  1. [root@hadoop100 桌面]#vim /etc/sysconfig/network-scripts/ifcfg-ens33
    
  2. 修改为以下选项

    #IP的配置方法[none|static|bootp|dhcp](引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议)
    BOOTPROTO=static 
         
    #IP地址
    IPADDR=192.168.6.100   
    #网关  
    GATEWAY=192.168.6.2      
    #域名解析器
    DNS1=192.168.6.2
    
    

    BOOTPROTO修改static

    ONBOOT修改为yes

    修改后,esc进入一般模式

    输入:wq 保存退出

  3. 执行systemctl restart network命令

  4. 如果报错,reboot,重启虚拟机

  5. 修改windows的VMnet8网卡信息(也可以选择自动获取)

③ping 测试主机之间网络连通性

基本语法 -【ping 目的主机】

3.主机名

语法

本机主机名-hostname

修改主机名-vim /etc/hostname

修改后需要重启设备

4 .服务管理

基本语法(CentOS 7)

systemctl start 服务名 (功能描述:开启服务)

systemctl stop 服务名 (功能描述:关闭服务)

systemctl restart 服务名 (功能描述:重新启动服务)

systemctl status 服务名 (功能描述:查看服务状态)

systemctl --type service (功能描述:查看正在运行的服务)

自启动配置(CentOS 7)

systemctl list-unit-files (功能描述:查看所有服务器自启配置)

systemctl disable 服务名 (功能描述:关掉指定服务的自动启动)

systemctl enable 服务名 (功能描述:开启指定服务的自动启动)

systemctl is-enabled 服务名(功能描述:查看服务开机启动状态)

关机重启

​ 在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。

正确的关机流程为:

sync>shutdown>reboot>poweroff

基本语法

(1)sync (功能描述:将数据由内存同步到硬盘中)

(2)poweroff (功能描述:关闭系统,等同于shutdown -h now)

(3)reboot (功能描述:就是重启,等同于 shutdown -r now)

(4)shutdown [选项] 时间

shutdown的选项

选项功能
-h-h=halt关机
-r-r=reboot重启

参数

参数功能
now立刻关机
时间等待多久后关机(时间单位是分钟)

5 克隆虚拟机

步骤:

  1. 关闭要被克隆的虚拟机
  2. 找到克隆选项
  3. 选择创建完整克隆
  4. 设置克隆的虚拟机名称和存储过程
  5. 完成

注:完成克隆后,可以选择对克隆出来的虚拟机修改IP,主机名。如果执行了,那么重启一遍这个虚拟机就能生效了。

远程登录

​ Linux系统中是通过SSH服务实现的远程登录功能,默认ssh服务端口号为 22。

工具

Xshell6。

步骤

  1. 新建
  2. 新建会话中输入虚拟机ip地址
  3. 点击连接
  4. 保存
  5. 接受并保存ssh连接
  6. 输入账号【root】密码
  7. 连接成功

解决Xshell连接虚拟机慢的问题:

  1. 修改/etc/ssh目录下的配置文件sshd_config。命令:vim /etc/ssh/sshd_config
  2. 在sshd_config文件的115行,将UseDNS前面的#去掉,将值改为no。115行: UseDNS no
  3. 重启虚拟机,以后再使用Xshell连接虚拟机将会很快连接上。

常用基本命令

man

man [命令或配置文件] (功能描述:获得帮助信息)

信息功能
NAME命令的名称和单行描述
SYNOPSIS怎样使用命令
DESCRIPTION命令功能的深入讨论
EXAMPLES怎样使用命令的例子
SEE ALSO相关主题(通常是手册页)

help

help 命令 (功能描述:获得shell内置命令的帮助信息)

快捷键

常用快捷键功能
ctrl + c停止进程
ctrl+l清屏;彻底清屏是:reset
ctrl + q退出
善于用tab键提示(更重要的是可以防止敲错)
上下键查找执行过的命令
ctrl +altlinux和Windows之间切换

文件目录类命令

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

语法

pwd (功能描述:显示当前工作目录的绝对路径)

ls 列出目录的内容

语法

ls [选项] [目录或是文件]

选项功能
-a全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
-l长数据串列出,包含文件的属性与权限等等数据;(常用)

显示说明

每行列出的信息依次是: 文件类型与权限 链接数 文件属主 文件属组 文件大小用byte来表示 建立或最近修改的时间 名字

cd切换目录

基本语法

​ cd [参数]

参数功能
cd 绝对路径切换路径
cd相对路径切换路径
cd ~或者cd回到自己的家目录
cd -回到上一次所在目录
cd ..回到当前目录的上一级目录
cd -P跳转到实际物理路径,而非快捷方式路径

mkdir 创建一个新的目录

基本语法

​ mkdir [选项] 要创建的目录

选项功能
-p创建多层目录

rmdir 删除一个空的目录

基本语法

​ rmdir 要删除的空目录

touch 创建空文件

基本语法

​ touch 文件名称

cp 复制文件或目录

基本语法

cp [选项] source dest (功能描述:复制source文件到dest)

选项功能
-r递归复制整个文件夹

参数说明

参数功能
source源文件
dest目标文件

强制覆盖不提示的方法:\cp

rm 移除文件或目录

基本语法

rm [选项] deleteFile (功能描述:递归删除目录中所有内容)

选项功能
-r递归删除目录中所有内容
-f强制执行删除操作,而不提示用于进行确认。
-v显示指令的详细执行过程

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

基本语法

​ (1)mv oldNameFile newNameFile (功能描述:重命名)

​ (2)mv /temp/movefile /targetFolder (功能描述:移动文件)

cat 查看文件内容

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

基本语法

​ cat [选项] 要查看的文件

选项功能描述
-n显示所有行的行号,包括空行。

cat一般查看比较小的文件,一屏幕能显示全的

more 文件内容分屏查看器

基本语法

​ more 要查看的文件

操作功能说明
空白键 (space)代表向下翻一页;
Enter代表向下翻『一行』;
q代表立刻离开 more ,不再显示该文件内容。
Ctrl+F向下滚动一屏
Ctrl+B返回上一屏
=输出当前行的行号
:f输出文件名和当前行的行号

less 分屏显示文件内容

​ less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率

基本语法

​ less 要查看的文件

操作功能说明
空白键向下翻动一页;
[pagedown]向下翻动一页
[pageup]向上翻动一页;
/字串向下搜寻『字串』的功能;n:向下查找;N:向上查找;
?字串向上搜寻『字串』的功能;n:向上查找;N:向下查找;
q离开 less 这个程序;

echo

echo输出内容到控制台

基本语法

​ echo [选项] [输出内容]

选项:

​ -e: 支持反斜线控制的字符转换

控制字符作用
\输出\本身
\n换行符
\t制表符,也就是Tab键

tail 输出文件尾部内容

​ tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。

基本语法

(1)tail 文件 (功能描述:查看文件后10行内容)

(2)tail -n 5 文件 (功能描述:查看文件后5行内容,5可以是任意行数)

(3)tail -f 文件 (功能描述:实时追踪该文档的所有更新)

选项功能
-n<行数>输出文件尾部n行内容
-f显示文件最新追加的内容,监视文件变化

> 覆盖 和 >> 追加

基本语法

(1)ll >文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))

(2)ll >>文件 (功能描述:列表的内容追加到文件aa.txt的末尾)

(3)cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)

(4)echo “内容” >> 文件

用户管理命令

useradd 添加新用户

基本语法

​ useradd 用户名 (功能描述:添加新用户)

​ useradd -g 组名 用户名 (功能描述:添加新用户到某个组)

passwd 设置用户密码

基本语法

​ passwd 用户名 (功能描述:设置用户密码)

cat /etc/passwd 查看创建了哪些用户

su 切换用户

基本语法

su 用户名称 (功能描述:切换用户,只能获得用户的执行权限,不能获得环境变量)

su - 用户名称 (功能描述:切换到用户并获得该用户的环境变量及执行权限)

userdel 删除用户

基本语法

​ (1)userdel 用户名 (功能描述:删除用户但保存用户主目录)

(2)userdel -r 用户名 (功能描述:用户和用户主目录,都删除)

sudo 设置普通用户具有root权限

  1. 添加zhangsan用户,并对其设置密码。

    [root@hadoop101 ~]#useradd zhangsan
    [root@hadoop101 ~]#passwd zhangsan
    
    
  2. 修改配置文件

    [root@hadoop101 ~]#vi /etc/sudoers
    

    修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下所示:

    ## Allow root to run any commands anywhere
    root    ALL=(ALL)     ALL
    atguigu   ALL=(ALL)     ALL
    
    

文件权限类

文件属性

​ Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组。

使用从左到右的10个字符表示,下标从0开始。

如果没有权限,就会出现减号[ - ]而已。从左至右用0-9这些数字来表示:

(1)0首位表示类型

在Linux中第一个字符代表这个文件是目录、文件或链接文件等等

- 代表文件

d 代表目录

l 链接文档(link file);

(2)第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User

(3)第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group

(4)第7-9位确定其他用户拥有该文件的权限 ---Other

chmod 改变权限

基本语法

第一种方式变更权限

​ chmod [{ugoa}{+-=}{rwx}] 文件或目录

第二种方式变更权限

​ chmod [mode=421 ] [文件或目录]

chown 改变所有者

基本语法

chown [选项] [最终用户] [文件或目录] (功能描述:改变文件或者目录的所有者)

选项功能
-R递归操作

搜索查找类

find 查找文件或者目录

​ find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。

基本语法

​ find [搜索范围] [选项]

选项功能
-name<查询方式>按照指定的文件名查找模式查找文件
-user<用户名>查找属于指定用户名所有文件
-size<文件大小>按照指定的文件大小查找文件。

grep 过滤查找及“|”管道符

管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理

基本语法

grep 选项 查找内容 源文件

选项功能
-n显示匹配行及行号。

which 查找命令

查找命令在哪一个目录下

基本语法

which 命令

压缩解压类

gzip/gunzip 压缩

基本语法

gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz文件)

gunzip 文件**.gz** (功能描述:解压缩文件命令)

(1)只能压缩文件不能压缩目录

(2)不保留原来的文件

zip/unzip 压缩

基本语法

zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)

unzip [选项] XXX**.zip** (功能描述:解压缩文件)

zip选项功能
-r压缩目录
unzip选项功能
-d<目录>指定解压后文件的存放目录

tar 打包

基本语法

tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的文件格式**.tar.gz**)

选项功能
-z打包同时压缩
-c产生**.tar****打包文件**
-v显示详细信息
-f指定压缩后的文件名
-x解包**.tar****文件**

磁盘分区类

df 查看磁盘空间使用情况

基本语法

​ df 选项 (功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况)

选项功能
-h以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;

fdisk 查看分区

基本语法

​ fdisk -l (功能描述:查看磁盘分区详情)

选项功能
-l显示所有硬盘的分区列表

mount/umount 挂载/卸载

对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根目录、一个独立且唯一的文件结构。

Linux中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做“挂载”的处理方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,要载入的那个分区将使它的存储空间在这个目录下获得。

基本语法

mount [-t vfstype] [-o options] device dir (功能描述:挂载设备)

umount 设备文件名或挂载点 (功能描述:卸载设备)

参数功能
-t vfstype指定文件系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有: 光盘或光盘镜像:iso9660 DOS fat16文件系统:msdos Windows 9x fat32文件系统:vfat Windows NT ntfs文件系统:ntfs Mount Windows文件网络共享:smbfs UNIX(LINUX) 文件网络共享:nfs
-o options主要用来描述设备或档案的挂接方式。常用的参数有: loop:用来把一个文件当成硬盘分区挂接上系统 ro:采用只读方式挂接设备 rw:采用读写方式挂接设备   iocharset:指定访问文件系统所用字符集
device要挂接(mount)的设备
dir设备在系统上的挂接点(mount point)

进程线程类

ps 查看当前系统进程状态

基本语法

ps -aux | grep xxx (功能描述:查看系统中所有进程)

ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)

选项功能
-a选择所有进程
-u显示所有用户的所有进程
-x显示没有终端的进程

PID:进程ID

PPID:父进程ID

如果想查看进程的CPU占用率和内存占用率,可以使用aux;

如果想查看进程的父进程ID可以使用ef;

kill 终止进程

基本语法

​ kill [选项] 进程号 (功能描述:通过进程号杀死进程)

​ killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)

选项功能
-9表示强迫进程立即停止

crond 系统定时任务

crond 服务管理

1 重新启动crond服务

systemctl restart crond

2 定时任务设置

crontab [选项]

选项功能
-e编辑crontab定时任务
-l查询crontab任务
-r删除当前用户所有的crontab任务

软件包管理

RPM查询命令(rpm -qa)

基本语法

rpm -qa (功能描述:查询所安装的所有rpm软件包)

由于软件包比较多,一般都会采取过滤。rpm -qa | grep rpm软件包

RPM卸载命令(rpm -e)

rpm -e RPM软件包

rpm -e --nodeps 软件包

选项功能
-e卸载软件包
--nodeps卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作了。

RPM安装命令

rpm -ivh RPM包全名

选项功能
-i-i=install,安装
-v-v=verbose,显示详细信息
-h-h=hash,进度条
--nodeps--nodeps,不检测依赖进度

YUM仓库配置

​ YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

类似于java开发中的maven工具,可以从镜像网站上下载应用程序,并直接安装。

YUM的常用命令

yum [选项] [参数]

选项功能
-y对所有提问都回答“yes”
参数功能
install安装rpm软件包
update更新rpm软件包
check-update检查是否有可用的更新rpm软件包
remove删除指定的rpm软件包
list显示软件包信息
clean清理yum过期的缓存
deplist显示yum软件包的所有依赖关系