Linux简单介绍

Linux的目录结构

/:根目录

/bin:存放着最常使用的命令

/usr/bin:同上

/usr/local/bin:同上

/sbin:存放系统管理员使用的系统管理程序

/usr/sbin:同上

/usr/local/sbin:同上

/home:存放普通用户的主目录

/root:系统管理员用户主目录

/lib:系统开机所需要的最基本的动态链接共享库,几乎所有的应用程序都需要用到这些共享库

/lost+found:一般为空,系统非法关机后,这里就会保存一些文件

/etc:所有系统管理需要的配置文件和子目录

/usr:存放用户很多应用程序和文件

/boot:存放Linux系统开机引导文件

/proc:这是一个虚拟目录,它是系统内存的映射,访问这个目录来获取系统信息

/srv:存放一些服务启动后需要提取的数据

/sys:该目录下安装2.6内核中新出现的一个文件系统sysfs

/temp:存放一些临时文件

/dev:硬件转文件形式存储位置

/media:系统自动识别设备,如U盘、光驱,挂载位置

/mnt:方便用户临时挂载别的文件系统

/opt:主机额外安装软件所存放的位置

/usr/local:另一个主机额外安装软件所安装的目录,一般是通过编译源码的方式安装的程序

/var:这个目录存放不断扩充的东西,习惯将经常被修改的目录放在这个目录下,也包括各种日志文件

/selinux:安全子系统,它控制程序只能访问特定文件

关机&重启操作

shutdown -h now:立即关机

shutdown -h 1:表示 1 分钟后关机

shutdown -r now:立即重启

halt:关机

poweroff:关机

reboot:重启系统

sync:把内存数据同步到磁盘上

当我们关机或重启前,都应该先执行一下sync命令,把内存的数据写入磁盘,放置数据丢失!

用户登录和注销

logout:注销(退出)当前用户

logout注销指令在图形界面下运行无效,在运行级别 3 下有效

用户管理

Linux用户至少要属于一个组,也可以属于多个组。

添加用户

useradd [选项] 用户名

选项:

-d:指定用户家目录位置

-g:指定用户所属的用户组

例子

  • 在系统中创建xm用户
useradd xm
  1. 在系统中创建了一个xm的用户
  2. 当没有指定新建用户的所属组时,系统会默认创建一个和用户名同名的组,并把该用户放到这个组里面。
  3. /home目录下会自动生成xm文件夹

指定&修改密码

passwd 用户名

删除用户

userdel [选项] 用户名

选项:

-r:连带删除用户的家目录

例子

  • 删除用户xm,但保留其家目录
userdel xm
  • 删除用户xm,并且一并删除其家目录
userdel -r xm

在实际开发中,删除用户时,一般不会把用户的家目录删除掉。

查询用户信息

id 用户名

image-20210617113636960

切换用户

su - 切换用户名

exit:返回到原来的用户

su 用户名只是简单的切换用户,su - 用户名会自动跳转到切换后用户的家目录

查看当前是哪个用户

whoami

用户组

增加组

groupadd 组名

删除组

groupdel 组名

修改用户组

usermod -g 用户组 用户名

修改用户登录的初试目录

usermod -d 目录名 用户名

用户和组的相关文件

  1. /etc/passwd文件

    用户的配置文件,记录用户的各种信息

    image-20210617120721279

    每行含义

用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录shell
  1. /etc/shadow文件

    口令配置文件

    image-20210617120817070

    每行含义

登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
  1. /etc/group文件

    组配置文件,记录Linux包含组的信息

    image-20210617120852452

    每行含义

组名:口令:组标识号:组内用户列表

实用指令

Linux中的7个运行级别

  • 运行级别0:关机
  • 运行级别1:单用户【找回丢失密码】
  • 运行级别2:多用户状态无网络服务
  • 运行级别3:多用户状态有网络服务
  • 运行级别4:系统未使用,保留给用户
  • 运行级别5:图形界面
  • 运行级别6:系统重启

系统运行级别配置文件位置:/etc/inittab

切换到指定运行级别

init 运行级别号

帮助指令

  1. man [命令或者配置文件]
  2. help 命令

文件目录类

  1. pwd

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

  2. ls [选项] 目录或者文件名

    常用选项

    -a:显示当前目录中所有的文件和目录,包括隐藏的文件

    -l:以列表方式显示信息

  3. cd 目录位置

    切换目录

  4. mkdir [选项] 要创建的目录

    常用选项

    -p:创建多级目录

  5. rmdir [选项] 要删除的空目录

    此命令只能删除空目录

  6. touch 文件名称

    创建空文件

  7. cp [选项] 资源 位置

    拷贝文件到指定目录

    常用选项

    -r:递归赋值整个文件夹

    \cp指令,强制覆盖文件

  8. rm [选项] 要删除的文件或目录

    常用选项

    -r:递归删除整个文件夹

    -f:强制删除不提示

  9. mv 原文件 目标位置

    移动文件与目录或重命名

  10. cat [选项] 要查看的文件

    查看文件内容,只读不改

    常用选项

    -n:显示行号

    cat指令通常会和more指令结合使用

    cat -n /etc/profile | more
    
  11. more 要查看的文件

    以全屏的方式按页显示文本内容

    操作方式

    操作功能说明
    空格键(space)向下翻一页
    回车键(enter)向下翻一行
    q退出more,不再显示文件内容
    Ctrl + F向下滚动一屏
    Ctrl + B返回上一屏
    =输出当前行的行号
    :f输出文件名和当前行行号
  12. less 要查看的文件

    以全屏的方式显示文本内容,但是功能上比more要强大,less在显示文件时,不是一次性将整个文件加载后再显示,而是根据显示需要加载内容,对于显示大文件具有较高的效率

    操作方式

    操作功能说明
    空格键(space)向下翻动一页
    PageDown向下翻动一页
    PageUp向上翻动一页
    /子串向下搜寻【子串】功能:n:向下查找;N:向上查找
    ?子串向上搜寻【子串】功能:n:向下查找;N:向上查找
    q退出less
  13. >&>>

    >:输出重定向,会覆盖掉原先的内容

    >>:追加,将内容追加到文件的末尾

    基本使用

    ls -l > 文件	# 列表的内容写入到文件中(覆盖写)
    ls -la >> 文件	# 列表内容追加到文件末尾
    cat 文件1 > 文件2	# 将文件1的内容覆盖到文件2
    echo "内容" >> 文件	# 将内容追加到文件中
    
  14. echo [选项] 内容

    输出内容到控制台

  15. head [选项] 文件

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

    常用选项

    -n:显示文件开头特定行数

  16. tail [选项] 文件

    输出文件尾部的内容,默认显示后10行内容

    常用选项

    -n:显示文件结尾特定行数

    -f实时监控追踪文件中所有内容的更新

  17. ln

    • 软链接

      ln -s [原文件或目录] [软链接名]:创建软链接

      rm -rf 软链接名:删除软链接,软链接名后不要加/

      当我们使用pwd时,显示的还是软链接的目录位置

  18. history

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

    history 10:查看最近执行过的10条指令

    !18:直接执行历史记录中编号为18的这条指令

时间日期类

  1. date

    • date:显示当前时间
    • date "%Y":显示当前年份
    • date "+%m":显示当前月份
    • date "+%d":显示当前是哪一天
    • date "+%H":显示当前小时
    • date "+%M":显示当前分钟
    • date "+%S":显示当前秒数

    显示日期时分秒

    • date -s 字符串时间:设置系统日期时间

      date -s "2020-12-12 11:32:12"	# 设置系统时间为2020-12-12 11:32:12
      
  2. cal

    显示当前月份日历

    cal 2020:显示2020年一整年的日历

搜索查找类

  1. find [搜索范围] [选项]

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

    选项说明

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

    查找整个Linux系统下大于20M的文件?

    find / -size +20M	# +表大于、-表小于
    
  2. locate 搜索文件

    此指令可以快速的定位文件路径。利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。

    由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库

    若没有此指令则需安装mlocate!

  3. grep&管道符|

    grep过滤查找,|表示将前一个命令和处理结果输出传递给后面的命令处理

    grep [选项] 查找内容 原文件

    常用选项

    -n:显示匹配行及行号

    -i:忽略字母大小写

    grep和管道符

压缩和解压类

  1. gzip&gunzip

    gzip 文件:压缩成.gz格式的压缩包

    当使用gzip对文件进行压缩后,不会保留原文件

    gunzip .gz压缩包:解压.gz格式的压缩包

  2. zip&unzip

    zip [选项] .zip压缩包名 文件或目录

    常用选项

    -r:递归压缩,及压缩目录

    压缩/home目录下所有文件为mypackage.zip

    zip -r mypackage.zip /home/
    

    unzip [选项] .zip压缩包

    常用选项

    -d:指定压缩后文件的存放目录

    解压mypackage.zip文件到/opt/temp目录下

    unzip -d /opt/temp mypackage.zip
    
  3. tar [选项] .tar.gz打包名 文件或目录

    选项功能
    -c产生.tar打包文件
    -v显示详细信息
    -f指定压缩后的文件名
    -z打包同时压缩
    -x解包.tar文件
    • 压缩多个文件,将/home目录下的a1.txta2.txt压缩成a.tar.gz

      tar -zcvf a.tar.gz a1.txt a2.txt
      
    • /home的文件夹,压缩成myhome.tar.gz

      tar -zcvf myhome.tar.gz /home/
      
    • a.tar.gz解压到当前目录

      tar -zxvf a.tar.gz
      
    • myhome.tar.gz解压到/opt/tmp2目录下

      tar -zxvf myhome.tar.gz -C /opt/tmp2
      

      指定解压路径时,必须保证此目录是存在的,否则会报错

组管理和权限管理

文件/目录有3个属性:

  1. 所有者
  2. 所属组
  3. 其它组

查看文件的所有者

ls -ahl

修改文件所有者

chown 用户名 文件名

文件所在组

当一个用户创建了一个文件后,默认这个文件所在的组就是该用户所在的组!

修改文件所在组

chgrp 组名 文件名

其它组

除文件的所有者和所在组的用户外,系统的其他用户都是文件的其它组。

权限基本介绍

-rw-rw-r--. 1 tato tato 139 617 21:45 hello.txt
drwxrwxr-x. 2 tato tato  33 617 22:03 aaa

对于上面的-rw-rw-r--这10个字符所表示的意思:

  • 第1个字符:文件的类型。

    在Linux系统中,有5种文件类型

    1. -:表示普通文件
    2. d:表示目录
    3. l:表示软链接
    4. c:表示字符设备,例如键盘,鼠标
    5. b:块文件,例如硬盘
  • 第2~4个字符:表示文件所有者拥有的权限

    权限说明:

    rwx分别占3个字符位置,若缺少其中的相应的权限则在相应的位置用-代替,其中

    如果rwx作用到文件上:

    r:读权限,可以读取查看

    w:写权限,可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录拥有写权限,才能删除该文件!

    x:可执行权限

    如果rwx作用到目录上:

    r:可以读取,使用ls查看目录内容

    w:可以修改,目录内创建、删除、重命名目录

    x:可以进入该目录

  • 第5~7个字符:表示文件所属组的用户拥有的权限

  • 第8~10个字符:表示文件其它组的用户拥有的权限

对于上面1这个数字所表示的意思:

如果是文件,那么表示此文件硬链接的数目;如果是目录,则表示该目录下的子目录的数目。

子目录:一个目录下的子目录要包含隐藏目录...,其中.

.:当前目录

..:上一级目录

对于上面第一个tato的含义:文件所有者

对于上面第二个tato的含义:文件所在组

对于上面139的含义:文件的大小,如果是目录则显示4096

对于上面6月 17 21:45的含义:文件最后修改的时间

对于上面hello.txt的含义:文件名

修改权限

chmod

通过chmod可以修改文件或者目录的权限,有两种方式:

  1. 第一种方式

    u:所有者;g:所在组;o:其它人;a:所有人(u g o的总和)

    使用方式:

    chmod u=rwx,g=rx,o=x 文件目录名
    chmod o+w 文件目录名
    chmod a-x 文件目录名
    
  2. 第二种方式

    规则:r = 4, w = 2, x = 1

    所以:chmod u=rwx,g=rx,o=x 目录文件名相当于chmod 751 目录文件名

修改文件所有者

chown

chown 新的所有者 文件目录名

chown 新的所有者:新的所在组 文件目录名

选项:

-R:如果是目录,则使目录中所有的目录和文件递归生效。

任务调度crontab

crontab [选项]

常用选项

-e编辑crontab定时任务
-I查询crontab任务
-r删除当前用户所有的crontab任务

如果只是简单的任务,可以不用写脚本,直接在crontab中加入任务即可。对于比较复杂的任务,需要写脚本(shell)。

设置一个进程调度文件/etc/crontab,要求每分钟执行ls -l /etc/ > /tmp/to.txt指令

  1. crontab -e
  2. 写入
*/1 * * * * ls -l /etc/ > /tmp/to.txt
  1. 当保存退出后,就生效了
  2. 在每一分钟都会自动的调用ls -l /etc/ > /tmp/to.txt

参数说明

项目含义范围
第一个*占位符一小时当中的第几分钟0~59
第二个*占位符一天当中的第几个小时0~23
第三个*占位符一个月当中的第几天1~31
第四个*占位符一年当中的第几个月1~12
第五个*占位符一周当中的星期几0~7(0和7都代表星期日)

特殊符号说明

特殊符号含义
*代表任何时间。比如第一个*就代表一小时中每分钟都执行一次的意思。
,代表不连续的时间。比如0 8,12,16 * * *,就代表在每天8点0分,12点0分,16点0分都执行一次指令。
-代表连续的时间范围。比如0 5 * * 1-6,代表在周一到周六的凌晨5点0分执行命令。
*/n代表每隔多久执行一次。比如*/10 * * * *,代表每隔10分钟就执行一遍指令。

crond相关指令

crontab -r:终止任务调度

crontab -l:列出当前有哪些任务调度

service crond restart:重启任务调度

Linux磁盘分区、挂载

分区

  1. mbr分区
    • 最多只支持四个主分区
    • 系统只能安装在主分区
    • 扩展分区要占一个主分区
    • mbr最大只支持2TB,但拥有最好的兼容性
  2. gtp分区
    • 支持无限多个主分区(但操作系统可能有限制,比如Windows下最多128个分区)
    • 最大支持18EB的大容量
    • Windows7 64位以后支持gtp

查看系统的分区和挂载情况

lsblk -f

系统分区和挂载

lsblk

image-20210618215459636

为系统添加一块硬盘

  1. 虚拟机添加硬盘

  2. 对硬盘进行分区

    fdisk /dev/sdb
    
  3. 对硬盘进行格式化

    mkfs -t ext4 /dev/sdb1
    
  4. 挂载

    mount /dev/sdb1 /home/newdisk
    

    此时,当系统重启后,挂载关系就会消失,因为这里只是临时挂载!

  5. 可以设置永久挂载

    vim /etc/fstab
    # 写入:
    /dev/sdb1    /home/newdisk     ext4    default    0 0
    # 立即生效
    mount -a
    

    此时,重启机器后依然保持着挂载!

/etc/fstab文件内容

/etc/fstab

磁盘情况查询

df -h

查询整个系统的磁盘使用情况

image-20210618221329164

du -h 目录

查询指定目录的磁盘占用情况

-s:指定目录占用大小汇总

-h:带计量单位

-a:含文件

--max-depth:子目录深度

-c:列出明细的同时,增加汇总值

image-20210618222014819

实用指令

  1. 统计/home文件夹下文件的个数

    ls -l | grep "^-" | wc -l
    
  2. 统计/home文件夹下目录的个数

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

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

    ls -lR | grep "^d" | wc -l
    
  5. 以树状显示目录结构

    tree
    

    没有则使用指令sudo yum install tree安装即可

网络配置

指定固定的ip地址

直接修改/etc/sysconfig/network-scripts/ifcfg-xxxx

image-20210618224429220

image-20210618224904534

image-20210618224948304

修改后重启服务即可

service network restart

进程管理

基本介绍

  1. 在Linux系统中,每个执行的程序(代码)都称为一个进程。每个进程都分配一个id号。
  2. 每个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如:www服务器。
  3. 每个进程都可能以两种方式存在:前台和后台。所谓前台进程就是用户目前的屏幕上可以进行操作的。后台进程则是实际在操作,但由于屏幕上无法看到的进程,通常使用后台方式执行。
  4. 一般系统服务都是以后台进程的方式存在,而且都会常驻在系统中,直到关机才结束。

显示系统执行的进程

ps

查看目前系统中有哪些进程正在执行,以及它们的执行情况。

常用选项

-a:显示当前终端的所有进程信息

-u:以用户的格式显示进程的信息

-x:显示后台进程运行的参数

image-20210618230440893

属性介绍

USER:用户名

PID:进程id

%CPU:占用cpu

%MEM:占用内存

vsz:使用的虚拟内存

RSS:使用的物理内存

TTY:使用的终端

STAT:进程的状态

S:睡眠

s:此进程是会话的先导进程

N:此进程拥有比普通进程优先级更低的优先级

R:正在运行

D:短期等待

T:被跟踪或者被停止

Z:僵死进程

START:启动时间

TIME:占用cpu总时间

COMMAND:进程执行时的命令行

查看进程的父进程

ps -ef

PPID:当前进程的父进程的id号

image-20210618231545533

终止进程

kill [选项] 进程号

通过进程号杀死进程

常用选项

-9:强迫进程立即停止

killall 进程名称

通过进程名称杀死进程,也支持通配符

使用案例

  • 踢掉某个非法登录用户Jack

    1. 使用ps -aux | grep sshd指令找到Jack远程连接的进程号xxxx
    2. kill xxxx
  • 终止远程登录服务sshd,在适当的时候再次重启sshd服务

    1. 使用ps -aux | grep sshd指令找到远程连接sshd的进程号xxxx

    2. kill xxxx

    3. service sshd start启动sshd服务

  • 终止多个gedit编辑器

    killall gedit

  • 强制杀掉一个终端

    1. ps -aux | grep bash找到对应的终端进程号

    2. kill -9 xxxx

进程树pstree

pstree [选项]

可以更加直观的看到进程信息

常用选项

-p:显示进程的PID

-u:显示进程的所属用户

image-20210619171906359

image-20210619172032306

image-20210619172104996

服务管理

服务(service)本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请求,比如MySQL,sshd,防火墙等。因此我们又称为守护进程。

service 服务名 [start | stop | restart | reload | status]

在CentOS7.0以后,不再使用service,而是使用systemctl

查看服务名

方式一:setup -> 系统服务

CentOS下可以使用nmtui指令

方式二:/etc/init.d/服务名称

服务运行级别

见上***Linux中的7个运行级别***

Linux系统开机流程

  1. 开机
  2. BIOS
  3. /boot
  4. init进程1
  5. 运行级别
  6. 运行级别对应的服务

chkconfig指令

通过chkconfig命令可以给每个服务的各个运行级别设置自启动/关闭

基本语法

chkconfig --list | grep xxx

查看服务

chkconfig 服务名 --list

查看某个具体的服务

chkconfig --level 5 服务名 on/off

设置服务在某个级别下的启动和关闭

动态监控进程

top [选项]

topps命令很相似。它们都是用来显示正在执行的进程。topps最大的不同在于top在执行一段时间可以更新正在运行的进程。

选项说明

选项功能
-d 秒数指定top每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令
-l使top不显示任何闲置或者僵死进程
-p通过指定监控进程ID来仅仅监控某个进程的状态

交互操作说明

操作功能
P以cpu使用频率排序,默认就是此项
M以内存的使用率排序
N以PID排序
q退出top

监控网络状态

netstat [选项]

选项说明

-an:按一定顺序排列输出

-p:显示哪个进程在调用

image-20210619181218389

RPM包和YUM包

RPM包的管理

介绍

一种用于互联网下载包的打包及安装工具,它包含在某些Linux发行版中。它生成具有.rpm扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写。

查询已安装的RPM列表

rpm -qa | grep xx

其它查询指令

rpm -qa:查询所有安装的rpm软件包

rpm -qa | more

rpm -qa | grep xx

rpm -q 软件包名:查询软件包是否安装

rpm -q firefox

rpm -qi 软件包名:查询软件包信息

rpm -ql 软件包名:查询软件包中的文件

rpm -qf 文件全路径名:查询文件所属的软件包

卸载RPM包

rpm -e RPM包名

rpm -e --nodeps RPM包名:忽略依赖,强制删除

安装RPM包

rpm -ivh RPM包全路径

选项含义

-i:安装

-v:提示

-h:进度条

YUM管理

YUM是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并一次性安装所有依赖软件包。

查询yum服务器是否有需要安装的软件

yum list | grep xxx软件列表

安装指定yum包

yum install xxx包
|

交互操作说明

操作功能
P以cpu使用频率排序,默认就是此项
M以内存的使用率排序
N以PID排序
q退出top

监控网络状态

netstat [选项]

选项说明

-an:按一定顺序排列输出

-p:显示哪个进程在调用

[外链图片转存中…(img-GSSQk85T-1636175643403)]

RPM包和YUM包

RPM包的管理

介绍

一种用于互联网下载包的打包及安装工具,它包含在某些Linux发行版中。它生成具有.rpm扩展名的文件。RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写。

查询已安装的RPM列表

rpm -qa | grep xx

其它查询指令

rpm -qa:查询所有安装的rpm软件包

rpm -qa | more

rpm -qa | grep xx

rpm -q 软件包名:查询软件包是否安装

rpm -q firefox

rpm -qi 软件包名:查询软件包信息

rpm -ql 软件包名:查询软件包中的文件

rpm -qf 文件全路径名:查询文件所属的软件包

卸载RPM包

rpm -e RPM包名

rpm -e --nodeps RPM包名:忽略依赖,强制删除

安装RPM包

rpm -ivh RPM包全路径

选项含义

-i:安装

-v:提示

-h:进度条

YUM管理

YUM是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并一次性安装所有依赖软件包。

查询yum服务器是否有需要安装的软件

yum list | grep xxx软件列表

安装指定yum包

yum install xxx包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值