Linux开山篇

    科技2023-10-29  120

    一, Linux目录结构

    Linux的文件系统是采用层式的树状目录结构,再次结构中的最上层是根目录 / ,然后再次目录下在创建其他的目录。

    在Linux世界里,一切皆文件。

    1./bin:存放着最经常使用的命令。 2./sbin:存放着系统管理员使用的系统管理程序。 3./home:存放普通用户的主目录,在Linux中的每个用户都有一个自己的目录,一般改目录名是以用户的账号命名的。 4./root:该目录为系统管理员,也成为超级权限者的用户主目录。 5./boot:存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 6./proc:这个目录是一个虚拟目录,他是系统内存的映射,访问这个目录来获取系统信息。 7./srv:service的缩写,该目录存放一些服务启动之后需要提取的数据。 8./sys:该目录下安装了2.6内核中新出现的一个文件系统。 9./tmp:这个目录是用来存放一些临时文件的。 10./dev:类似于windows的设备管理器,把所有的硬件用文件的形式存储。 11./media:Linux系统会自动识别一些设备,例如U盘,光驱等等,当时别后,linux会把识别的设备挂载到这个目录下。 12./mnt:系统提供该目录是为了让目录临时挂载别的文件系统的,我们可以将外部的存储挂在/mnt上,然后进入该目录就可以查看里面的内容了。 13./opt:这是给主机额外安装软件所摆放的目录。如安装oracle数据库就可以放到该目录下。 14./user/local:这也是给主机安装软件的目录。一般是通过编译源码方式安装的程序。 15./var:这个目录存放着不断扩充的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件。 16./selinux:安全子系统,能控制程序只能访问特定文件。

    总结:

    linux目录中有且只有一个根目录/ linux各个目录存放好内容是规划好的,不要乱放文件 linux是以文件的形式管理我们的设备,因此linux系统,一切皆文件。

    二,远程访问

    如果希望安装好的远程软件可以远程访问Linux系统的话,需要一个前提,就是linux启用了sshd服务,该服务会监听22号端口。

    三,vi和vim编辑器

    文本编辑器

    vi和vim的三种常见模式

    1.正常模式 正常模式下,可以使用快捷键。 vim打开一个文档就直接进入一般模式。可以上下左右移动光标,可以删除字符,删除整行处理文档内容,也可以使用复制粘贴来处理你的文件数据。 2.插入模式/编辑模式 在该模式下,程序员可以输入内容 。 i , o ,a ,r 按下就可以进入编辑模式。 3.命令行模式 可以提供你的相关指令,完成读取,存盘,替换,离开vim,显示行号都在此模式下完成。

    三种模式的转换

    四,常用编辑快捷键

    1.拷贝当前行 yy,拷贝当前行像下的5行,5yy,并粘贴。 2.删除当前行 dd,删除当前向下的5行, 5dd。 3.在文件中查找某个单词[命令行下 /关键字 ,回车 查找 , 输入n就是查找下一个] 4.设置文件的行号,取消文件的行号。[命令行下 :set nu 和 :set nonu] 5.编辑 /etc/profile 文件,使用快捷键到文档的最末行G和第一行gg,正常模式下。 6.在一个文件中输入hello,然后又撤销这个动作 ,在正常模式下输入u。 7.编辑 /etc/profile 文件,并将光标移动到 第20行 shift +g 1)显示行号 :set nu 2)输入20这个数 3)shift +g

    五,开机,重启,用户登录注销

    关机和重启

    shutdown

    shutdown - h now: 立即关机 shutdown -h 1: 一分钟后关机 shutdown -r now: 立即重启

    halt 直接使用,等价于关机

    reboot 重启

    syn:把内存的数据同步到磁盘

    当关机或重启时,都应该先执行sync命令,吧内存数据写入硬盘,防止数据丢失。

    用户登录和注销

    普通用户登录,可以用su -用户名命令来切换成系统管理员身份。

    输入logout命令即可注销用户

    六,用户管理

    linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须先向系统管理员申请一个账号,

    然后以这个账号的身份进入系统。

    linux的用户至少要属于一个组。

    1.添加用户

    添加一个用户aa: useradd aa 添加用户并指定家目录: useradd -d /home/dog aa

    2.给用户指定/修改密码

    passwd aa

    3.删除用户

    删除用户,保存家目录 userdel aa 删除用户aa以及用户主目录 userdel -r aa

    删除用户时,一般不会删除家目录

    4.查询用户信息

    查询root信息 id root 当用户不存在,返回无此用户。

    5.切换用户

    在操作linux是,如果当前用户的权限不够,可以通过 su - 指令,切换到搞权限用户,比如root

    su - root

    高权限切换到低权限不需要密码,反之需要。

    当需要返回到原来的用户时,使用exit指令。

    6.用户组

    系统可以对有共性的多个用户进行统一管理。

    增加组 groupadd 组名 删除组 groupdel 组名 增加用户直接加上组 useradd -g 用户组 用户名 修改用户组 usermod -g 用户组 用户名

    7.etc下的文件

    /etc/passwd 文件 用户配置文件,记录用户的各种信息。 每行的含义:用户名:口令:用户标识号:租标识号:注释性描述:主目录:登录Shell /etc/shadow 文件 口令的配置文件 每行含义: 登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志 /etc/group 文件 组的配置文件,记录linux包含的组信息 每行含义:组名:口令:组标识号:组内用户列表

    七,实用指令

    1.制定运行级别

    运行级别说明

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

    常用的运行级别是3和5,要修改默认的运行级别可以改文件/etc/inittab 的id:5:initdefault:这一行中的数字

    2.切换到制定运行级别的指令

    init 0

    面试题:

    如何找回root密码,如果我们不小心,忘记root密码,怎么找回。

    思路:进入到单用户模式,然后修改root密码。因为进入单用户模式,root用户不需要密码。

    3.帮助指令

    man获得帮助信息

    语法:

    man [命令或配置文件] man ls
    help指令

    语法:

    help 命令(获得shell内置命令的帮助信息) help cd

    4.文件目录类

    1)pwd 指令
    基本语法 pwd (显示当前工作目录的绝对路径)
    2)ls指令
    基本语法: ls 【选项】 【目录或者文件】 常用选项 -a:显示当前目录所有的文件和目录,包括隐藏的。 -l:以列表的方式显示信息
    3)cd 指令
    基本语法: cd 【参数】(切换到指定目录) 常用参数: 绝对路径和相对路径 如何理解绝对路径和相对路径 当前工作目录是/root,我们希望进入到/home下 绝对路径:/home 从根目录开始定位 相对路径:../home 从当前工作目录开始定位到需要的目录去 cd:回到自己的家目录 cd..回到当前目录的上一级目录
    4)mkdir 指令
    mkdir指令用于创建目录 基本语法: mkdir:【选项】 要创建的目录 常用选项: -p:创建多级目录 emp:创建/home/animal/cat mkdir -p /home/animal/cat
    5)rmdir 指令
    rmdir指令删除空目录 基本语法: rmdir:【选项】要删除的目录 **rmdir删除的是空目录,如果目录下有内容就无法删除。 如果要删除非空目录,就要使用rm -rf 要删除的目录
    6)touch指令
    touch指令创建空文件 基本语法: touch 文件名称 实例:创建一个空文件 hello.txt touch hello.txt
    7)cp 指令
    cp 拷贝文件到指定目录 基本语法: cp 【选项】 source dest 常用选项 -r 递归复制整个文件夹

    案例1:将/home/aaa.txt拷贝到/home/bbb 目录下【拷贝单个文件】

    案例2:将/home/test整个目录拷贝到/home/zwj目录

    细节:强制覆盖不提示的方法 \cp -r …

    8)rm 指令
    rm 指令移除【删除】 文件或目录 基本语法: rm 【选项】 要删除的文件或目录 常用选项 -r:递归删除整个文件夹 -f:强制删除不提示 常用:rm -rf
    9)mv 指令
    mv 移动文件与目录或重命名 基本语法: mv oldFileName newFileName 重命名 mv /temp/movefile /targetFolder 移动文件

    案例1:将/home/aaa.txt 文件重命名为 pig.txt

    案例2:将/home/pig.txt 文件移动到/root目录下

    10)cat 指令
    cat 查看文件内容,是以只读的方式打开 基本语法: cat 【选项】 要查看的文件 常用选项: -n:显示行号 **cat只能浏览文件,不能修改文件,为了浏览方便,一般会带上管道命令 |more cat 文件名 |more 【分页浏览】

    案例:查看/etc/profile 文件内容,并显示行号

    11)more 指令
    more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按照页显示文本文件的内容。 基本语法: more 要查看的文件 快捷键: space:下翻页 Enter:下一行 q:立刻离开more,不再显示文件内容 ctrl+F:像下滚动一个屏幕 ctrl+B:返回上一瓶 =:输出当前的行号 :f:输出文件名和当前的行号
    12)less 指令

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

    基本语法: less 要查看的文件 快捷键 : 空白键 下翻页 pageup 上翻页 /字符串 n 搜索 q 离开less这个程序
    13)>指令 和 >>指令
    > 输出重定向:会将原来的文件的内容覆盖 >> 追加:不会覆盖原来文件的内容,而是追加到文件的尾部 基本语法: 1)ls -l > 文件 列表的内容写入文件a.txt中。覆盖(如果该文件不存在,就创建该文件) 2)ls -al >>文件 列表的内容追加到文件aa.txt的末尾 3)cat 文件1 > 文件2 (将文件1的内容覆盖到文件2) 4)echo 内容 >>文件
    14)echo 指令

    echo 输出内容到控制台

    基本语法: echo 【选项】 【输出内容】

    案例:使用echo指令输出环境变量,输出当前的环境路径。

    15)head 指令

    head 用于显示文件的开头部分内容,默认情况下head指令显示文件的前10行内容

    基本语法: head 文件 查看文件前10行内容 head -n 5 文件 查看文件前5行内容

    案例:查看/etc/profile的前面5行代码

    ctrl +c 退出编辑模式

    16) tail 指令

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

    基本语法: 1)tail 文件 查看文件后10行内容 2)tail -n 5 文件 查看文件后5行内容 3)tail -f 文件 实时追踪该文档的所有更新

    案例1:查看etc/profile 最后5行的代码

    17) ln 指令

    软连接也叫符号链接,类似于windows里的快捷方式,主要存放了链接其他文件的路径。

    基本语法: ln -s【源文件或者目录】 【软链接名】 给源文件创建一个软链接

    案例:在/home下创建一个软链接linktoroot,连接到/root目录

    18)history 指令

    查看已经执行过历史命令,也可以执行历史命令

    基本语法: history 查看已经执行过的历史命令 history 10 显示最近实用的10条历史命令 !178 执行编号为178的命令

    5.时间日期类

    1)date指令显示当前时间
    1)date 显示当前时间 2)date +%Y 显示当前年份 3)date +%m 显示当前月份 4)date + %d 显示当前是哪一天 5)date +"%Y-%m-%d %H:%M:%S" 显示年月日时分秒

    2)date 指令-设置日期
    基本语法: date -s 字符串时间

    案例:设置系统当前时间,比如设置成2018-10-10 11:22:22

    3)cal 指令
    查看日历指令 基本语法: cal 【选项】 不加选项,显示本月日历

    案例1:显示当前日历

    案例2:显示2020年日历

    6.搜索查找类

    1)find 指令

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

    基本语法: find 【搜索范围】 【选项】 选项说明: -name:指定按照文件名查找 -user:查找指定用户名的所有文件 -size:按照指定的文件大小查找文件

    案例:查找整个linux系统下大于20m的文件 +n大于,-n小于,n等于

    案例:查询linux系统下所有 .txt文件

    2)locate 指令

    locate指令不需要遍历整个文件系统,查询速度比较快。为了保证查询结果的准确度,管理员必须定期更新locate时刻。

    基本语法: locate 搜索文件 ** 由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库。
    3)grep指令和管道符号 |
    grep 过滤查找,管道符 | ,标识将前一个命令的处理结果输出传递给后面的命令处理。 基本语法: grep 【选项】 查找内容 源文件 常用选项 -n:显示匹配行及其行号 -i:忽略字母大小写

    案例:在hello.txt文件中,查找yes 所在行,并显示行号

    7.压缩和解压类

    1)gzip /gunzip 指令

    gzip用于压缩,gunzip 用于解压

    基本语法: gzip 文件 将文件压缩为.gz文件 gunzip 文件.gz 解压文件命令

    案例:将/home下的hello.txt压缩,在解压。

    用gzip命令压缩的文件,原来的文件会消失

    2)zip/unzip 指令

    zip用于压缩文件,unzip用于解压的,这个在项目打包发布中很有用。

    基本语法: zip 【选项】 xxx 将要压缩的内容 -r:递归压缩,压缩目录 unzip 【选项】xxx.zip 解压文件 -d:指定解压后文件存放的目录

    案例:将home下的所有文件进行压缩成 1.zip,并将1.zip解压到/root目录下

    3)tar 指令

    tar 指令 是打包指令,最后打包后的文件是 .tar.gz 的文件。

    基本语法: tar:【选项】 xxx.tar.gz 打包的内容 打包目录,压缩后的文件格式.tar.gz 选项说明: -c:产生.tar打包文件 -v:显示详细信息 -f:指定压缩后的文件名 -z:打包同时压缩 -x:解包.tar文件

    案例1:压缩多个文件,将/home目录下的 hello.txt和mydate.txt压缩成a.tar.gz

    案例2:将/home的文件夹压缩成 home.tar.gz

    案例3:将a.tar.gz解压到/root/下

    指定解压到的那个目录,事先要存在,否则报错。

    八,组管理和权限管理

    1.Linux 组基本介绍

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

    用户家目录的概念 /home/ 目录下有各个创建的用户对应的家目录,当用户登录时,会自动的进入到自己的家目录。

    2.文件/目录所有者

    一般为文件的创建者,谁创建了该文件,就自然成为该文件的所有者。

    1)查看文件的所有者
    指令:ls -ahl 应用:创建一个组police,在创建一个用户tom,将tom放在police组,然后使用tom来创建一个文件ok.txt,看看情况如何。

    2)修改文件所有者
    指令:chown 用户名 文件名 应用案例:使用root创建一个文件 apple.txt,然后将其所有者修改成tom

    3)组的创建
    基本指令: groupadd 组名 应用:创建一个组mm 创建一个用户 jack,并放入mm

    4)文件/目录 所在组

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

    查看文件或目录所在组

    ls -ahl

    修改文件所在组

    chgrp 组名 文件名

    实例:使用root 用户创建文件 orange.txt 看看当前这个文件属于哪个组,然后将这个文件所在组修改到police组。

    5)其他组

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

    6)改变用户所在的组

    在添加用户时,可以指定该用户的组,同样的用root的管理权限可以改变某个用户所在的组。

    改变用户所在组

    usermod -g 组名 用户名 usermod -d 目录名 用户名 改变该用户登录的初始目录

    实例:创建一个组a将tom这个用户从原来的police组,修改到a组。

    7)权限的基本介绍

    ls -l中显示的内容:

    0-9位说明 1)第0位确定文件类型(d,-,1,c,b) 2)第一到三位确定所有者(该文件的所有者)拥有该文件的权限。 3)第4-6位确定所属组拥有该文件的权限 4)第7-9位确定其他用户拥有该文件的权限 5) 1代表的:如果是文件,表示硬链接的数,如果是目录则表示该目录的子目录个数 6)第一个root代表所属用户 7)第二个root代表所属的组 8)4479 代表文件大小,如果是目录4096 9)Nov 6 2016 文件最后修改时间 10)wqetrc 文件或目录名
    8)rwx权限详解

    rwx作用到文件

    r 可以读取查看 w 可以修改但是不能删除,删除一个文件的前提是对该文件的目录有写的权限,才能删除该文件。 x 可以被执行

    rwx作用到目录

    r 可以读取查看目录内容 w 可以修改,目录内创建+删除+重命名目录 x 可以进入该目录
    9)文件及目录权限实际案例

    ls -l 中显示的内容如下:

    -rw-r----- 1 root root 1786 Jun 23 2017 sudo.conf

    10)修改权限 -chmod
    ①符号变更权限
    chmod u=rwx,g=rx,o=x 文件目录名 chmod o+w 文件目录名 chmod a-x 文件目录名 u:所有者 g:所有组 o:其他人 a:所有人

    案例1:

    给abc文件的所有者读写执行的权限,给所在组读执行权限,给其他组读执行权限

    案例2:给a.txt的文件所有者除去执行的权限,增加组写的权限

    案例三:给a.txt的所有用户添加读的权限

    ②数字变更权限
    r=4 w=2 x=1 chmod u=rwx,g=rx,o=x 文件目录名 等同于:chmod 751 文件目录名

    案例:将b.txt文件的权限修改成rwxr-xr-x,使用数字的方式实现

    11)修改文件所有者
    chown newowner file 改变文件的所有者 chown newowner:newgroup file 改变用户的所有者和所有组

    -R 如果是目录,则让其下面的所有子文件或目录都递归生效

    案例1:将/home/a.txt 文件的所有者修改为tom

    案例2:将/home/kkk目录下的所有文件和目录的所有者都修改成tom

    12)修改文件所在组-chgrp
    chgrp newgroup file 改变文件的所有组

    案例1:将/home/a.txt文件所在组修改成mm

    案例2:将/home/kkk 目录下的所有文件和睦路的所在组都修改成kkk

    九,crond任务调度

    任务调度:是指系统在某个时间执行的特定的命令或程序。

    分类:

    ​ 1.系统工作:有些重要的工作必须周而复始的执行。如病毒扫描。

    ​ 2.个别用户工作:例如对mysql数据库的备份。

    crontab -e 编辑定时任务 crontab -l 查询任务 crontab -r 删除当前用户所有的任务 service crond restart 重启任务调度

    案例:

    设置任务调度文件:/etc/crontab 设置个人任务调度: 执行crontab -e 命令 接着输入任务到调度文件 如:*/1 * * * * ls -l /etc/>/tmp/to.txt 意思是说,每小时的每分钟执行ls -l /etc/>/temp/to.txt

    参数说明:

    项目含义范围第一个*一小时当中的第几分钟0-59第二个*一天当中的第几个小时0-23第三个*一个月当中的第几天1-31第四个*一年当中的第几个月1-12第五个*一周当中的星期几0-7 特殊符号含义*代表任何时间,代表不连续的时间-代表连续的时间范围*/n代表没隔多久执行一次 */10每隔十分钟执行一次

    特定时间执行任务案例

    时间含义4 5 22 * * *命令在22:45执行命令0 17 * * 1在每周一的17:00执行0 5 1,15 **每月一号和十五号的凌晨五点执行40 4 * * 1-5每周一到周五的4:40执行*/10 4 * * *每天的凌晨四点,每隔十分钟执行一次0 0 1,15 * 1每月的1号和15号,每周一的0点0分都会执行

    案例:每隔一分钟就将当前的日期信息,追加到/tmp/mydate文件中

    步骤:

    1 编写一个文件 /home/mytask.sh date>> /tmp/mydate 2 给 mytask.sh一个可以执行的权限 chmod 744 /home/mytask.sh 3 crontab -e 4 */1 * * * /home/mytask.sh 5 success

    案例2:每隔一分钟,就将当前日期和日历都追加到/home/mycal文件中

    1 先编写一个文件 /home/ mytask2.sh date>> /tmp/mycal cal>> /tmp/mycal 2 给 mytask2.sh一个可以执行的权限 chmod 744 /home/mytask2.sh 3 crontab -e 4 */1 * * * * /home/mytask2.sh 5 success

    案例3:每天凌晨2:00将mysql数据库testdb,被分到文件mydb.bak中。

    1 先编写脚本文件 /home/task.sh /usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak 2.给task.sh一个可执行权限 chmod 744 task.sh 3.crontab -e 4 0 2 * * * /home/task.sh 5 success

    十,Linux磁盘分区,挂载

    1.分区方式

    1)mbr分区
    1.最多支持四个主分区 2.系统只能安装在主分区 3.扩展分区要站一个主分区 4.最大只支持2TB,但拥有最好的兼容性
    2)gtp分区
    1.支持无限多个主分区 2.最大支持18EB的大容量 3.windows7 64位以后支持gtp

    2.windows下的磁盘分区

    1.主分区 2.扩展分区 逻辑分区 逻辑分区

    3.Linux分区

    1)linux 来说无论有几个分区,分给哪一个目录使用,他归根结底就只有一个根目录,一个独立且唯一的文件结构,linux中每个分区都是用来组成整个文件系统的一部分。

    2)linux 采用了一种叫做载入的处理方法,他的整个文件系统中包含了一整套文件和目录,且将一个分区和一个目录联系起来。这是要载入的一个分区将使它的存储空间在一个目录下获得。

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

    vda vda1 代表分区情况 ext4 分区类型 59d9ca7b-4f39-4c0c-9334-c56c182076b5 唯一标识分区的40位不重复字符串 / 挂载点 表示该硬盘挂载在哪个目录上

    4.磁盘情况查询

    1) 查询系统磁盘整体使用情况
    基本语法: df -h

    2)查询指定目录的磁盘占用情况
    基本语法: du -h /目录 查询指定目录的磁盘占用情况,默认为当前目录 -s 指定目录占用大小汇总 -h 带计量单位 -a 含文件 --max-deph=1 子目录深度 -c 列出明细的同时,增加汇总值

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

    3)磁盘情况-工作实用指令

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

    2)统计/home文件夹下目录的个数

    3)统计/home文件夹下文件的个数,包括自文件夹里面的

    4)统计文件夹下目录的个数,包括子文件夹里面的

    5)以树状显示目录结构

    十一,网络配置

    目前我们的网络配置采用的NAT。

    1.查看windows环境的vmnet8网络配置

    2.ping 测试主机之间网络连通

    基本语法: ping 目的主机 测试当前服务器是否可以连接目的主机

    实例: 测试当前服务器是否可以连接百度

    3.linux网络环境配置

    直接修改配置文件来指定IP,并可以连接到外网,

    vim /etc/sysconfig/network-scripts/ifcfg-eth0

    修改后,一定要 重启服务

    service newwork restart reboot 重启

    十二,进程管理

    1.进程的基本介绍

    1)在linux中,每个执行的程序都成为一个进程,每个进程都分配一个ID号。

    2)每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如www服务器。

    3)每个进程都可能以两种方式存在,前台与后台,所谓前台进程就是用户目前屏幕上可以进行操作的。

    后台进程就是实际在操作,但由于屏幕上无法看到进程,通常使用后台方式执行。

    4)一般系统的服务都是以后台进程的方式存在,而且都会常驻在系统中。直到关机才结束。

    2.显示系统执行的进程

    ps 查看进程使用的指令 常用 ps -aux ps -a 显示当前终端的所有进程 ps -u 以用户的格式显示进程信息 ps -x 显示后台进程运行的参数

    userPID%CPU%MENVSZRSSTTYSTATSTARTTIMECOMMAND用户名进程占用的CPU占用内存使用的虚拟内存使用物理内存情况使用的终端进程的状态进程的启动时间占用cpu总时间进程执行时的命令行 进程的状态sr休眠运行

    3.实例

    要求:以全格式显示所有的进程,查看进程的父进程。

    ps -ef 全格式显示当前所有进程 -e 显示所有进程 ps -ef | grep xxx

    4.终止进程

    若是某个进程执行一半需要停止时,或是已经消了很大的系统资源时,此时可以考虑停止该进程。

    使用kill命令来完成此项任务。

    kill 【选项】 进程号 通过进程号杀死进程 killall 进程名称 通过进程名称杀死进程,也支持通配符,这在系统因负载过大二变的很慢时很有用。 -9 :表示强迫进程立即停止

    案例1:踢掉某个非法登录用户

    kill 9729

    案例2:终止远程登录服务sshd,在适当时候再次重启sshd服务

    kill 2049

    案例3:终止多个gedit编辑器 killall,通过进程名称来终止进程

    killall getdit

    案例4:强制杀掉一个终端

    kill -9 4090

    5.查看进程树

    基本语法: pstree [选项] 可以更加直观的来看进程信息 常用选项: -p:显示进程的PID -u:显示进程的所属用户

    6.服务管理

    服务本质就是进程,但是是运行在后台的,通常都会监听某个端口,等待其他程序的请求,比如mysql,

    sshd,防火墙,因此我们又称为守护进程,是linux中非常重要的知识点。

    1)service 管理指令
    service 服务名 [start | stop | restart | reload | status] 在centos7.0以后,不再使用service,而是systemctl
    2)查看服务名
    /etc/init.d

    3)服务运行级别
    查看或修改默认级别 vim /etc/inittab linux 系统有7种运行级别:常用的级别是3和5 运行级别0 系统停机状态 运行级别1 单用户工作状态 root权限,用于系统维护,禁止远程登录 运行级别2 多用户状态无网络 运行级别3 多用户有网络 运行级别4 保留 运行级别5 图形化界面 运行级别6 重启
    4)开机流程说明
    开机bios/bootinit进程1运行级别运行级对应的服务
    5)chkconfig 指令

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

    基本语法 1)查看服务 chkconfig --list | grep xxx 2)chkconfig 服务名 --list

    chkconfig 重新设置服务后自启动或关闭,需要重启机器reboot才能生效

    6)动态监控进程

    top与ps命令很相似。他们都用来显示正在执行的进程。Top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程。

    基本语法: top 选项 -d 秒数 指定top命令每隔几秒更新,默认是3秒在top命令的交互模式当中可以执行的 -i 使top不显示任何闲置或者僵死进程 -p 通过指定监控进程ID来仅仅监控某个进程的状态
    7)查看系统网络情况
    基本语法: netstat [选项] netstat -anp 选项说明: -an 按一定顺序排列输出 -p 显示哪个进程在调用

    案例:查看服务名为sshd的服务的信息

    十三,RPM和YUM

    1.rpm

    一种用于互联网下载包的打包和安装工具,他包含在某些Linux分发版中。他生成具有.rpm拓展名的文件。rpm类似于windows的setup.exe,这一文件格式名成虽然打上了RedHat的标志,但是理念是想通的。

    2.rpm包的简单查询指令

    查询已经安装的rpm列表

    rpm -qa | grep firefox 查看当前linux有没有安装firefox

    3.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标识通用

    4.rpm包的其他查询指令

    rpm -qa 查询所安装的所有rpm软件包 rpm -qa | more [分页显示] rpm -qa | grep X [rpm -qa | grep firefox ] rpm -q 软件包名 查询软件是否安装 rpm -q firefox rpm -qi 软件包名 查询软件包信息 rpm -ql 软件包名 查询软件包中的文件 rpm -ql firefox 查询rpm包的文件安装到哪里去了 rpm -qf 文件全路径名 查询文件所属的软件包 rpm -qf /etc/passwd

    5.卸载rpm包

    基本语法: rpm -e RPM包的名称 rpm -e firefox rpm -e -nodeps firefox 连带依赖一起删除,否则有其他软件包依赖于该软件,该软件会删除失败

    6.安装rpm包

    基本语法: rpm -ivh rpm包全路径名称 参数说明: i 安装 v 提示 h 进度条

    7.yum

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

    查询yum服务器是否有需要安装的软件 yum list | grep xx 软件列表 安装指定的yum包 yum install xxx 下载安装

    实例:安装firefox

    1.先查看yum服务器是否有firefox

    2.安装

    十四,搭建java环境

    如果要在linux上进行javaee开发,我们需要安装如下软件

    mysql

    jdk

    eclipse

    tomcat

    1.安装jdk

    1)查看是否已经安装过jdk

    2)查看jdk软件包列表

    3)安装jdk

    4)查看是否安装成功

    5)配置环境变量

    jdk默认安装路径:/usr/lib/jvm

    #set java environment JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64 PATH=$PATH:$JAVA_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME CLASSPATH PATH
    6)执行如下命令,让文件生效
    source /etc/profile 在catalina.sh的第一行增加 JAVA_OPTS=-Djava.security.egd=file:/dev/./urandom 即可。

    7)如果提示没有javac命令

    8)成功

    2.安装Tomcat

    1)将tomcat压缩包拖动到/opt/目录下

    2)解压到/opt/

    3)启动tomcat ./startup.sh

    4)开放端口8080 ,这样外网才能访问到tomcat

    3.安装mysql

    安装
    wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm yum -y install mysql57-community-release-el7-10.noarch.rpm yum -y install mysql-community-server systemctl start mysqld.service systemctl status mysqld.service grep "password" /var/log/mysqld.log 此时就获取到了数据库的初始密码 mysql -uroot -p mysql> set global validate_password_policy=0; mysql> set global validate_password_length=1; mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password'; yum -y remove mysql57-community-release-el7-10.noarch
    修改mysql默认编码
    查看数据库默认编码 show variables like 'character%'; 修改编码 vim /etc/my.cnf 加入代码块: [client] default_character_set=utf8 [mysqld] collation_server = utf8_general_ci character_set_server = utf8 重启mysql服务 service mysqld restart
    云服务器mysql连接到本地MySQL可视化工具
    mysql set global validate_password_policy=LOW; grant all privileges on *.* to root@'%' identified by "password"; (root是用户,password登录密码) flush privileges;(刷新权限)
    Processed: 0.012, SQL: 8