1. 目录结构

1.1 基本

Linux 系统介绍_linux

1.2 具体

/bin :Binary 的缩写,目录下存放Linux常用的指令 /sbin :super user,存放系统管理员使用的系统管理程序。 /home : 存放普通用户的目录,在LInux上每个用户都有一个自己目录,以用户名命名。 /root : 超级权限者(系统管理员)的主目录。 /lib :系统开机所需的基本动态连接共享库,类似于windows下的DLL文件。 /lost+fount : 一般为空,系统非法关机后,会存放数据源 /etc : 所有的系统管理所需要配置的文件和子目录 /usr : 用户的大部分应用程序和文件存放在此目录,类似windows的program Files目录。 /boot : 启动Linux的核心文件,包括链接文件及镜像文件 。 /proc : 虚拟目录,系统内存的映射,访问此目录来获取系统信息 /siv : service,存放服务启动后需要提取的数据。 /sys : 安装了Linux2.6内核中出现的一个文件系统。 /tmp : 存放临时文件。每隔10天系统会自动清理 /dev : 类似windows的设备管理器,把所有硬件用文件形式存储。 /media : linux会把识别的设备(U盘等)挂在到此目录下。 /mnt : 让用户临时挂载别的文件系统,如共享文件夹等。 /opt : 主机额外安装软件所摆放的目录,默认空。 /user/loacl : 给另外主机额外安装软件的安装目录,通过编译源码方式安装的程序。 /var : 存放不断扩充到文件,习惯将经常需改的目录放到此目录下,包括各种日志文件。 /selinux [security-enhanced linux] 360 : SELinux是一种安全子系统,它能控制程序只能访问特定文件。

2. vi和vim

LInux系统的内建vi文本编辑器 Vim具有程序编辑能力,可以看作vi的增强版。

2.1 vi、vim的三种常用模式

正常模式:

默认模式,此模式模式中,【上下左右】键移动光标,可以删除字符、行等操作,也可以复制粘贴。

插入模式:

“i,I,o,O,a,A,r,R”等任何一个字母按键后会进入编辑模式,一般按“i”。

命令模式:

此模式中,可以提供指令,完成读取、存储、替换、离开等操作,显示行号等操作也是在此模式中完成的。

三种模式的切换:

Linux 系统介绍_linux_02

2.2 常用快捷指令

指令

描述

#vim xxx

用vim编辑器打开指定文件。

yy

复制。正常模式下,输入**“nyy”复制n行,”p“**粘贴。

dd

删除。正常模式下,输入**“ndd”删除n**行。

G/gg

跳转,正常模式下,输入**“G”跳末尾,“gg”**跳头

/xx

查找,命令模式下,输入**”/xxx“,回车查找”xxx“单词,”n“**是查找下一个

:set nu/nonu

显示行号。命令模式下,**“set nu”显示行号;“set nonu”**取消行号显示。

n G

指定跳转。正常模式下,输入**“n G”跳转到第n**行。

3. 开关机及用户注销

命令行模式下

指令

描述

shutdown -h now

立即关机

shutdown -h n

b分钟后关机

shutdown -r now

立即重启

halt

等价于关机

reboot

重启系统

sync

把数据同步到磁盘

在关机或重启时,都应先执行 syn 指令,防止数据丢失。


4. 用户管理

命令行模式下

4.1 用户

指令

描述

useradd userName

增加用户

useradd -g groupName userName

在创建用户时就将用户放在指定已存在的组中

userdel userName

删除用户

userdel -r userName

连同家目录一起删除。

passwd userName

设置(修改)“xxx”用户的密码

su - userName

切换用户(高切低不需要密码)

exit

退回到切换之前的用户

id username

查询用户信息

4.2 组

指令

描述

groupadd groupName

创建组xxx

groupdel groupName

删除组

usermod -g groupName userName

切换组

useradd -g groupname username

创建用户并添加至指定组中

4.2.1 组文件

/etc/passwd user的配置文件,用于记录用户信息 行含义: 用户名:口令:用户标识号:注释性描述:主目录:登陆Shell [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5nbcS3Mr-1654484888435)(en-resource://database/967:1)]

/tec/shadow 口令配置文件 行含义: 登录名:加密口令:修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间: 标志

/etc/group group的配置文件,记录组的信息 行含义: 组名:口令:组标识号:组内用户列表 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A0yzVf2y-1654484888436)(en-resource://database/969:1)]

5. 实用指令

5.1 运行级别指令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EQTsOqtM-1654484888436)(en-resource://database/971:1)]

5.1.1 指令

命令行模式下:“init n”(n为运行级别代号012356)

5.1.2 找回root密码

  1. 思路:进入单用户模式.
  2. 引导时按下回车键
  3. 按键“e”.
  4. 第二行 按“e”
  5. 输入数字“1”.回车
  6. 输入“b”,此时进入到单用户模式
  7. passwd root,来重置root密码。

5.2 帮助指令

指令

描述

man xx

获取指令的帮助信息

help xxx

获取指令的帮助信息,"q"退出查看

5.3 文件目录类指令

指令

描述

pwd

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

5.3.1 ls

list :列出当前目录下的清单 ls 【参数】 【目录或文件】



ls -a

显示当前目录下的文件及目录,包括隐藏文件

ls -l

以列表方式显示

ls -h

显示有利于人看的文件

可组合使用


5.3.2 cd

change directory :用于切换目录 cd 【参数】 【目录】



cd 路径

进入到指定路径

cd ~

回到自己家目录

cd ..

回到上级目录

5.3.3 mkdir

make directory : 创建目录



mkdir dirName

创建目录

mkdir -p xxxx

创建多个目录

rmdir xxx

删除空目录

**rm -rf **xxx

删除非空目录

5.3.4 touch

创建空文件



touch xxx.yy

创建空文件

touch xxx.yy xxx.yy

创建多个文件

5.3.5 cp

copy :复制文件或目录



cp x1.yy XX/

复制文件x1.yy到XXX目录下

cp -r XX/ YY/

递归复制XXX目录到YYY目录,有相同文件时,按“y”确认覆盖

\cp -r XX/ YY/

默许覆盖

cp -p

保留源文件日期(不带p的话,会将文件的日期改为复制的时间)

5.3.6 rm

remove : 删除文件或目录 rm 【参数】 文件/目录




rm xxyy

删除文件


rm -r XX/

递归删除整个文件夹

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jfOG6HqA-1654484888437)(en-resource://database/973:1)]

rm -f xx

强制删除,无提示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6oCRI1UL-1654484888438)(en-resource://database/975:1)]

可以联合使用

5.3.7 mv

move :移动或重命名 文件或目录

||| |--|--|-| |mv xxx yyy |重命名文件或目录|[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LS2P35gy-1654484888439)(en-resource://database/977:1)]| |mv XX/x YY/ |移动文件或目录|[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7K7jy45Q-1654484888439)(en-resource://database/979:1)]| |mv -f|强制移动|

5.3.8 cat

以只读方式查看文件的内容 cat【参数】 文件名



cat -n xxx.yy

只读方式产看文件

cat -n xxx.yy | more

分页浏览

5.3.9 more

基于VI编辑器的文本过滤器,以全屏的方式展示文本内容。



more xxx.yy

查看文件内容

查看时快捷指令


指令

描述

空格键(space)

向下翻一页

Enter

向下翻一行

q

立刻退出查看器

Ctrl+F

向下滚一屏

Ctrl+B

向上滚一屏

=

输出当前行号

:f

输出文件名和行号

5.3.10 less

分屏产看文件内容,支持各种显示终端,根据显示加载内容,所以适用于大文件查看



less xx.yy

查看文件

查看时常用指令




空格键

向下翻一页

[Pagedoen]

向下翻一页

[Pageup]

向上翻一页

/xx

向下搜寻xx。n:向下查找;N:向上查找

?xx

向上搜寻xx。n:向上查找;N:向下查找

q

退出查看器

5.3.11 > / >>

&:输出重定向 &&:追加

|||| |-|-| |ls -l > file|将列表的内容写入(覆盖)文件,文件不存在则创建|>/>>| |cat file1 > file2|将文件1写入到文件2|>/>>| |echo "str" >> f|将字符"str"追加到文件中|>/>>|

5.3.12 echo

输出内容到控制台



echo $XXX

输出环境变量

echo str

输出字符串到控制台



5.3.13 head

显示文件开头部分的内容,默认前10行



head file

查看文件前10行的内容

head -n x file

显示文件前x行的内容



5.3.14 tail

显示文件尾部的内容,默认行数为10



tail flie

查看文件尾部10行的内容

**tail -n **x file

查看文件末尾x行的内容

tail -f file

追踪该文件的所有更新



5.3.15 ln (LN)

软连接、符号链接。类似windows中的快捷方式。存放链接其他文件的路径 In -s 【源文件或目录】 【软连接名】



In -s /xx/xxx name

为目录创建软连接

rm -rf name

删除软连接

5.3.16 history

查看已经执行过的历史指令



history

显示所有已经执行过的指令

history x

显示x个历史指令

!x

执行第x行指令

5.4 时间日期类指令

5.4.1 date

显示当前日期



date

显示当前时间

date +%Y

显示当前年份

date +%m

显示当前月份

date +%d

显示当前是哪一天

date "+%Y-%m-%d %H:%M:%S"

显示年月日时分秒

-d "..."

指定字符串为时间

+%s

输出时间戳

date -s“....”

设置系统时间



5.4.2 cal

查看日历



cal

查看日历

cal xxxx

查看xxxx年的日历

5.5 搜索查找类指令

5.5.1 find

从指定目录向下递归遍历查找各个子目录,输出所在目录 find 【搜索范围】 【参数】



find / -name file

按照指定的文件名查找文件,输出所在目录

find / -user user

查找属于指定用户的文件

find /** -size** + xxM

查找大于xxm的文件

find /** -size** xxK

查找等于xxk的文件

-atime n

过去n天内被读取过的文件

-amin n

过去n分钟内被读取过的文件

-cmin n

过去n分钟内被修改过的文件



5.5.2 locate

快速定位文件路径,利用事先建立好的系统中所有文件信息的locate数据库实现快速定位文件的路径。使用需定期更新locate数据库。第一次运行需使用updatedb指令建立locate数据库。



updatedb

创建locate数据库

locate file

定位指定文件并输出所在位置

5.5.3 grep及管道符“|”

grep:过滤查找 “|”:将前一个指令的处理结果传递给后边的指令



grep -n str

显示行号并查找str

grep -i str

不区分大小写查找str

5.6 压缩解压指令

5.6.1 gzip/gunzip

gzipu用于压缩文件。格式为 .gz gunzip用于解压文件

||| |-|-|-| |gzip fileName|压缩文件到当前目录,源文件会消失| |gunzip file|解压文件到指定目录,源文件删除|

5.6.2 zip/unzip

zip:压缩文件。格式为 .zip unzip:解压文件



zip -r xx.zip yyy

将yyy文件递归压缩为xx.zip文件

unzip -d /xxx/xxx

解压文件到指定目录

递归压缩是指将目录结构及要压缩的文件压缩


5.6.3 tar

tar打包指令,格式 ".tar.gz"。 tar 【参数】 打包的内容



-c

产生.tar打包文件

-v

显示详细信息

-f

指定压缩后的文件名

-z

打包的同时压缩

-x

解包.tar文件

-t

查看内容

||| |-|-|-| |tar -zcvf xx.tar.gz yyyy|将yyyy打包到当前目录并指定名字|[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sfFItndY-1654484888440)(en-resource://database/989:1)]| |tar -zxvf xx.tar.gz -C yyyy|将打包文件解包到指定目录|[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-koPmkkwj-1654484888441)(en-resource://database/991:1)]|

5.6.4 zcat

使用zcat命令,然后把标准输出 保存到文件即可。

例如: zcat pythontab.gz > pythontab.py 当然这个解决了解压到指定目录的需求。 zcat pythontab.gz > /home/test/aa/pythontab.py

6. 组管理和权限管理

在linux中每个用户都必须属于一个组,每个文件都有所有者,所在组,其他组的概念。

6.1 组管理

6.1.1 -所有者

一般为文件的创建者。




ls -ahl

查看文件的信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tVT9wwi9-1654484888442)(en-resource://database/993:1)]

chown user file

修改文件的所有者

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z9Io0YBr-1654484888442)(en-resource://database/995:1)]

6.1.2 -所在组

默认创建文件的用户所在的组

|||| |-|-| |ls -ahl|查看文件的信息| |chgrp group file|修改文件所在的组|

6.1.3 -其他组

文件所有者及所在组以外的组就是其他组。

6.2 权限管理

6.2.1 rwx权限

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BrlfxldS-1654484888443)(en-resource://database/997:1)]

作用到文件

r:可读(read),可以查看读取。
w:可写(write),可以修改,但不能删除,除非对文件所在的目录有写权限
x:可执行(execute),可以执行此文件

作用到目录

r:可读(read),可以查看读取,ls查看目录内容
w:可写(write),可以修改,目录内创建、删除、重命名目录文件。
x:可执行(execute),可以进入目录

可用数字表示为:r=4;w=2;x=1。

6.2.2 权限变更 -chmod

+-=变更权限 u:所有者 g:所在组 o:其他人 a:所有人(u、g、o的综合和)



chmod u=rwx,g=rx,o=x filename

给予文件指定的权限

chmod o+w filename

给文件的其他人写(w)的权限

chmod a-x filename

给文件的所有人减去执行(x)的权限。

通过数字变更权限r=4;w=2;x=1。 ”chmod u=rwx,g=rw,o=x"等价于 “chmod 751”

普通权限修改

等价的数字权限修改

描述

chmod u=rwx,g=rx,o=x filename

chmod 751

给予文件指定的权限

chmod o+w filename

chmod 753

给文件的其他人写(w)的权限

chmod a-x filename

chmod 311

给文件的所有人减去执行(x)的权限。

7. 任务调度

任务调度:是指系统在某个时间执行特定的命令或程序。 任务调度分类:1.系统工作;2.个别用户工作.

7.1 crontab

crontab 【选项】



-e

编辑crontab定时任务

-l

查询crontab任务

-r

删除当前用户所有的crontab任务

7.1.2 参数细节

5个占位符

|||| |-|-| |第一个**\|一小时中的第几分钟|0-59| |第二个 \|一天中的第几小时|0-23| |第三个 \|一月中的第几天|1-31| |第四个 \|一年中的第几月|1-12| |第五个 \***|一周中的星期几|0-7(0和7都是周日)|

特殊符号



\*

代表任意时间

代表不连续时间

-

代表连续的时间范围

\*/n

代表每隔多久执行一次

7.1.3 相关指令



crontab -e

编辑并启动任务调度

crontab -l

列出当前的任务调度

crontab -r

终止所有任务调度

service crond restart

重启任务调度

7.2 示例

每隔一分钟将日期追加到/home/mydate文件中。 步骤

  • 创建的脚本文件(shell文件)
  • 往文件中写入脚本指令*date >> /home/mydate
  • 给与.sh文件可执行权限chmod u=rwx
  • 编辑crontab定时任务*/1 * * * *

8. 磁盘分区和挂载

8.1 介绍

8.1.2 分区介绍

  • mbr分区
  1. 最多只支持四个主分区
  2. 系统只能安装在主分区
  3. 扩展区要占一个主分区
  4. MBR最大支持2TB,但兼容性较好
  • gtp分区
  1. 支持无限主分区(windows最多128个分区)
  2. 最大支持18EB的容量(1EB=1024PB,1PB=1024TB)
  3. windows7 64位以后支持gtp

8.1.3 Linux分区原理

  1. 无论几个分区,归根结底只有一个根目录。
  2. Linux采用了一种叫”载入“的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目录联系起来,这是要载入的一个分区将使它的储存空间在一个目录下获得。

8.1.4 硬盘说明

  1. Linux硬盘分为IDE和SCSI 硬盘,目前基本上使SCSI硬盘
  2. IDE。驱动器标识符“hdx~”

IDE

hdx~

hd

分区所在的设备类型,这里指IDE硬盘

x

表示盘号(a:基本盘;b:基本从属盘;c:辅助主盘;d:辅助从属盘)

~

前4个用1~4表示,从5开始就是逻辑分区

  1. SCSI。标识符“sdx~”,标识符含义同IDE

8.2 常用指令



lsblk

查看文件系统的属性

lsblk -f

查看系统分区和挂载情况

fdisk /dev/sdb

分区

mkfs -t ext4 /dev/sdb1

格式化磁盘,ext4是分区类型

mount /dev/sdbx /xxx

将sdbx挂载到指定目录

umount /dev/sdbx或/xxx

卸载



demo 给系统增加一个新硬盘,并挂载到/newdisk 步骤

  1. 虚拟机添加硬盘
  2. 分区 fdsik /dev/sdb



m

显示命令列表

p

显示磁盘分区

n

新增分区

d

删除分区

w

写入并退出

说明:n -> p -> 1 -> Enter -> Enter ->w


  1. 格式化磁盘 mkfs -t ext4 /dev/sdb1
  2. 挂载目录 mount /dev/sdb1 /newtisk
  3. 设置自动挂载:vim /etc/fstab,并添加分区信息。

8.3 磁盘情况查询

8.3.1 磁盘整体使用情况



df -lh

查询磁盘整体使用情况

8.3.2 磁盘指定目录占用

du 【选项】 /目录 查询目录占用情况,默认当前目录

选项

描述

-h

带计量单位

-s

指定目录占用大小汇总

-a

包含文件

-c

列出明细的同时汇总

**--max-depth=**x

子目录的深度x

扩展

-----------

wc -l

统计结果的数量

demo

  1. 统计/home文件夹下文件的个数 ls -l /home | grep "^-" | wc -l
  2. 统计/home文件夹下目录的个数 ls -l /home | grep "^d" | wc -l
  3. 统计/home文件夹下文件的个数,包括文件夹里的 ls -lR /home | grep "^-" |wc -l

9. 网络配置

常用指令



ipconfig

windows下查看网络配置

ifconfig

linux下查看网络配置

ping 网址

测试当前服务器是否可通讯

service network restart

重启网络服务

设置固定IP

vim /etc/sysconfig/network-scripts/ifcfg-eth0 ifcfg-eth0文件 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iR832JsM-1654484888444)(en-resource://database/1001:1)]

ifcfg-eth0文件说明

ifcfg-eth0

文件说明

DEVICE=eth0

接口名(设备、网卡)

HWADDR=00:0C:29:75:B0:84

MAC地址

TYPE=Ethernet

网络类型(通常是Ethement)

UUID=5d384089-3136-47de-ba5b-87cd0d8bdff4

随机id

ONBOOT=yes

系统启动时网络接口是否有效

NM_CONTROLLED=yes


BOOTPROTO=static

ip的配置方式(none/static/bootp/dhcpl)

IPADDR=192.168.14.128

ip地址

GATEWAY=xxxxx

网关

DNSI=xxxxx

域名解析器

10. 进程管理

10.1 进程指令

10.1.1 ps

指令

说明

ps -a

显示当前终端的所有信息

ps -u

按照用户显示进程信息

ps -x

显示进程后台运行的参数

ps -e

显示所有进程

ps -f

全格式显示

一般使用ps -aux,可以和grep及管道符使用。




ps -aux

结果说明

System

V展示风格

USER

用户名称

PID

进程号

%CPU

进程占用CPU的百分比

%MEM

进程占用物理内存的百分比

VSZ

进程占用的虚拟内存大小( 单位: KB)

RSS

进程占用的物理内存大小(单位: KB)

TT

终端名称,缩写.

STAT

进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等

STARTED

进程的启动时间

TIME

CPU时间,即进程使用CPU的总时间.

COMMAND

启动进程所用的命令和参数,如果过长会被截断显示

10.1.2 kill/killall

kill 【选项】 进程号;常用选项-9 killall 进程名称(支持通配符)



kill xxx

停止指定进程

kill -9 xxx

强制停止指定进程

killall xxx

停止xxx进程

10.1.3 pstree

pstree 【选项】 以更直观的来看进程信息

选项

描述

-p

显示进程的PID

-u

显示进程所属的用户

10.2 服务管理

10.2.1 service指令

service 服务名 【选项】 在CentOS7.0后,不再使用service,而是systemctl



start

启动服务

stop

停止服务

restart

重启服务

reload

重载服务

status

服务状态

这种设置只是临时生效,重启后还是回到之前的状态,要想永久生效需使用chkconfig指令。 windows可用telnet测试Linux的某个端口 telnet ip 端口号

10.2.2 查看服务

  • setup查看服务名
  • ls -l /etc/init.d/服务名

10.1.3 服务的运行级别

vi /etc/inittab 文件下查看或修改运行级别 运行级别 开机的流程 开机》BIOS》/boot》init进程1》查看inittab文件确定运行级别》运行对应服务

10.1.4 chkconfig

通过chkconfig指令给每个服务设置各个运行级别的自启动



chkconfig --list

查看所有的服务

chkconfig xxx --list

查看指定的服务

chkconfig --level x 服务名 on/off

设置服务名指定运行级别的自启动状态

chkconfig设置后,需重启才生效


10.3 动态监控进程

10.3.1 top

top指令与ps指令相似,区别在于top执行一段时间后可以更新正在运行的进程。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zMdMfUo9-1654484888445)(en-resource://database/1005:1)]


top 【选项】

选项

描述

-d 秒数

间隔几秒更新,默认3秒,可以在交互模式执行

-i

不显示任何闲置、僵死进程

-p

指定ID监控单个进程状态

交互指令

交互指令

描述

P

以cpu占用率排序,默认

M

以内存使用率排序

N

以PID排序

q

退出top

k

杀死指定进程

u

监控指定用户

10.3.2 netstat

netstat 【选项】



-an

按一定顺序排序输出

-p

显示正在调用的进程

11. RPM\YUM

11.1 rpm包管理

RedHat Package Manager。用于互联网下载包的打包及安装工具,具有.rpm扩展名的文件。类似windows下的setup.exe,通用格式。

11.1.1 rpm包名格式

名称-版本号.适用操作系统.rpm 例如:

firefox-45.0.1-1.el6.centos.x86_64.rpm
名称:firefox
版本号:-45.0.1-1
适用操作系统;el6.centos.x86_64,表示centos6.x的64位系统;i686、i386表示32位系统;noarch表示通用。

11.1.2 常用指令

查询指令

描述

rpm** -q** rpm包名

查询软件包是否安装

rpm -qa

查询已安装的rpm包

rpm** -qi** rpm包名

查询软件包的信息

rpm -ql rpm包名

查询包中的文件

epm -qf 文件路径

查询文件所属的rpm包

11.1.2.1 安装rpm

rmp **-ivh** rpm包路径安装指定rpm包 i:install:安装 v:verbose:提示 h:hash:进度条

11.1.2.2 卸载rpm

rmp -e rpm包名卸载指定包

说明: 如果其他软件和要卸载的软件包有依赖关系,则卸载时会产生错误信息”removing these packages would break dependencies:foo is needed by bar-1.0-1 “ 若想要强制删除,可以添加参数**--nodeps** rpm -e --nodeps xxx

11.2 yum

Shell前端软件包管理器,基于rpm包管理,能从服务器自动下载rpm包并安装,并自动处理依赖性关系,一次安装所有依赖的软件包。

11.2.1 相关指令



yum list

软件列表

yum istall xxx

安装指定rpm包