Linux学习笔记

发布时间:2021-01-04 发布网站:编程之家
编程之家收集整理的这篇文章主要介绍了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、安装软件

  • 一般就是先查看有没有,然后下载就可以了。

总结

以上是编程之家为你收集整理的Linux学习笔记全部内容,希望文章能够帮你解决Linux学习笔记所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入编程之家官方QQ群:1065694478