• Linux学习笔记


    Linux学习笔记1:虚拟机的安装

    1、安装vm workspace pro12(傻瓜式安装即可)

    2、创建虚拟机

    1. 配置选典型
    2. 安装客户机操作系统,选择稍后安装
    3. 选择系统:这里是安装的Linux的centOS
    4. 默认20g就好,选择拆分为多个文件好管理
    5. 完成(如果不能打开配置文件,就以管理员身份运行vmware)

    3、还没有设置完成,还需要继续

    1. 点击编辑虚拟机
    2. 内存2g
    3. 处理器:2处理器2核
    4. 网络适配器:选择NAT模式
    • 面试题:连接模式的区别(图片)

    4、安装centOS

    说明:安装过程中,可以通过control+alt在虚拟机和本机之间来切换鼠标

    1. 点击左上角的虚拟机,点击设置,点击CD,选择镜像就ok
    2. 选择好镜像,点击开启此虚拟机
    3. 进入欢迎界面,默认选择第一个回车(Tab选择,enter确认)
    4. Disc Found要跳过,花费时间太久
    5. 开发中,要生成复杂密码:网上搜索密码生成工具(我的root账号用的密码是xian123451)
    6. 硬盘分区:自定义分区
      1. 先分/boot200M,然后再分swap,2g,剩余的都分配根分区/
      2. 之后格式化,将修改写入磁盘
    7. 制定系统软件、选择自定义(只需要选择基本系统里面的“兼容程序库”、和“基本”,应用程序里面的”互联网浏览器“,桌面里面除了第一个都选,语言选中文)剩余的根据自己需求自己安装
    8. 完成配置,安装CentOS(20min)
    9. 登录后,不必创建用户名和密码,后续会学习用户管理,现在先用root用户登录
    10. 现在是关闭kdump(减少内存占用),在开发中要开启

    5、终端和联网

    1. 打开终端:右键桌面,在终端中打开
    2. 联网:右上角计算机图标,system eth0

    6、安装vmtools

    1. 点击vm的虚拟机,安装vm
    2. 安装后重启centos
      1. 终端:reboot
    3. 这时就可以实现两个系统的复制粘贴操作了
    4. 添加共享文件夹
      1. vm的虚拟机,设置,选项,共享文件夹
      2. 在centos里面的mnt/hgfs/

    Linux学习笔记2:Linux目录总结

    1、有且只有一个根目录

    2、目录存放什么是规划好的,按规定来(一些重要的目录文件)

    目录名称 解释说明 存放内容
    /bin 即Binary,(/usr/bin、/usr/local/bin) 常用的命令
    /boot 存放启用Linux使用的核心文件,包括链接文件和镜像文件
    /home 存放普通用户的主目录
    /root 管理员用户的主目录
    /media linux把识别的设备挂载到这个目录
    /mnt 挂载别的文件系统,如d:/myshare
    /var 存放不断扩充的东西,经常修改的放在这里,如各种日志文件

    3、Linux中,一切皆文件

    4、Linux目录树

    Linux学习笔记3:vi和vim

    1、介绍

    1. 所有Linux系统,都会内建vi文本编辑器
    2. Vim编辑器,vi的增强版本。

    2、三种模式和相互转换

    1. 正常模式(用Vim打开文档时,直接进入正常模式),可以进行的操作如下:

      1. 快捷键
      2. 方向键移动光标
      3. 复制粘贴
      4. 删除字符、删除整行
    2. 编辑模式。可以进行的操作如下

      1. 可以输入内容
    3. 命令行模式。可以进行的操作如下

      1. 顾名思义,可以输入各种命令
    4. 相互转换

    3、常用快捷键

    1. 首先在终端中输入vim 文件名,如果文件存在就打开,不存在就创建。

    2. 拷贝粘贴:yy---拷贝当前行;nyy---拷贝当前向下n行;p---粘贴

    3. 删除:dd---删除当前行;ndd---删除当前向下n行

    4. 查找:/关键字+回车---查找,继续回车查找下一个关键字

    5. 行号::set nu---添加行号;:set nonu---取消行号

    6. 撤销:编辑模式下的输入了文字,esc到正常模式后,u---撤销

    7. 编辑/etc/profile文件

      1. [G]---到文档末行;[gg]---到首行
      2. 将光标移动到第n行---先设置行号,输入n后,shift+g

    Linux学习笔记4:关机、重启、用户登录注销

    1、关机

    1. shutdown -h now---->立即关机
    2. halt--->立即关机
    3. shutdown -h 1--->一分钟后关机

    2、重启

    1. reboot--->立即重启
    2. shutdown -r now--->立即重启

    3、注意:

    关机和重启前一半都需要执行sync--->将内存数据写入磁盘,放置数据丢失

    4、用户的登录与注销

    1. 正常情况下,尽量少用root用户登录,避免操作失误。
    2. 普通用户登录时,用su -用户名命令来切换成管理员身份
    3. logout--->注销用户

    Linux学习笔记5:用户管理

    1、Linux用户管理示意图

    • 说明:
      • Linux是一个多用户、多任务的操作系统
      • 先想管理员申请账号,才可以进入系统
      • 用户至少属于一个组

    2、添加用户

    1. useradd [选项] 用户名

      • 创建后就会自动创建和用户同名的家目录。例如我在命令行输入:useradd lzx,在/home目录中就会出现名为lzx的文件夹
      • 也可以通过useradd -d 指定目录 新用户名的方式,给新建用户指定家目录
      • 当用户登录后,所在的目录就是/home/和用户名同名的目录或指定目录
    2. 给用户设置密码:

      1. passwd 用户名+回车
      2. 工作中,密码尽量复杂,可以选择工具来生成

    2、删除用户

    1. userdel 用户名----删除用户
    2. userdel -r 用户名----删除用户,并删除家目录
    3. 一般保留家目录

    3、查询用户

    1. id 用户名
      • 用户存在就返回:uid=500(lzx) gid=500(lzx) 组=500(lzx)
        • uid:用户id
        • gid:组id
        • 组:组名
      • 用户不存在返回:无此用户

    4、切换用户

    1. 当前用户权限不够时,可以通过su - 用户名来切换用户
    2. 例如
      1. 从root用户切换到lzx--->su - lzx(因为是高权限用户到低权限用户,所以不需要输入密码)
      2. 这是我想cd到/root是没有权限的
      3. 要想退回到root用户,只需exit
    3. 看到前是哪个用户:who am iwhoami

    5、用户组

    1. groupadd 组名----增加一个组
    2. groupdel 组名----删除一个组
    3. useradd -g 用户组 用户名----增加用户时,直接指定一个组
    4. usermod -g 用户组 用户名----修改用户组

    6、用户和组的相关文件

    ①、/etc/passwd文件

    1. 用户的配置文件,记录用户的信息
    2. 打开以后找到的内容:lzx:x:500:500::/home/lzx:/bin/bas
    3. 含义:用户名:口令:用户id:组id:注释性描述:主目录:登录shell

    ②、/etc/group文件

    1. 组配置文件,记录组的信息
    2. 打开以后找到的内容:lzx:x:500:
    3. 含义:组名:口令:组id:组内用户列表

    ③、/etc/shadow文件

    Linux学习笔记6:实用指令

    一、指定运行级别

    运行级别 说明
    0 关机
    1 单用户(可以用来找回密码)
    2 多用户状态,没有网络服务
    3 多用户状态、有网络,命令行形式
    4 系统未使用,保留给用户
    5 图形界面
    6 重启系统
    • 要修改运行级别可以修改/etc/inittab文件中的id:5:initdefault中的数字
    • 操作题
      • 设置运行级别,使得Linux运行后进入命令行界面
        • vim /etc/inittab
        • id:5:initdefault中的5改成3
      • 找回root密码
      • Linux开启后就关机,就重启,改怎么办?

    二、帮助指令

    1、man

    • 用法:man 命令或配置文件
    • 例如:查看ls命令的说明---- man ls

    2、help

    • 用法: help 命令
    • 例如,查看cd命令的说明--- help cd

    3、面向百度更直接

    三、文件目录类

    1、pwd

    1. 含义:print working directory(打印当前工作目录的绝对路径)
    2. 用法:直接输入 pwd

    2、ls

    1. 含义:list files
    2. 用法:
      1. ls [选项]:显示当前目录的文件和文件夹
      2. ls [选项] 路径1 :显示路径1的文件和文件夹
    3. 常用的选项有:
      1. -l,显示所有,包括隐藏的
      2. -a,以列表的形式显示

    3、cd

    1. 含义:change directory
    2. 用法:cd 绝对路径或相对路径
    3. 其他常用
      1. cdcd~:回到家目录
      2. cd..回到上一级目录

    4、mkdir

    1. 含义:make directory(创建目录)
    2. 用法:mkdir[选项] 要创建的目录
    3. 常用选项:-p 创建多及目录
    4. 实例:
      1. 创建一级目录:mkdir /home/hello1
      2. 创建多级目录:mkdir -p /home/hello2/aaa1

    5、rmdir

    1. 含义:remove directory
    2. 用法:rmdir 要删除的空目录
    3. 注意:如果是删除非空目录:rm -rf 要删除的目录

    6、touch

    1. 含义:创建 空文件
    2. 语法:
      1. touch 文件名称,创建一个
      2. touch 文件名称1 文件名称2创建多个

    7、copy

    1. 含义:copy
    2. 用法:cp [选项] source dest(cp 文件source到文件夹dest下,经常使用相对路径)
    3. 常用选项:-r:递归复制整个文件夹
      1. 强制覆盖不提示的方法:cp
    4. 这里发现了一个细节:对于文件夹,直接用名字是可以的,但是老师习惯在文件夹后面加/,这样可以很好的和文件区分开。

    8、rm

    1. 含义:remove,删除文件或目录
    2. 语法:rm [选项] 要删除的文件或目录
    3. 常用选项
      1. -r,递归删除整个文件夹
      2. -f,强制删除不提示
      3. 可以组合式用,rm -rf 文件夹

    9、mv

    1. 含义:move,移动文件或目录,引申功能为:重命名
    2. 语法:
      1. mv 要移动的文件 目标路径,移动
      2. mv 旧文件名 新文件名,重命名,实质也是移动

    10、cat(只能浏览

    1. 含义
    2. 用法:cat [选项] 要查看的文件
    3. 常用选项
      1. -n:显示行号
    4. 实例
      1. 打开/etc/profile文件,并显示行号
    5. 细节:为方便浏览,一般会带上管道命令:| more

    11、more

    1. 全屏的方式显示文本文件的内容。(加载整个文件)

    2. 用法:more 要查看的文件

    3. 快捷键

      快捷键 说明
      space 向下翻页
      enter 向下一行
      q 退出
      control+f 向下滚动一屏
      control+b 返回上一屏
      = 输出当前行的行号
      :f 输出文件名和当前行的行号

    12、less

    1. 分屏的方式显示文本文件的内容(加载文件的一部分,随时加载)

    2. 语法:less 要查看的文件

    3. 快捷键

      快捷键 说明
      space 向下翻页
      pageUp 向上翻页
      pageDown 向下翻页
      /字符串 向下搜索,n是向下查找,N是向上查找
      ?字符串 向上搜索,n是向上查找,N是向下查找
      q 退出
    4. 适合显示大文件,效率高

    13、echo

    1. 含义:echo(回声,反射)
    2. 语法:echo 输出内容
    3. 应用
      1. 输出环境变量:echo $PATH
      2. 输出文本:echo hello

    14、head

    1. 显示文件的开头部分
    2. 语法
      1. head 文件:默认显示前10行
      2. head -n5 文件:显示头5行

    15、tail

    1. 含义:显示文件的结尾部分
    2. 语法:
      1. tail 文件名,默认显示后10行
      2. tail -n5 文件名,显示后5行
      3. tail -f 文件名,实时追踪该文件的所有更新

    16、>和>>

    • >:输出重定向,把内容直接覆盖写入文件
    • >>:追加,把内容追加到文件的尾部
    1. 语法
      1. ls -l > 文件1:列表的内容覆盖写入到文件1(要加上隐藏的内容,就用-al
      2. ls -l >> 文件1:列表的内容追加写入到文件1尾部
      3. cat 文件1 >或>> 文件2:将文件1的内容覆盖或追加到文件2
      4. echo "内容" >或>> 文件1:将自己写的内容覆盖或追加到文件1

    17、ln

    1. 含义:links(软连接)
    2. 语法:
      1. 创建:ln -s 源文件或目录 软连接名
      2. 删除:rm -rf 连接名(连接名后别带/,否则资源忙---相当于windows中的应用程序已经打开,无法删除)

    18、history

    1. 含义:执行过的指令
    2. 语法:
      1. history,显示所有历史指令
      2. history 5,最近的5条记录
      3. !10,执行历史编号为10 的指令

    四、时间日期类

    1、显示当前日期时间

    1. 语法
      1. date
      2. date "+%Y-%m-%d %H:%M:%S",当然也可以拆开使用单独的一些

    2、设置日期时间

    1. 语法:date -s "2020-02-02 11:11:11"

    3、日历

    1. 语法:
      1. cal显示本月
      2. cal 2020显示2020年的日历

    五、搜索查找类

    1、find

    1. 含义:从指定目录向下递归的遍历其各个子目录,并显示满足条件的文件或目录
    2. 语法:find 搜索范围 [选项]
    3. 常用选项
      1. -name,按照文件名方式查找(*.txt代表查找所以的txt文件)(暂时不知道有什么鬼用,感觉多此一举)
      2. -user,按照用户名查找
      3. -size,按照文件大小查找(+代表大于,-小于,不加是等于)

    2、locate

    1. 含义:快速定位文件路径。
    2. 语法:locate 要搜索的文件名
    3. 说明:
      1. 因为locate指令是基于数据库进行查询,第一次使用前必须用updatedb指令创建locate数据库
      2. 实际使用了一下,发现locate查找的是包含输入的字符的所有文件

    3、grep和管道符号“|”

    1. 含义:过滤查找,“|”将前一个命令的处理结果传递给下一个命令
    2. 语法:grep [选项] 查找内容 源文件
    3. 常用选项
      1. -n,显示所在的行号
      2. -i,忽略大小写
    4. 示例:cat hello.txt | grep -ni java

    六、解压缩类

    1、gzip和gunzip

    1. 语法
      1. gzip 文件(①只能压缩为.gz文件;②源文件会消失)
      2. gunzip .gz文件

    2、zip和unzip

    1. 用途:常用于项目打包发布
    2. 语法:
      1. zip -r 新的压缩文件名.zip 要压缩的内容,(-r是递归压缩目录)
      2. unzip -d 压缩文件名.zip(-d是存放目录)

    3、tar★★★

    1. 含义:是打包指令,打包压缩后的文件名是.tar.gz文件
    2. 语法:tar [选项] 自己起名.tar.gz 打包的内容
      1. 打包压缩:tar -zcvf 自己起名.tar.gz 打包的内容
      2. 解压到当前目录:tar -zxvf a.tar.gz
      3. 解压到指定目录:tar -zxvf a.tar.gz -C /opt/(目录必须存在)

    Linux学习笔记7:组管理和权限管理

    Linux中,每个用户都属于一个组,用户不能独立于组外。在Linux中没个文件夹有:所有者、所在组、其他组的概念

    第一部分 组管理

    1、文件的所有者

    1. 查看文件的所有者:ls -ahl
    2. 修改文件的所有者:chown 用户名 文件名

    2、组的创建

    1. 语法:groupadd 组名
    2. 案例
      1. 创建一个组monster,创建一个用户js,并放入到monster组
        1. 先创建组,
        2. 然后再useradd -g monster js
        3. 然后用 id js来查看

    3、文件的所在组

    1. 查看:ls -ahl
    2. 修改:chgrp 组名 文件名

    4、用户的所在组

    1. 改变用户的所在组:usermod -g 组名 用户名
    2. 改变用户登录的初始化目录:usermod -g 目录名 用户名

    第二部分 权限管理

    1、文件、目录的信息含义

    文件/目录的信息含义

    1. 第0位,表示文件类型(-代表文件,d代表目录,l代表软连接,c代表字符设备如键鼠,b块文件如硬盘)
    2. 第1~3位,表示所有者对文件的权限
    3. 第4~6位,表示所属组对文件的权限
    4. 第7~9位,表示其他用户对文件的权限
    5. 第一个数字
      1. 如果是文件,表示硬连接数,一般是1
      2. 如果是目录,表示子目录数
    6. 后面两个是所属用户、所属组
    7. 文件大小(字节),如果是文件夹,都显示为4096
    8. 时间,表示最后修改日期
    9. 最后的,文件名

    2、权限修改

    说明:chmod命令中,u:所有者,g:所有组,o:其他人,a:所有人

    1、第一种方式(用=+-)

    1. chmod u=rwx g=rx o=x 文件名或目录名
    2. chmod o+w 文件名或目录名
    3. chmod a-x 文件名或目录名

    2、第二种方式(用数字)

    • 规则:r=4, w=2, x=1(其实就是二进制)
    1. chmod u=rwx g=rx o=x 文件名或目录名就相当于 chmod 751

    3、修改文件所有者

    1. 语法
      1. chown 新所有者 文件名
      2. chown 新所有者:新组 文件名

    4、修改文件所在组

    1. 语法
      1. chgrp 新组 文件名
      2. chgrp -R 新组 目录名

    Linux学习笔记8:任务调度

    1、概述

    1. 任务调度:系统在某个时间执行的特定的命令或程序
    2. 任务调度的分类
      1. 系统工作:有些重要的工作必须周而复始的执行,如扫描病毒
      2. 个别用户工作:个别用户可能希望执行某些程序,比如对 mysql 数据库的备份

    2、语法

    1. crontab[选项]
    2. 常用选项
      1. -e,编辑crontab定时任务
      2. -l,查询crontab任务
      3. -r,删除当前用户所以crontab任务
    3. 重启任务调度:service crond restart

    3、示例

    1. 创建任务:

      1. 执行 crontab -e
      2. 输入:*/1 * * * * ls -l /etc/ >> tmp/to.txt
      3. 含义:每分钟执行 ls -l /etc/ >> tmp/to.txt
    2. 5个占位符说明(分时天月周)

      占位符 含义 范围
      第1个* :每小时中的第几分钟 0~59
      第2个* :每天中的第几小时 0~23
      第3个* :每个月中的第几天 1~31
      第4个* :一年中的第几个月 1~12
      第5个* :一周的的星期几 0~7(07都是周天)
    3. 特殊符号的说明

      特殊符号 含义
      * 代表所有的时间单位:没分钟,每小时
      , 不连续的时间:“0 2,4 * * *”表示每天2点和4点的0分执行
      - 连续的范围:“0 2-4 * * *”每天的2点到4点的0分执行
      */n 每隔多久执行一次

      Linux学习笔记9:磁盘分区、挂载

    一、分区的基础知识(了解)

    1、mbr分区

    1. 最多只支持四个主分区
    2. 系统只能安装在主分区
    3. 拓展分区要占一个主分区
    4. mbr最大只支持2TB,但有最好的兼容性

    2、gtp分区

    1. 支持无限多个主分区
    2. 最大支持18EB(1EB=1024PB,1PB=1024TB)
    3. Windows 7 64位以后支持gtp

    二、Linux分区

    1、原理

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

    2、硬盘说明

    1. Linux 硬盘分 IDE 硬盘和 SCSI 硬盘,目前基本上是 SCSI 硬盘
    2. 对于 IDE 硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这里是指 IDE 硬 盘了。“x”为盘号(a 为基本盘,b 为基本从属盘,c 为辅助主盘,d 为辅助从属盘),“~”代表分区, 前四个分区用数字 1 到 4 表示,它们是主分区或扩展分区,从 5 开始就是逻辑分区。例,hda3 表示为 第一个 IDE 硬盘上的第三个主分区或扩展分区,hdb2 表示为第二个 IDE 硬盘上的第二个主分区或扩展 分区。
    3. 对于 SCSI 硬盘则标识为“sdx~”,SCSI 硬盘是用“sd”来表示分区所在设备的类型的,其余则 和 IDE 硬盘的表示方法一样。

    3、查看当前系统的分区情况的指令

    • lsblklsblk -f

    • 图示

      image-20201104232006567

    三、案例:自己为Linux增加一块硬盘

    我用的是macOS上面的secureRCT,Windows系统在第一部略有不同

    1. 虚拟机添加硬盘
      1. 关闭虚拟机才可以操作
      2. 点击菜单栏的虚拟机--->硬盘--->硬盘设置--->添加设备--->新硬盘(这里以2G为例)
      3. 重启虚拟机
      4. 终端用 lsblk查看分区情况,只是有了sdb,而没有分区和挂载点的信息。
    2. 分区
      1. fdisk /dev/sdb开始进行分区
      2. 输入m查看命令,发现n是新增分区命令,输入 n,然后选择 p表示设置为主分区,分区编号选择1就ok,下面两步都可以默认,直接两次回车。
      3. 输入 w退出
      4. 此时再用 lsblk命令查看分区情况,发现已经分好了区,但是还没有挂载点
    3. 格式化
      1. 输入命令 mkfs -t ext4 /dev/sdb1
      2. 此时再用 lsblk -f命令查看分区情况,发现已经有了40位的UUID
    4. 挂载
      1. 先创建目一个录/home/newdisk,用于挂载
      2. 用命令 mount /dev/sdb1 /home/newdisk挂载
      3. 此时再用 lsblk -f命令查看分区情况,发现已经有了挂载点
      4. 到此为止,挂载成功。但是这只是临时挂载,重启就会失效
    5. 设置永久挂载
      1. vim /etc/fstab打开文件
      2. 在UUID上面一行加上 /dev/sdb1 /home/newdisk ext4 defaults 0 0
      3. 保存退出:esc后输入:wq
      4. 立即生效:mount -a
      5. 此时再重启也还是没问题的
    6. 如果想取消挂载,可以用 umount /home/newdisk(如果现实设备忙,要退出要newdisk目录再重试)

    四、磁盘查询情况

    1. 语法

      1. 查询整体磁盘:df -h
      2. 查询指定目录的磁盘占用情况:du -h /目录(默认是当前目录)
        1. -s,指定目录占用大小汇总
        2. -h,(human)带计量单位,方便人看
        3. -a,含文件
        4. -c,列出明细的同时,增加汇总值
        5. --max-depth=1,子目录深度
    2. 案例和工作实用指令

      1. 查询 /opt 目录的磁盘占用情况,深度为 1

        du -ach --max-depth=1 /opt

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

        ls -l /home | grep "^-" |wc -l

      3. 统计/home 文件夹下目录的个数

        ls -l /home | grep "^d" |wc -l

      4. 统计/home 文件夹下文件的个数,包括子文件夹里的

        ls -lR /home | grep "^-" |wc -l

      5. 统计文件夹下目录的个数,包括子文件夹里的

        ls -lR /home | grep "^d" |wc -l

      6. 以树状显示目录结构

        1. 如果没有安装tree命令,用 yum install tree,来安装
        2. 然后 cd /home ,在 tree

    Linux学习笔记10:网络配置

    1、Linux网络配置原理图

    2、查看网络IP和网关

    3、Linux网络环境配置

    说明:这块MacOS比较麻烦。后续再搞。

    Linux学习笔记11:进程管理★★★

    1、基本介绍

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

    2、显示进程

    1. 命令:ps

    2. 选项:

      1. -a,显示当前终端所有信息进程
      2. -u,以用户的格式显示进程信息
      3. -x,显示后台进程运行的参数
    3. 语法总结

      1. 显示所有进程:ps -aux

        1. USER:用户名
        2. PID:进程id
        3. %CPU:CPU占用百分比
        4. %MEM:物理内存占用百分比
        5. VSZ:占用虚拟内存大小(KB)
        6. RSS:占用物理内存大小(KB)
        7. TTY:终端名称
        8. STAT:进程状态
          1. S:睡眠
          2. s:该进程是会话的先导进程
          3. N:该进程拥有比普通进程更低的优先级
          4. R:正在运行
          5. D:短期等待
          6. Z:僵死进程
          7. T:被跟踪或者被停止
        9. TIME:进程使用CPU的总时间
        10. COMMAND:启动进程所用的命令和参数
      2. 查看某一个进程:ps -aux | grep xxx

      3. 查看父进程:ps -ef | more

    3、终止进程

    1. 语法
      1. 通过进程号杀死进程:kill [选项] 进程号(适合杀死单个进程)
      2. 通过进程名杀死进程:kill all 进程名(适合杀死多个进程)
        1. 说明:支持通配符,一次杀死很多进程时很方便
      3. 常用选项
        1. -9:强制杀死进程
    2. 实例
      1. 剔除某个用户:先通过 ps -aux | grep sshd来查看有哪些用户在登录状态,并得到进程号。然后 kill 进程号
      2. 系统要维护,暂时中止远程登录sshd:用ps - aux |grep sshd来查看sshd服务的进程号(命令为 /usr/sbin/sshd的是sshd服务),然后 kill 进程号
      3. 终止多个 gedit 编辑器 【killall , 通过进程名称来终止进程】
      4. 强制杀掉一个终端:ps -aux | grep bash来查看哪些终端开着(命令为/bin/bash的是),然后 kill 进程号,发现没反应,强制杀死即可 kill -9 进程号

    4、查看进程树

    1. 语法:pstree [选项]
    2. 常用选项
      1. -p:显示进程的PID
      2. -u:显示进程所属用户

    5、服务管理

    1、简介

    1. 介绍:服务(service) 本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其它程序的请 求,比如(mysql , sshd 防火墙等),因此我们又称为守护进程,是 Linux 中非常重要的知识点。
    2. service管理命令
      1. service 服务名 xxx(xxx处可以是:start、stop、restart、reload、status)
      2. CentOS 7 以后,不再使用service,而是systemctl
    3. 实例:查看当前防火墙的状况,关闭防火墙和重启防火墙
      1. service iptables status查看防火墙状态
      2. service iptables stop停止防火墙
      3. service iptables stop查看状态
      4. service iptables start重启
    4. 细节说明:
      1. 关闭或者启用防火墙后,立即生效。可以用:telnet IP地址 端口号来测试
      2. 这种方式只是临时生效,当重启系统后,还是回归以前对服务的设置。 如果希望设置某个服务自启动或关闭永久生效,要使用 chkconfig 指令

    2、查看服务

    1. 方式一:终端输入 setup后,进入系统服务,就可以看到所以服务,其中带*的是开机自启的服务。可以按空格改变。
    2. 方式二:用/etc/init.d/服务名称来查看
      1. 如,列出所以服务名称:ls -l /etc/init.d/

    3、服务的运行级别

    1. Linux系统本身有7中运行级别,每种运行级别对应的不同的服务开启和关闭。

    4、chkconfig命令

    1. 含义:给每个服务的各个运行级别设置自启动/关闭。重启后生效
    2. 语法
      1. 查看所以服务:chkconfig --list
      2. 查看某个服务:chkconfig --list | grep xxx
      3. 设置在运行级别下服务的启动与否:chkconfig --level 系统运行级别 服务名 on或off
      4. 在所以运行级别下服务的开启和关闭:chkconfig 服务名 on或off

    5、动态监控进程

    1. 含义:top 与 ps 命令很相似。它们都用来显示正在执行的进程。Top 与 ps 最大的不同之处,在于 top 在 执行一段时间可以更新正在运行的的进程。(类似于任务管理器

    2. 语法:top [选项]

    3. 常用选项

      1. -d 秒数,指定top命令每隔几秒更新,默认是3秒
      2. -i,不显示任何闲置或僵死进程
      3. -p,通过指定进程id来监控这个进程
    4. 交互指令

      操作 功能
      P 以CPU使用率排序,默认是这样排序的
      M 以内存使用率排序
      N 以PID排序
      q 退出top
      u 输入u再回车输入用户名--->查看该用户的
      k 杀死进程

    6、查看系统网络情况★★★

    1. 语法
      1. netstat [选项]
      2. 查看所有的:netstat -anp | more( -an按照一定顺序排列输出,-p显示那个进程在调用)
      3. 查看摸个:netstat -anp | grep xxx

    Linux学习笔记12:RPM和YUM

    一、RMP

    1、RPM简介

    • 一种用于互联网下载包的打包及安装工具,它包含在某些 Linux 分发版中。它生成具有.RPM 扩展名的文件。RPM 是 RedHat Package Manager(RedHat 软件包管理工具)的缩写,类似 windows 的 setup.exe,这一文件格式名称虽然打上了 RedHat 的标志,但理念是通用的。 Linux 的分发版本都有采用(suse,redhat, centos 等等),可以算是公认的行业标准了。

    2、查询语法

    1. 查询所以已安装的rpm包:rpm -qa(q=query,a=all)
    2. 查询某一个安装的rpm包:rpm -qa | grep xxx
    3. 查询软件包是否安装:rpm -q 软件包名
    4. 查询软件包信息:rpm -qi 软件包名
    5. 查询软件包中的文件:rpm -ql 软件包名(就是查看安装在了哪里)
    6. 查询文件所属的软件包:rpm -qf 文件全路径名

    3、卸载语法

    1. epm -e 软件包名
      1. 如果其它软件包依赖于您要卸载的软件包,卸载时则会产生错误信息。 如: $ rpm -e foo时,会出现removing these packages would break dependencies:foo is needed by bar-1.0-
      2. 如果我们就是要删除 foo 这个 rpm 包,可以增加参数 --nodeps ,就可以强制删除,但是一般不推荐这样做,因为依赖于该软件包的程序可能无法运行 如:$ rpm -e --nodeps foo 带上 --nodeps 就是强制删除。

    4、安装语法

    1. rpm -ivh 软件包的全路径名称(i=install,v=verbose提示,h=hash进度条)

    二、YUM

    1、简介

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

    2、基本指令

    • 查询 yum 服务器是否有需要安装的软件:yum list | grep xxx
    • 安装指定的yum包:yum install xxx

    3、安装软件

    • 一般就是先查看有没有,然后下载就可以了。
  • 相关阅读:
    系统分析与设计——WordCount
    ruby学习笔记
    RubyMine 2016.1 下载 附注册激活码 破解版方法
    Java环境一键配置,需要手动输入jdk路劲。
    iOS学习资源收集
    TPC-H数据导入Hive方案
    Navicat连接不上远程主机数据库的问题解决方案
    TPC-H数据导入Mysql数据方案
    2018/09/26 LINUX安装及linux命令之ls命令学习
    使用Xcode编写并运行Python
  • 原文地址:https://www.cnblogs.com/liuzhixian666/p/13923323.html
Copyright © 2020-2023  润新知