精华内容
下载资源
问答
  • Linux总结

    千次阅读 多人点赞 2020-01-14 20:36:45
    二 、初探Linux 2.1 Linux简介 2.2 Linux诞生简介 2.3 Linux的分类 三 、Linux文件系统概览 3.1 Linux文件系统简介 3.2 文件类型与目录结构 四 、Linux基本命令 4.1 目录切换命令 4.2 目录的操作命令(增删改...

    请多多支持博主,点赞关注一起进步哦~

    文章目录

    一、认识操作系统

    1.1、操作系统简介

    1. 操作系统(Operation System,简称OS)是管理计算机硬件与软件资源的程序,是计算机系统的内核与基石;
    2. 操作系统本质上是运行在计算机上的软件程序 ;
    3. 为用户提供一个与系统交互的操作界面 ;
    4. 操作系统分内核与外壳(我们可以把外壳理解成围绕着内核的应用程序,而内核就是能操作硬件的程序)。
      在这里插入图片描述

    1.2、操作系统简单分类

    1. Windows: 目前最流行的个人桌面操作系统 ,不做多的介绍,大家都清楚。
    2. Unix: 最早的多用户、多任务操作系统 .按照操作系统的分类,属于分时操作系统。Unix 大多被用在服务器、工作站,现在也有用在个人计算机上。它在创建互联网、计算机网络或客户端/服务器模型方面发挥着非常重要的作用。
      在这里插入图片描述
    3. Linux: Linux是一套免费使用和自由传播的类Unix操作系统.Linux存在着许多不同的Linux版本,但它们都使用了 Linux内核 。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

    在这里插入图片描述
    在这里插入图片描述

    1.3、企业级与个人操作系统区别

    在这里插入图片描述
    常用的企业级操作系统有:

    • Windows Server
    • Unix
    • Linux

    二、Linux前世今生

    2.1、Linux简介

    • 类Unix系统: Linux是一种自由、开放源码的类似Unix的操作系统
    • Linux内核: 严格来说,Linux这个词本身只表示Linux内核
    • Linux之父: 一个编程领域的传奇式人物。他是Linux内核的最早作者,随后发起了这个开源项目,担任Linux内核的首要架构师与项目协调者,是当今世界最著名的电脑程序员、黑客之一。他还发起了Git这个开源项目,并为主要的开发者。
      在这里插入图片描述

    2.2、Linux诞生

    • 1991年,芬兰的业余计算机爱好者Linus Torvalds林纳斯·托瓦茨)编写了一款类似Minix的系统(基于微内核架构的类Unix操作系统)被ftp管理员命名为Linux 加入到自由软件基金的GNU计划中;
    • Linux以一只可爱的企鹅作为标志,象征着敢作敢为、热爱生活。
    • Linux特点:免费、开源
    • 版本:1991年林纳斯·托瓦茨编写发布了Linux0.0.1版本,具有重大影响。1994年3月,正式发布了Linux1.0版本

    2.3、Linux分类

    Linux根据原生程度,分为两种:

    1. 内核版本: Linux不是一个操作系统,严格来讲,Linux只是一个操作系统中的内核。内核是什么?内核建立了计算机软件与硬件之间通讯的平台,内核提供系统服务,比如文件管理、虚拟内存、设备I/O等;
    2. 发行版本: 一些组织或公司在内核版基础上进行二次开发而重新发行的版本。Linux发行版本有很多种(ubuntu和CentOS用的都很多,初学建议选择CentOS),如下图所示:
      在这里插入图片描述

    三、Linux文件系统概览

    3.1、Linux文件系统简介

    在Linux操作系统中,所有被操作系统管理的资源,例如网络接口卡、磁盘驱动器、打印机、输入输出设备、普通文件或是目录都被看作是一个文件。

    也就是说在LINUX系统中有一个重要的概念:一切都是文件。其实这是UNIX哲学的一个体现,而Linux是重写UNIX而来,所以这个概念也就传承了下来。在UNIX系统中,把一切资源都看作是文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问。

    3.2、文件类型与目录结构

    3.2.1、文件类型

    Linux支持5种文件类型 :
    在这里插入图片描述

    3.2.2、目录结构

    Linux的目录结构如下:

    Linux文件系统的结构层次鲜明,就像一棵倒立的树,最顶层是其根目录:
    在这里插入图片描述
    常见目录说明:

    • /bin: 存放二进制可执行文件(ls、cat、mkdir等),常用命令一般都在这里;
    • /etc: 存放系统管理和配置文件(重要);
    • /home: 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示;
    • /usr : 用于存放系统应用程序(使用yum命令下载的软件包会在这里);
    • /opt: 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里;
    • /proc: 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息;
    • /root: 超级用户(系统管理员)的主目录(特权阶级o);
    • /sbin: 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等;
    • /dev: 用于存放设备文件;
    • /mnt: 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统;
    • /boot: 存放用于系统引导时使用的各种文件;
    • /lib : 存放着和系统运行相关的库文件 ;
    • /tmp: 用于存放各种临时文件,是公用的临时文件存储点;
    • /var: 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等;
    • /lost+found: 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里。

    四、Linux基本命令

    4、目录命令

    4.1、目录切换命令

    • cd usr 切换到该目录下usr目录
    • cd ..(或cd../) 切换到上一层目录
    • cd / 切换到系统根目录
    • cd ~ 切换到用户主目录 (root用户就是/root,普通用户就是/home)
    • cd - 切换到上一个操作所在目录
    • cd /tmp/test 使用绝对路径切换
    • cd test 使用相对路径

    4.2、目录操作命令

    1. mkdir 目录名称 增加目录
      示例:

      • mkdir test
      • mkdir-p test/a/b/c:创建多级目录(使用相对路径)
      • mkdir-p/opt/test/aa/cc:创建多级目录(使用绝对路径)
    2. ls或者ll(ll是ls -l的别名,ll命令可以看到该目录下的所有目录和文件的详细信息):查看目录信息

      参数:

      • -l 以列表形式查看
      • -h 以一种人性化的方式查看,也是文件的大小以合适的单位显示
      • -a 查看所有文件,包括隐藏文件
      • -i 显示出文件的i节点号
    3. find 目录 参数 寻找目录(查)

    4. pwd 查看所在目录位置

      示例:

      • 列出当前目录及子目录下所有文件和文件夹: find .
      • /home目录下查找以.txt结尾的文件名:find /home -name "*.txt"
      • 同上,但忽略大小写: find /home -iname "*.txt"
      • 当前目录及子目录下查找所有以.txt和.pdf结尾的文件:find . \( -name "*.txt" -o -name "*.pdf" \)find . -name "*.txt" -o -name "*.pdf"
    5. mv 目录名称 新目录名称 修改目录的名称(改)

      注意:mv的语法不仅可以对目录进行重命名而且也可以对各种文件,压缩包等进行 重命名的操作。mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。后面会介绍到mv命令的另一个用法。

    6. mv 目录名称 目录的新位置 移动目录的位置—剪切(改)

      注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作。另外mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。

    7. cp -r 目录名称 目录拷贝的目标位置 拷贝目录(改),-r代表递归拷贝

      注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不 用写-r递归
      参数:

      • -a =-pdr
      • -p 同时复制文件属性,比如修改日期
      • -d 复制时保留文件链接
      • -r: 复制文件夹时,递归复制子文件夹
      • -l 不复制,而是创建指向源文件的链接文件,链接文件名由目标文件给出。
      • note:可以在拷贝的同时重命名
    8. rm [-rf] 目录: 删除目录(删)

      注意:rm不仅可以删除目录,也可以删除其他文件或压缩包,为了增强大家的记忆, 无论删除任何目录或文件,都直接使用rm -rf 目录/文件/压缩包
      参数:

      • -r:递归删除
      • -f:强制删除 即没有提醒

    5、文件命令

    5.1、文件操作命令

    1. touch 文件名称: 文件的创建(增)
      创建文件 可以一次创建多个文件,以空格隔开

    2. cat/more/less/tail 文件名称: 文件的查看(查)
      -n:带行号

      • cat 查看显示文件内容
      • more 分页查看文件内容: 可以显示百分比,回车可以向下一行, 空格可以向下一页,q可以退出查看
        操作参数:
        进入浏览模式后:
        • f或者空格:下一页
        • enter:一行一行往下翻
        • q:退出
      • less 可以使用键盘上的PgUp和PgDn向上 和向下翻页,q结束查看
        操作参数:
          - 空格翻页
          - 回车换行
          - pageup:上一页
          - pagedown:下一页
          - 上箭头:向上翻
          - 下箭头:向下翻
          - /搜索词 n向下找
      • head -n 查看文件前n行。缺省-n显示前10行
      • tail-10 查看文件的后10行,Ctrl+C结束

      注意:命令 tail -f 文件 可以动态显示文件末尾内容,对某个文件进行动态监控,例如tomcat的日志文件, 会随着程序的运行,日志会变化,可以使用tail -f catalina-2016-11-11.log 监控文件的变化

    3. in 链接命令
        -s创建软连接
        硬链接和cp -p的区别是硬链接会同步更新
        源文件如果丢失,硬链接依然存在。
        硬链接和源文件的i节点相同。
        硬链接不能夸分区,软连接可以跨分区。
        硬链接不可以链接目录,链接可以
        软连接文件具有的权限是ugo都是rwx

    4. rm -rf 文件 删除文件(删)

      同目录删除:熟记 rm -rf 文件 即可

    5.2、vim文件操作命令

    vim编辑器是Linux中的强大组件,是vi编辑器的加强版,vim编辑器的命令和快捷方式有很多,但此处不一一阐述,大家也无需研究的很透彻,使用vim编辑修改文件的方式基本会使用就可以了。

    在实际开发中,使用vim编辑器主要作用就是修改配置文件,下面是一般步骤:

    vim 文件------>进入文件----->命令模式------>按i进入编辑模式----->编辑文件 ------->按Esc进入底行模式----->输入:wq/q! (输入wq代表写入内容并退出,即保存;输入q!代表强制退出不保存。)

    1. i,a: 命令模式–>编辑模式
    2. ecs: 编辑模式–>命令模式(底行模式)
    3. 命令模式(底行模式下):
      • q!: 强制退出
      • q: 退出
      • wq: 保存并退出 (wq以及wq!,则不管有没有修改,都会强制更新修改时间,有时没修改的东西会让人误以为改了)
      • wq!: 保存并强制退出
      • x: 保存并退出(个人推荐使用,:x在由修改操作时会保存并退出,更新修改时间)
    4. set nu: 显示行号 set nonu: 取消行号
    5. 翻页查看:
      • 上一页:page up
      • 下一页: page down
    6. 跳转到指定的行:
      • gg: 跳转到第一行
      • G: 跳转到最后一行
      • 100G: 跳转到指定行,如100G就是第100行,nG:第n行
    7. /要查找的内容: 查找
    8. yy: 复制当前行
    9. p: 粘贴到当前所在行的下一行
      • 粘贴一次就输入一个p
      • 多次就多个p,如10p就粘贴10次
    10. 查找并替换:
      方式一:开始行号,结束行号s/查找的单词/替换的单词
      如:1,3s/f/XXX: 替换1到3行的f为XXX
      1,$s/f/YYY: 替换1到所有行的f为YYY
      方式二:gc方式
      %s/aaa/bbb/gc 意思就是检索所有行,挨个询问替换aaa为bbb,手动判断y是替换,n是不替换,a是替换所有,q是退出。
      • 参数:
        y - yes 替换
        n - no 不替换
        a - all 替换所有
        q - quit 退出替换
        l - last 最后一个,并把光标移动到行首
        ^E 向下滚屏
        ^Y 向上滚屏
    11. u: 撤销操作
    12. **dd:**删除当前行

    6、用户、组管理命令

    6.1、用户、组操作(权限)

    1. 查看功能命令
      • 查看个人信息
        • whoami: 查看当前登录的用户
        • who: 查看当前的账户 显示的格式为: 登录用户名 登录终端(tty:本地登录 pts:远程终端) 登录时间 ip地址
        • w: 查看更详细的用户登录信息。
        • groups: 查看当前用户所在的组
        • id: 查看当前登录的用户的uid和groupid
      • 查看系统信息
        • vim /etc/passwd: 查看所有的用户列表
        • vim/etc/group: 查看所有的组列表
    2. 用户的切换
      • su [用户名]
        比如:su zhangsan
      • su:默认切换到root
    3. 创建用户
      • useradd 用户名:新建一个用户,一个同名的组,/home/同名的文件夹(uid,gid自增)
      • useradd -u 用户id 用户名
      • useradd -b /路径 用户名
      • useradd -g 用户组 用户名: 新建用户,放到指定的用户组中
    4. 修改密码
      passwd 用户名
    5. 删除用户
      • userdel lisi: 仅删除用户
      • userdel -r Wangwu: 删除用户以及目录(-r将关联的文件一并删除)
      • userdel -rf wangwu: 删除登录用户以及目录:(-f强制)
    6. 新建用户组
      • groupadd 组名
      • groupadd -g 组id 组名
    7. 修改用户名、组
      • usermod -l 新的登录名 old 登录名: 修改登录名
      • usermod -g 新组名 登录名: 修改用户所在的组

    6.2、用户、组小结

    6.2.1、Linux 用户管理

    Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

    用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

    Linux用户管理相关命令:

    • useradd 选项 用户名:添加用户账号
    • userdel 选项 用户名:删除用户帐号
    • usermod 选项 用户名:修改帐号
    • passwd 用户名:更改或创建用户的密码
    • passwd -S 用户名 :显示用户账号密码信息
    • passwd -d 用户名: 清除用户密码

    useradd命令用于Linux中创建的新的系统用户。useradd可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。

    passwd命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。

    6.2.2、Linux系统用户组的管理

    每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同,如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。

    用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。

    Linux系统用户组的管理相关命令:

    • groupadd 选项 用户组 :增加一个新的用户组
    • groupdel 用户组:要删除一个已有的用户组
    • groupmod 选项 用户组 : 修改用户组的属性

    7、权限命令

    7.1、理解

    操作系统中每个文件都拥有特定的权限、所属用户和所属组。权限是操作系统用来限制资源访问的机制,在Linux中权限一般分为读(readable)、写(writable)和执行(excutable),分为三组。分别对应文件的属主(owner),属组(group)和其他用户(other),通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。通过 ls -lll 命令我们可以查看某个目录下的文件或目录的权限

    示例:在随意某个目录下 ls -l 或 *ll

    在这里插入图片描述
    第一列的内容的信息解释如下:
    在这里插入图片描述

    下面将详细讲解文件的类型、Linux中权限以及文件有所有者、所在组、其它组具体是什么?

    文件的类型:

    • d: 代表目录
    • -: 代表文件
    • l: 代表软链接(可以认为是window中的快捷方式)

    Linux中权限分为以下几种:

    • r:代表权限是可读,r也可以用数字4表示
    • w:代表权限是可写,w也可以用数字2表示
    • x:代表权限是可执行,x也可以用数字1表示

    文件和目录权限的区别:

    对文件和目录而言,读写执行表示不同的意义。

    对于文件:

    权限名称可执行操作
    r可以使用cat查看文件的内容
    w可以修改文件的内容
    x可以将其运行为二进制文件

    对于目录:

    权限名称可执行操作
    r可以查看目录下列表
    w可以创建和删除目录下文件
    x可以使用cd进入目录

    需要注意的是超级用户可以无视普通用户的权限,即使文件目录权限是000,依旧可以访问。
    在linux中的每个用户必须属于一个组,不能独立于组外。在linux中每个文件有所有者、所在组、其它组的概念。

    • 所有者(user(owner) u)

      一般为文件的创建者,谁创建了该文件,就天然的成为该文件的所有者,用ls ‐ahl命令可以看到文件的所有者 也可以使用chown 用户名 文件名来修改文件的所有者 。

    • 文件所在组(group g)

      当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组 用ls ‐ahl命令可以看到文件的所有组 也可以使用chgrp 组名 文件名来修改文件所在的组。

    • 其它组(other o)

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

    我们再来看看如何修改文件/目录的权限。

    7.2、chmod

    chmod: 修改文件/目录的权限的命令

    示例:修改/test下的aaa.txt的权限为属主有全部权限,属主所在的组有读写权限,
    其他用户只有读的权限

    chmod u=rwx,g=rw,o=r aaa.txt

    上述示例还可以使用数字表示:

    chmod 764 aaa.txt

    综合实例:

    • chmod u+x a.txt
    • chmod g+w,o-r a.txt //同时做多个权限的修改
    • chmod g=rwx a.txt
    • chmod 640 a.txt
    • chmod -R 777 testdir //把目录和下面所有文件的权限
    • chmod u-x,g-r,o+x test 只修改当前文件夹的权限,子文件不变
    • chmod -R u-x,g-r,o+x test 递归修改文件夹的权限

    7.3、chown

    chwon: 更改文件所有者,只有root可以更改.
    修改拥有者:拥有组–》chown (change owner)
    语法:
    chown -R 拥有者:拥有组 文件夹
    chown root a.txt //把a.txt更改为root所有

    【问题】如果普通用户,出现了对文件没有访问权限,如何解决?

    • 修改文件的权限:chmod
    • 修改文件的拥有者:chown

    7.4、chgrp

    chgrp: 更改所属组

    chgrp admin biubiubiu //把biubiubiu的所属组更改为admin

    7.5、umask -S

    umask -S查看创建文件的缺省权限,即默认权限

    umask 023: 修改文件的缺省权限为777-023=754。即-rwxr-xr–

    7.6、如何将普通用户hadoopenv升级为超级管理员?

    /etc/sudoers

    1. 先修改该文件的权限
      chmod u+w /etc/sudoers
    2. 然后添加一行(不需要密码了)
      hadoopenv ALL=(ALL)NOPASSWD:ALL
    3. 然后hadoopenv就穿上了黄马褂,可以用sudo 来执行root的权限
      sudo mkdir xx
    4. 修改完后,再修改回来(记得再把门关上)
      chmod u-w /etc/sudoers

    补充一个比较常用的东西:

    假如我们装了一个zookeeper,我们每次开机到要求其自动启动该怎么办?

    1. 新建一个脚本zookeeper
    2. 为新建的脚本zookeeper添加可执行权限,命令是:chmod +x zookeeper
    3. 把zookeeper这个脚本添加到开机启动项里面,命令是:chkconfig --add zookeeper
    4. 如果想看看是否添加成功,命令是:chkconfig --list

    8、压缩解压命令

    8.1、打包并压缩文件

    Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。

    而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。
    命令:tar -zcvf 打包压缩后的文件名 要打包压缩的文件
    其中:

    z:调用gzip压缩命令进行压缩
    c:打包文件
    v:显示运行过程
    f:指定文件名

    比如:假如test目录下有三个文件分别是:aaa.txt bbb.txt ccc.txt,如果我们要打包test目录并指定压缩后的压缩包名称为test.tar.gz可以使用命令:tar -zcvf test.tar.gz aaa.txt bbb.txt ccc.txt或:tar -zcvf test.tar.gz /test/

    8.2、解压压缩包

    命令:tar [-xvf] 压缩文件
    其中:x:代表解压

    示例:

    1 将/test下的test.tar.gz解压到当前目录下可以使用命令:tar -xvf test.tar.gz

    2 将/test下的test.tar.gz解压到根目录/usr下:tar -xvf test.tar.gz -C /usr(- C代表指定解压的位置)

    8.3、按格式分类

    • .gz格式

      • 压缩:gzip 文件名 只能压缩文件不能压缩目录,压缩完源文件也不见了
      • 解压缩:gunzip/gzip -d 压缩包名称
    • tar:

      • tar -zcvf 压缩后文件名 打包的目录 :生成.tar.gz文件 注:这个命令先用tar归档,然后把归档的包压缩成.gz
      • tar -zxvf 要解压的文件名 :解压缩.tar.bz2的文件
      • tar -jcvf 压缩后的文件名 打包的目录:生成.tar.bz2 注:这个命令先用tar归档,然后把归档的包压缩成.bz2
      • tar -jxvf 要解压的文件名 :解压.tar.bz2的文件
    • zip:

      • zip -r 压缩生成的文件名 要压缩的目录
      • zip 压缩生成的文件名 要压缩的文件
    • unzip:

      • unzip 要解压缩的文件
    • bzip2:

      • bzip2 -k 要压缩的文件名 -k选项:保留源文件
      • bunzip2 -k 要解压的文件名 -k选项:保留压缩包

    9、文件搜索命令

    9.1、find

    find:搜索制定范围内的文件
    find [搜索范围] [匹配条件]
    [匹配条件] 参数:

    • -name 按文件名搜索

    • -iname 根据文件名查找,不区分大小写

    • -size +n大于 -n小于 n等于 这个n是数据块,在Linux中一个数据块是512字节大小

    • -user 根据所有者查找

    • -group 根据所属组查找

    • 根据文件属性查找:

      • -amin 访问时间 access
      • -cmin 根据文件属性被修改的时间 change
      • -mmin 根据文件内容被修改的时间 modify
          例: find /etc -cmin -5 :查找/etc目录下五分钟内被修改过属性的文件和目录
    • -a 两个条件同时满足
          find /etc -size +10 -a -size -50

    • -o 两个条件满足一个即可

    • -type
          f 文件 d 目录 l软连接文件

    • -inum 根据i节点查找

    • 对找到的结果进行操作
          -exec 或者 -ok 命令 {} ;
          例如:
            find /etc -name init* -exec ls -l {} ; 对找到的文件名按列表查看

    例子:

    • find /etc -name init :搜索目录/etc下面所有的init文件,精确匹配,包括子目录中的init文件
    • find / -size +204800 搜索大于100M的文件

    9.2、locate

    locate:
    1、查找速度非常快,因为它维护了一个文件库。
    2、缺点就是新建立的文件没有很快收录到文件库

    • locate 文件名
    • updatedb 更新locate的文件资料库 文件资料库不收录/tmp下的文件
    • -i 不区分大小写

    示例:

    # 更新数据,新建文件后,需要使用此命令
    updatedb
    # 在系统上查找所有包含vimrc的文件
    locate vimrc
    # 使用正则表达式
    locate --regexp vim*
    

    9.3、which

    which :查找命令的目录以及别名
    which 命令

    [root@biubiubiu /]# which vi
    alias vi='vim'
    	/usr/bin/vim
    

    9.4、whereis

    whereis :搜索命令所在目录及帮助文档路径
    whereis 命令

    [root@biubiubiu /]# whereis vi
    vi: /usr/bin/vi /usr/share/man/man1/vi.1.gz /usr/share/man/man1p/vi.1p.gz
    
    

    9.5、grep

    grep:在文件中搜寻字符串匹配的行并输出,多个文件以空格隔开
    参数:

    • -i不区分大小写
    • -v排除指定字符串
    • -E 以正则表达式的方式搜索
    • -F 以普通文本的方式搜索
    • -n 显示搜索到的内容在文件中的行号。

    示例:

    #多文件查询
    grep leo logs.log logs_back.log
    
    #查找即包含leo又包含li的行
    grep leo logs.log | grep li
    
    #查找匹配leo或者匹配li的行
    grep leo | li logs.log
    
    #显示匹配行前2行
    grep leo logs.log -A2
    
    #显示匹配行后2行
    grep leo logs.log -B2
    
    #显示匹配行前后2行
    grep leo logs.log -C2
    
    #不区分大小写
    grep -i leo logs.log
    
    #使用正则表达式
    grep -e '[a-z]\{5\}' logs.log
    
    #查找不包含leo的行
    grep -v leo logs.log
    
    #统计包含leo的行数
    grep -c leo logs.log
    
    #遍历当前目录及所有子目录查找匹配leo的行
    grep -r leo .
    
    #在当前目录及所有子目录查找所有java文件中查找leo
    grep -r leo . --include "*.java"
    
    #查找并输出到指定文件
    grep leo logs.log > result.log
    
    #查找以leo开头的行
    grep ^leo logs.log
    
    #查找以leo结尾的行
    grep leo$ logs.log
    
    #查找空行
    grep ^$ logs.log
    

    10、帮助命令

    10.1、man

    man:查看命令或者配置文件的帮助信息
      man 命令/配置文件
      在手册里面,可以输入/要查找的str
      man ls
      在这里插入图片描述
      man services
      man fstab //直接输入配置文件的名字,而不需要使用绝对路径 重点查看name选项和配置文件的格式。
      如果一个命令即使命令又是配置文件,那么可以使用一个序号进行区分,比如:
      man 1 passwd 查看命令passwd的帮助
      man 5 passwd 查看配置文件passwd的帮助

    10.2、whatis

    whatis 命令:得到命令的简要信息

    [root@biubiubiu /]# whatis ls
    ls (1)               - list directory contents
    ls (1p)              - list directory contents
    [root@biubiubiu /]# whatis id
    id (1)               - print real and effective user and group IDs
    id (1p)              - return user identity
    [root@biubiubiu /]# 
    

    10.3、apropos

    apropos 配置文件名:查看配置文件的简短信息

    [root@biubiubiu etc]# apropos yum.conf
    yum-config-manager (1) - manage yum configuration options and yum repositories
    yum.conf (5)         - Configuration file for yum(8).
    [root@biubiubiu etc]#
    

    10.4、help

    help 命令:

    • 查看shell内置命令的帮助信息。
    • shell内置命令是没有命令路径。
    • 不能使用man查看帮助。

    help cd
    在这里插入图片描述
    ls --help
    在这里插入图片描述

    11、网络命令

    11.1、write

    write:给在线用户发送信息,用户不在线不行。以Ctrl+D保存

    write 用户名

    11.2、wall

    wall:给所有用户名发送信息

    wall 要发送的信息

    11.3、ping

    ping:测试网络连通性
    ping ip地址
    参数:
      -c 要ping的次数

    11.4、ifconfig

    • ifconfig: 直接回车查看当前网卡信息

    • ifconfig 网卡名 ip地址: 临时修改网络ip
      示例:
          ifconfig th0:0 192.168.1.100 netmask 255.255.255.0
            给th0这个网卡新添加一个ip
          ifconfig eth0:0 down
          ifconfig eth0:0 up

    • ifdown th0: 禁用th0这块网卡

    • ifup th0: 开启th0这块网卡

    11.5、mail

    mail:邮件命令
    mail 要发送的用户名
    mail 直接回车 查看命令
    参数:
        help :查看支持的命令格式
        输入序列号:查看邮件详细内容
        h: 回到邮件列表
        d 序列号:删除序列号对应的邮件

    11.6、nslookup

    nslookup:查看网站ip地址

    nslookup www.baidu.com 查看百度的ip地址

    11.7、netstat

    netstat:显示网络相关信息
    参数:

    • -t :tcp协议
    • -u :udp协议
    • -l:监听
    • -r:路由
    • -n:显示ip地址和端口号

    netstat -tlun:查看本机监听的端口
    netstat -an:查看所有的监听信息
    netstat -rn :查看路由表,即网管

    11.8、wget

    wget 文件地址 下载文件
    参数:

    • -h:显示帮助说明;
    • -b:后台下载;
    • -c:继续上次终端的下载任务;
    • -r:递归下载文件

    实例:

    1. wget http://search.maven.org/remotecontent?filepath=log4j/log4j/1.2.17/log4j-1.2.17.tar.gz 下载单个文件
    2. wget -i fileList 下载多个文件(fileList里需要有多个url)
    3. wget -c http://search.maven.org/remotecontent?filepath=log4j/log4j/1.2.17/log4j-1.2.17.tar.gz 断点下载
    4. wget -b http://search.maven.org/remotecontent?filepath=log4j/log4j/1.2.17/log4j-1.2.17.tar.gz 后台下载
    5. wget --limit-rate=400k http://search.maven.org/remotecontent?filepath=log4j/log4j/1.2.17/log4j-1.2.17.tar.gz 限速400k下载

    11.9、service network restart

    service network restart:重启网络服务。

    11.9.1、telnet

    telnet 域名或ip
      远程管理与端口探测
      如: telnet 192.168.2.3:80
        探测192.168.2.3是否开启了80端口

    11.9.2、mount

    mount:挂载命令
      mount -t iso9660 /dev/sr0 /mnt/cdrom :把sr0挂载到cdrom

    12、关机重启命令

    在这里插入图片描述

    12.1、shutdown

    shutdown:这个关机命令更安全一些,不推荐使用其他关机命令。
      -h:关机
    shutdown -h now 立刻关机
    shutdown -h 20:30 八点半关机
      -r:重启
    shutdown -r now 相当于reboot,立刻重启
      -c:取消上次的关机命令
    shutdown -c: 取消

    12.2、reboot

    reboot 等于 shutdown -r now 立刻重启

    12.3、logout

    logout:退出当前用户,返回到登录界面

    13、常用快捷键

    1. ctrl+c:强制终止当前命令
    2. ctrl+l:清屏
    3. ctrl+a:光标移动到命令行首
    4. ctrl+e:光标移动到命令行尾
    5. ctrl+u:从光标所在位置删除到行首
    6. ctrl+z:把命令放入后台
    7. ctrl+r:在历史命令中搜索

    14、yum命令

    1. yum list :获取服务器上所有可用的软件的列表
    2. yum search 关键字:搜索服务器上所有和关键字相关的包
    3. yum -y install 包名:安装软件包
      参数:
      • install:安装
      • -y:自动回答yes
    4. yum -y update 包名:升级软件包
      参数:
      • update:升级
      • -y:自动回答yes
      • 如果没有包名,就会升级所有的软件包,包括Linux内核。慎用
    5. yum -y remove 包名:卸载软件包
      参数:
      • remove:卸载
      • -y:自动回答yes
      • 注:yum会自动卸载依赖包,而很有可能这个依赖包也被别的包依赖,所以很危险,慎用。
    6. yum grouplist:列出所有可用的软件组列表
    7. yum groupinstall 软件组名:安装指定软件组,组名可以由grouplist查询出来
      注:如果查询出来的软件组名中间有空格,要使用""引起来。
    8. yum groupremove 软件组名:卸载指定软件组

    五、其它杂项

    15、ps和kill

    ps 静态查看系统进程,系统默认安装
    ps -aux | grep 文件名 或 ps -ef | grep 文件名 根据文件名过滤进程(最常配合kill使用)
    ps -u 用户名 根据用户过滤进程

    lsof -Pti :端口号 通过端口号获得进程pid

    kill -9 pid: 杀死指定pid的进程,强行杀死。

    16、top

    top: 动态查看系统的状态

    17、history

    history 查看历史命令

    执行历史命令:
      !! 执行上一条命令
      !n 执行历史命令的中第n条
      !-n 执行导数第n条
      !string 执行以string开头的历史命令行
      !?string? 执行包含string的历史命令行

    18、alias和unlias

    18.1、alias:给命令起别名

    alias 命令='别名'
    示例: alias vi='vim'
    alias -p :查看已存在的别名

    但是仅仅是这样改的话,当系统重启之后就会失效。
    想要永久生效,需要修改根目录下.bashrc配置文件

    [root@biubiubiu ~]# vi .bashrc 
    

    在这里插入图片描述
    配置完成后需要使配置文件生效

    [root@biubiubiu ~]# source .bashrc 
    

    18.2、unlias :取消别名

    unlias name
    示例:unlias vi

    如果是之前修改了配置文件,需要再次去修改删掉。

    19、cal

    cal:查看某一年的日历,可以是1-9999中的任意一年
     示例:
      cal 2020 2020年日历

    20、网络配置

    20.1、三个网络配置文件

     /etc/sysconfig/network-scripts/ifcfg-网卡
     /etc/sysconfig/network
     /etc/resolv.conf # dns
    

    20.2、配置ip

    在这里插入图片描述

    20.3、远程执行命令

    ssh root@192.168.8.15

    21、CentOS环境变量配置

    CentOS的环境变量配置文件体系是一个层级体系,这与其他多用户应用系统配置文件是类似的,有全局的,有用户的,有shell的,另外不同层级有时类似继承关系。下面以PATH变量为例。

    1. 修改/etc/profile文件,将影响全局,所有用户
      /etc/profile在系统启动后第一个用户登录时运行。
      在/etc/profile文件中添加
      java export PATH=/someapplication/bin:$PATH
      要使修改生效,可以重启系统,或者执行
      java source /etc/profile echo $PATH

    2. 修改/etc/environment,将影响全局
      /etc/environment文件与/etc/profile文件的区别是:/etc/environment设置的是系统的环境,而/etc/profile设置的是所有用户的环境,即/etc/environment与用户无关,在系统启动时运行。
      在/etc/environment文件中添加
      java PATH=/someapplication/bin:$PATH
      CentOS和大多Linux系统使用$访问环境变量,环境变量PATH中使用冒号:分隔。而Windows中使用两个%访问环境变量,PATH使用分号;分隔,例如:

      java set PATH=E:\someapplication\bin;%PATH%

    3. 修改~/.bash_profile(首选),将影响当前用户。在~/.bash_profile文件中添加

      java export PATH=/someapplication/bin:$PATH

    4. 修改/etc/bashrc(Ubuntu和Debian中是/etc/bash.bashrc),影响所有用户使用的bash shell。
      /etc/bashrc顾名思义是为初始化bash shell而生,在bash shell打开时运行。
      这里bash shell有不同的类别:登录shell和非登陆shell,登录shell需要输入用户密码,例如ssh登录或者su - 命令提权都会启动login shell模式。非登陆shell不会执行任何profiel文件;交互shell和非交互shell,提供命令提示符等待用户输入命令的是交互shell模式,直接运行脚本文件是非交互shell模式,一般情况下非交互shell模式不执行任何bashrc文件。根据以上情况,选择是否修改/etc/bashrc。

    5. 修改~/.bashrc,影响当前用户使用的bash shell。

    6. 在终端中执行以下命令,只影响当前终端。
      java export PATH=/someapplication/bin:$PATH

    22、防火墙firewall

    1、开放端口

    firewall-cmd --zone=public --add-port=5672/tcp --permanent # 开放5672端口

    firewall-cmd --zone=public --remove-port=5672/tcp --permanent #关闭5672端口

    命令含义:
    
    –zone #作用域
    
    –add-port=80/tcp #添加端口,格式为:端口/通讯协议
    
    –permanent #永久生效,没有此参数重启后失效
    

    firewall-cmd --reload # 配置立即生效

    2、查看防火墙所有开放的端口

    firewall-cmd --list-ports

    firewall-cmd --zone=public --list-ports

    3.、关闭防火墙

    如果要开放的端口太多,嫌麻烦,可以关闭防火墙,安全性自行评估

    systemctl stop firewalld.service

    #重启firewall 
    firewall-cmd --reload 
    #停止firewall 
    systemctl stop firewalld.service 
    #禁止firewall开机启动 
    systemctl disable firewalld.service 
    
    	查看防火墙状态:firewall-cmd --state
    	关闭防火墙: systemctl stop firewalld.service
    	禁止防火墙开机启动:systemctl disable firewalld.service
    

    4、查看防火墙状态

    firewall-cmd --state

    5、查看监听的端口

    netstat -lnpt

    img

    PS:centos7默认没有 netstat 命令,需要安装 net-tools 工具,yum install -y net-tools

    6、检查端口被哪个进程占用

    netstat -lnpt |grep 5672

    img

    7、查看进程的详细信息

    ps 6832

    img

    8、中止进程

    kill -9 6832

    23、IO Stream

    标准流:
    stdin:标准输入,编号为0,用于程序从键盘等设备接收数据。输入流被EOF(文件结尾)终止
    stdout:标准输出,编号1,用于程序向终端等设备写入数据
    stderr:标准错误,编号2,用于向终端等设备显示错误消息
    重定向I/O Stream到文件:
    
    选项说明模式
    <重定向stdin
    >重定向stdout覆盖
    >>重定向stdout追加
    2>重定向stderr覆盖
    2>>重定向stderr追加
    案例:
    [root@os1 test_data]# cat startxx.sh 1>>output.log 2>>output_err.log
    

    24、date

    date --help
    date +%Y-%m-%d #2017-12-23
    date +%H:%M:%S #13:29:03
    date +%I:%M:%S #12小时时间显示
    date +%c #locale的完整日期和时间
    date -u #UTC日期和时间
    date -R #RFC-2822格式
    date -Iseconds #ISO-8601格式
    date -s “2019-07-09 16:12:00“ #设置时间
    

    25、yum安装

    一、下载yum安装包并解压

    wget http://yum.baseurl.org/download/3.4/yum-3.4.3.tar.gz
    tar xvf yum-3.4.3.tar.gz
    

    二、进入yum-3.4.3文件夹中进行安装,执行安装指令

    cd yum-3.4.3
    sudo apt install yum
    

    三、更新到新版本

    yum check-update
    yum -y update
    yum clean all
    

    请多多支持博主,点赞关注一起进步哦~

    展开全文
  • linux时间日期命令

    千次阅读 2019-01-22 19:46:21
    linux时间日期命令cal、date、hwclock

    cal

    cal用于显示日历,不传任何参数时,只显示当前月的日历。可用选项有:

    -1, --one:显示当前月份日历。默认选项。

    -3, --three:显示前一月、当前月以及后一月日历。

    -s, --sunday:显示的日历中,星期的第一天为星期日,默认格式。

    -m, --monday:显示的日历中,星期的第一天为星期一。

    -j, --julian:显示儒略历日历。

    -y, --year:显示整年的日历,若后面没有数字,则显示当前年的日历,若有数字,则显示指定数字年的日历。有效数字为1-9999。

    -V, --version:显示版本信息。

    -h, --help:显示帮助文档。

    cal还可以使用选项,指定想要显示日历的年/月/日。格式为[[[day] month] year],也就是当只有一个数字时,该数字按年解析,年的有效范围是1-9999。如果有两个数字则会按月、年解析,月的有效范围1-12。三个数字则按日、月、年解析,日的有效范围取决于指定的年、月。通过选项与日期的组合可以进行灵活的展示。其中-1与-3和-s与-m分别为互斥选项,如果同时出现则后面的会覆盖前面的值,最后一个出现的生效。如cal -1 -3等效于cal -3。

    cal#显示当前月的日历。
    cal -1 #等效于cal。
    cal -3 #显示前一月、当前月及后一月。
    cal -s #显示当前月的日历,日历中,每周的第一天为星期日。等效于cal。
    cal -m #显示当前月的日历,日历中,每周的第一天为星期一。
    cal -3 -s #显示前一月、当前月及后一月,每周的第一天为星期日。
    cal -3 -m #显示前一月、当前月及后一月,每周的第一天为星期一。
    cal -j -m #显示当前月的儒略历日历,每周的第一天为星期一。
    cal -j -s -3 #显示前一月、当前月及后一月的儒略历日历,每周的第一天为星期一。
    cal -y #显示当前年的一整年的日历。等效于cal -y 2019、cal -s -y 2019。
    cal -y -j #显示当前年的儒略历日历。等效于cal -y -j 2019、cal -s -y -j 2019。
    cal -v #显示版本信息。
    cal -h #显示帮助文档。
    cal 33 #显示公元33年的整年日历。等效于cal -s -y 33。
    cal 12 2018 #显示公元2018年12月的日历。等效于cal -1 -s 12 2018。
    cal -3 12 2018 #显示公元2018年11月、12月及2019年1月的日历。
    cal 11 12 2018 #显示公元2018年12月的日历,并且2018年12月11日高亮显示。
    cal -3 11 12 2018 #显示公元2018年11月、12月及2019年1月的日历,并且2018年12月11日高亮显示。
    cal -3 -j 11 12 2018 #显示公元2018年11月、12月及2019年1月的儒略历日历,并且2018年12月11日高亮显示。

    date

    date显示或设置当前日期/时间。可用选项有:

    -d datestr,--date=datestr:显示时间描述符datestr所描述的的日期和时间。datestr几乎可以采用任何通用格式。可以包含月份名称、时区、"am\pm"、“yesterday”、“tomorrow”等等。

    -f datefile,--file=datefile:将datefile中的每一行用-d进行解析,并显示解析后的日期和时间。如果datefile是“-”,则使用标准输入,当有许多日期要处理时,建议使用这种方式,因为多次启动date可执行文件的系统开销可能非常大。

    -I[TIMESPEC],--iso-8601[=TIMESPEC]:以ISO 8601格式(%Y-%m-%d)显示日期。参数TIMESPEC指定要包含的时间的附加项的数量。可接受的值有“auto”(只打印日期,默认值)、“hours”(把小时添加到日期后面)、“minutes”(把小时和分钟添加到日期后面)、“seconds”(把小时、分钟和秒添加到日期后面)、“ns”(把小时、分钟、秒和纳秒添加到日期后面)。如果显示任何时间项,则使用格式“%:z”包含时区。这种格式适合做为-d与-f选项的输入,无论当前语言环境如何。

    -r file,--reference=file:显示文件最后一次修改的日期和时间,而不是当前的日期和时间。

    -R,--rfc-email:使用格式“%a, %d %b %Y %H:%M:%S %z”显示日期和时间,因为是在C语言环境中求值,所以缩写总是用英语表示。这种格式符合因特网消息格式(互联网电子邮件的现行和以前的标准)5322、2822和822。为了与旧版本的date兼容,--rfc-2822和--rfc-822是--rfc-email的别名。

    --rfc-3339=TIMESPEC:使用因特网消息格式RFC3339格式显示日期时间。与类似--iso-8601,只不过是用空格分隔日期和时间而不是字符“T”,这种格式适合做为-d与-f选项的输入,无论当前语言环境如何。TIMESPEC指定要包含的时间的附加项的数量,可接受的参数有“date”(只打印日期,%Y-%m-%d)、“seconds”(打印完整的日期和完整的时间,用空格隔开,输出以数字时间偏移量结束,%Y-%m-%d %H:%M:%S%:z)、“ns”(与seconds类似,但是会打印纳秒,%Y-%m-%d %H:%M:%S.%N%:z)。

    -s datestr,--set=datestr:将时间设置为时间描述符datestr所描述的日期和时间。

    -u,--utc,--universal:打印或设置时间。使用世界标准时间,就像将环境变量TZ设置为“UTC0”一样。通常,系统忽略闰秒,从而实现UTC的近似,而不是真正的UTC。如果不加参数,则打印当前时间。如果给定参数,则按照参数中的时间进行设置。参数的格式为“MMDDhhmm[[CC]YY][.ss]”。其中“MM”代表月,“DD”代表一月中的第几天,“hh”代表小时,“mm”代表分,“CC”代表前的前两位,“YY”代表年的后两位,“.SS”代表表。此格式仅用于此选项,--date与--set不能使用。

    --help:打印帮助文档。

    --version:打印版本信息。

    使用date时,如果不指定输出格式,则默认格式取决于区域设置LC_TIME,默认的区域设置是“C”(“POSIX”的别名),此区域设置下默认的日期时间格式为“"+%a %b %e %H:%M:%S %Z %Y"”,如“Mon Jan 21 11:41:57 CST 2019”。还可以使用“+”后面跟着格式字符串来按指定的日期时间的格式进行打印。格式字符串中,除了转换说明符之外的其他字符将按原值打印。

    date #按默认的格式打印日期。
    date -d "@1536854105" +"%Y-%m-%d" #使用%Y-%m-%d格式打印-d描述的时间。
    date -Iseconds #以ISO 8601格式打印当前时间,精确到秒。
    date -r a.sh -Ins #以ISO 8601格式打印a.sh的最后修改时间,精确到纳秒。
    date -R #以rfc-email格式打印当前时间
    date --rfc-3339=seconds #以rfc-3339格式打印当前时间,精确到秒。
    date -s "2019-01-21 16:32:28" #将时间设置为指定的时间。
    date -u #打印UTC时间。
    date -u "012116372019.56"#将时间设置为指定的时间。

    hwclock

    打印或设置硬件时钟时间。参数分为两部分,一部分是函数,另一部分是选项。

    可选函数:

    -h, --help :打印帮助文档。

    -r, --show:读取硬件时钟并打印结果。

    --set:将硬件时钟设置为--date指定的时间。

    -s, --hctosys:将系统时间设置为硬件时钟时间。

    -w, --systohc:将硬件时钟时间设置为软件时间。

    --systz:根据当前时区设置系统时间,系统时间仅在启动后的第一次调用时重置。

    --adjust:从时钟最后一次设置或校正到现在的系统漂移校正硬件时钟。

    -c, --compare:定期比较系统时钟和CMOS时钟。

    --getepoch:打印内核硬件时钟的纪元值,只有在Alpha机器上才有意义。

    --setepoch:将内核硬件时钟的纪元值设置为--epoch指定的值,只有在Alpha机器上才有意义。

    --predict:预测由--date指定的时间的硬件时间。

    -V, --version:打印版本信息。

    可选选项:

    -u, --utc:硬件时钟的UTC时间。

    --localtime:硬件时间的时间。

    -f, --rtc <file>:代替默认文件的  /dev/..文件。通常默认文件为/dev/rtc、/dev/rtc0、/dev/rtc1等。

    --directisa:直接访问ISA总线,而不是/dev/rtc,只有在ISA或Alpha机器上才有意义。

    --badyear:由于BIOS的问题,忽略硬件时钟的年。

    --date <time>:指定设置硬件时钟的时间。

    --epoch <year>:指定硬件时钟的纪元值的开始年份。

    --noadjfile:不访问 /etc/adjtime,需要与--utc或--localtime一起使用。

    --adjfile <file>:指定校正文件的路径,覆盖默认的配置/etc/adjtime。

    --test:测试程序,不改变任何设置

    -D, --debug:调试模式,有助于理解hwclock内部工作过程。

    hwclock -r #打印硬件时钟的本地时间。
    hwclock -r -u #打印硬件时钟的UTC时间。
    hwclock -r -u --noadjfile #打印硬件时钟的UTC时间,不访问校正文件/etc/adjtime。
    hwclock -s #将系统时间设置为硬件时钟时间。
    hwclock -w #将硬件时钟时间设置为软件时间。
    hwclock --predict --date "2019-01-22 13:19:02" #预测2019-01-22 13:19:02的硬件时间。
    hwclock --getepoch #获取纪元年份。
    hwclock -c #定期比较系统时钟和CMOS时钟。

     

    展开全文
  • 第五章-Linux实操篇

    千次阅读 多人点赞 2019-10-24 18:45:20
    title: 第五章 Linux实操篇 categories: Linux tags: linux typora-root-url: … abbrlink: 93414991 date: 2019-08-15 15:27:58 第五章 Linux实操篇 远程登录Linux系统 5.1 为什么要远程登录服务器 5.2 xhell5...

    title: 第五章 Linux实操篇
    categories:

    • Linux
      tags:
    • linux
      typora-root-url: …
      abbrlink: 93414991
      date: 2019-08-15 15:27:58

    原文地址

    第五章 Linux实操篇 远程登录Linux系统

    5.1 为什么要远程登录服务器

    5.2 xhell5(windows)远程登录软件

    • 需要Linux开启sshd服务 22端口

    5.3 xftp 远程文件操纵

    第六章 Linux实操篇 vi和vim编辑器

    6.1 vi 和vim介绍

    vi是系统自带的文本编辑器

    vim是vi的增强版

    6.2 三种模式

    6.2.1 正常模式

    正常模式下,我们可以使用快捷键

    6.2.2 插入模式

    在该模式下,程序员可以输入内容

    6.2.3 命令行模式

    完成读取、存盘、替换、显示行号等动作

    6.3 快速入门

    yy 复制

    dd 删除

    u撤销

    set nu 设置行号 set nonu 取消行号

    shift+g 定位 eg: 5 shift+g 定位到第5行


    第七章 Linux实操篇 开机、重启、用户登录注销

    7.1 关机和重启指令

    shutdown

    • shutdown - h now
    • shutdown -h 1 表示1分钟后关机
    • shutdown -r now 立即重启

    halt

    • 直接使用,效果等价于关机

    reboot

    • 重启系统

    sync

    • 把内存的数据同步到磁盘

    关机或重启时,先执行sync指令,把内存写入磁盘

    7.2 用户登录和注销

    • 一般不直接用root登录

    logout

    用户注销

    使用细节

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


    第八章 Linux实操篇 用户管理

    8.1 基本介绍

    • 用户
      • root
      • leeyf其他用户
    • 用户组
      • root
      • group其他组
    • 用户家目录:
      • /home 目录下有各个创建的用户对应的家目录,当用户登录时,会自动进入到自己的家目录

    说明

    • Linux系统是一个多用户多任务的操作系统,任何一个使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以该账号进入系统
    • Linux的用户需要至少属于一个组

    8.2 添加用户

    8.2.1基本语法

    useradd

    8.2.2 案例

    useradd leeyf //添加用户leeyf 默认创建group leeyf
    

    8.2.3 细节说明

    创建成功后,会自动创建和用户同名的家目录

    可通过useradd -d 指定目录,创建新用户,并指定家 目录

    8.3 修改密码

    passwd 用户名 //修改密码
    

    8.4 删除用户

    8.4.1 基本语法

    userdel 用户名 //删除用户保留用户主目录
    userdel -r 用户名 //删除用户及用户主目录
    

    8.4.2细节说明

    是否保留家目录?

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

    8.5 查询用户信息

    8.5.1 基本语法

    id 用户名
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lyo2GTlL-1571913902523)(/pic/4-1569569340608.png)]

    8.5.2 细节说明

    当用户不存在,返回无此用户

    8.6 切换用户

    8.6.1 基本语法

    su - 切换用户名
    
    exit //返回到原来用户 或者ctrl+D 退出当前用户
    

    8.7 查询当前用户

    whoami / who am i  
    

    8.8 用户组

    8.8.1 介绍

    • 类似于角色,系统可以对有共性的多个用户进行统一的管理

    8.8.2 增加组

    groupadd 组名 //创建组
    

    8.8.3 删除组

    groupdel 组名 //删除组
    

    8.8.4 增加用户直接指定组

    useradd -g 用户组 用户名
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bsPK73Ko-1571913902525)(/pic/5-1569569340608.png)]

    8.8.5 修改用户的组

    usermod  -g 用户组 用户名 /将用户改组
    

    8.9 用户配置文件

    /etc/passwd  //用户配置文件
    
    /etc/group  //组胚子文件
    
    /etc/shadow //口令配置文件(密码和登录信息)加密
    

    8.9.1 /etc/passwd

    leeyf:x:1000:1000::/home/leeyf:/bin/bash
    用户名:加密密码:用户id:用户组id::家目录:shell路径
    

    8.9.2 /etc/group

    leeyf:x:1000
    组名:口令组标识符:组id:组内用户列表(隐藏)
    

    第九章 Linux实操篇 实用指令

    9.1 运行级别

    9.1.1 介绍

    级别含义
    0关机
    1单用户(找回密码)
    2多用户无网络服务
    3多用户有网络服务
    4保留
    5图形界面
    6重启

    9.1.2 配置文件

    /etc/inittab
    id:5:initdefault 这行中的数字为运行级别
    

    9.2 切换指定运行级别

    init [012356]
    

    面试题:如何找回丢失的root密码

    解题思路:进入单用户

    //centos7
    引导界面
    e 进入编辑界面
    ro 改 rw 
    删除 rhjb quite
    utf8 后 + init/bin/sh
    ctrl+x 执行进入单用户
    passwd root
    如果乱码 LANG=en
    修改后
    touch /.autorelabel
    然后重启
    
    

    9.3 帮助指令

    9.3.1 介绍

    当我们对某个指令不熟悉时,我们可以使用Linux提供的帮助指令来了解指令的使用方法。

    9.3.2 man

    • man [命令或者配置文件]

    9.3.3 help

    • help [命令或者配置文件]

    9.3.4 百度更直接

    9.4 文件目录类

    9.4.1 pwd指令

    • 基础语法
      • pwd (显示当前目录绝对路径)

    9.4.2 ls指令

    • 基础语法
      • ls [选项] [目录或文件]
        • -a ,显示当前目录所有文件和目录,包括隐藏
        • -l ,以列表的方式显示信息
        • 更多选项 man ls查看

    9.4.3 cd指令

    • 基础语法
      • cd [参数] [路径]
      • 常用参数:
        • 绝对路径和相对路径
          • 绝对 :/ 开始
          • 相对:从当前位置开始
        • cd ~ 回到家目录
        • cd .. 回到当前目录的上一级目录

    9.4.4 mkdir指令&rmdir指令

    • 基础语法
      • mkdir [选项] 要创建的目录
      • rmdir [选项] 要删除的空目录
    • 常用选项
      • -p 创建多级目录
    • 删除非空目录
      • rm -rf 目录

    9.4.5 touch 指令

    • 基础语法
      • touch 文件名称 创建空文件
      • touch [文件1,文件2] 可一次性创建多个文件

    9.4.6 cp 指令

    • 拷贝指令
    • 基础语法
      • cp [选项] source dest
    • 常用选项
      • -r 递归复制整个文件夹
    • 强制覆盖
      • /cp 直接覆盖

    9.4.7 rm指令

    • rm 移除文件或目录
    • 基本语法
      • rm [选项] 文件或目录
    • 常用选项
      • -r 递归删除整个文件夹
      • -f 强制删除不提示

    9.4.8 mv指令

    • mv 移动文件与目录或重命名
    • 基本语法
      • mv oldNameFile newNameFile 重命名
      • mv /temp/movefile /targetFolder 移动文件

    9.4.9 cat指令

    • 查看文件内容
    • 基础语法
      • cat [选项] 内容
    • 常用选项
      • -n 显示行号
    • 常用法
      • cat [选项] 内容 | more 以cat打开文件,并使用分页显示

    9.4.10 more指令

    • 基于vi编辑器的文本过滤器,以全屏幕的方式按页显示内容

    • 基础语法

      • more 要查看的文件
    • 内置快捷键

      快捷键功能
      空白键space向下翻一页
      Enter向下翻一行
      q立即离开more,不再显示文件内容
      ctrl+F向下滚动一屏
      ctrl+B返回上一屏
      =输出当前行号
      f输出文件名和当前行的行号

    9.4.11 less指令

    • 分屏查看文件内容,功能与more相似,但比more强大。

      less在显示文件内容时,并部署一次将整个文件加载之后再显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率

      操作功能说明
      空白键向下移动一页
      [pagedown]向下翻动一页
      [pageup]向上翻动一页
      /字串向下搜寻[字串],n向下查询,N向上查询
      ?字串向上搜寻[字串],n向上查询,N向下查询
      q离开less程序

    9.4.12 >指令和 >>指令

    • > 输出重定向 和 >> 追加
      • > 覆盖原来内容
      • >> 追加内容在原文件
    • 基本语法
      • ls -l > 文件 列表的内容写入文件中
      • ls -al >> 文件 列表的内容追加到文件的末尾
      • cat 文件1 > 文件2 将文件1的内容覆盖到文件2
      • echo "内容" >> 文件

    9.4.13 echo指令

    • 输出内容到控制台
    • echo [选项] [输出内容]
    • echo $PATH 输出环境变量

    9.4.14 head指令

    • 用于显示文件的开头部分内容,默认情况head指令显示文件的前10行内容
    • 基本语法
      • head 文件 查看文件头10行内容
      • head -n 5 查看文件头5行内容

    9.4.15 tail指令

    • 用于输出文件尾部的内容,默认情况下tail 显示文件的后10行内容
    • 基本语法
      • tail 文件 查看文件后10行内容
      • tail -n 5 文件 查看文件后5行内容
      • tail -f 文件 实时追踪该文档的所有更新

    9.4.16 ln指令

    • 软链接~符号链接 ,主要存放了链接其他文件的路径

    • 基本语法

      • ln -s [原文件或目录] [软链接名] 给原文件创建一个软链接
        [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H52YgVw0-1571913902526)(/pic/6-1569569340608.png)]

      • 删除软链接

        rm -rf LinkToROot
        
        
    • 当用pwd查看目录时,仍然是软链接所在目录

    9.4.17 history指令

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

    • 基本语法

      • history   
        
        
    • history显示所有执行过的所有历史指令

    • history 10 显示最近执行过的10个指令

    • !10 执行历史指令中编号为10的指令

    9.5 时间日期类

    9.5.1 date指令

    9.5.1.1 显示当前日期

    • 基本用法
      • date 显示当前时间
      • date +"%Y" 显示当前年
      • date +"%m"显示当前月
      • date +"%d"显示当前日
      • date +"%Y-%m-%d-%H%M%S" 显示年月日时分秒

    9.5.1.2 设置系统时间

    • 基本语法
      • date -s 字符串时间

    9.5.2 cal 指令

    • 查看日历指令
    • 基本语法
      • cal [选项] 不加选项,显示本月日历
      • cal 2020 显示 2020年日历

    9.6 搜索查询类

    9.6.1 find指令

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

    • 基本语法

      • find [搜索范围] [选项]
    • 选项说明

      • -name <查询方式> 按照指定的文件名查找模式或文件
      • -user<用户名> 查找属于指定用户名的所有文件
      • -size<文件大小> 按照指定的文件大小查找文件

      find / -size +20M 查找大于20M的文件

      find / -size -20M 查找小于20M的文件

    9.6.2 locate指令

    • 快速定位文件路径。locate指令利用事先建立的系统中所有的文件名称及路径的locate数据库实现快速定位给定的文件。
    • 为了保证查询结果的准确度,管理员必须顶起更新locate时刻
    • 由于locate基于数据库进行查询,所以第一次运行前,使用updatedb指令创建locate数据库
    • 基本语法
      • locate 查询文件

    9.6.3 grep指令和管道符号|

    • 过滤查找。 管道符号"|",表示将前面的命令结果交给后面的命令处理
    • 基本语法
      • grep [选项] 查找内容的源文件
    • 常用选项
      • -n 显示匹配行及行号
      • -i 忽略字母大小写

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l8IxdSUD-1571913902527)(/pic/7-1569569340608.png)]

    9.7 压缩跟解压缩类

    9.7.1 gzip/gunzip指令

    • 基本语法
      • gzip 文件 压缩为 *.gz文件
      • gunzip 文件 解压缩 将*.gz 文件解压
    • 细节说明
      • 使用gzip压缩后不会保留原文件

    9.7.2 zip/unzip指令

    • zip用于压缩,unzip用于解压
    • 基本语法
      • zip [选项] xxx.zip 要压缩的内容 压缩文件和目录
      • unzip [选项] xxx.zip 解压缩文件
    • 常用选项
      • zip -r 递归压缩,压缩目录
      • unzip -d 目录 指定解压缩后文件的存放目录

    9.7.3 tar指令

    • 打包指令
    • 基本语法
      • tar [选项] xxx.tar.gz打包内容
    • 选项说明
      • -c产生tar打包文件
      • -v显示详细信息
      • -f指定压缩后的文件名
      • -z打包同时压缩
      • -x解包tar文件
    • tar -zcvf a.tar.gz 要压缩的文件 压缩打包
    • tar -zxvf a.tar.gz 解压打包

    第十章 Linux实操篇 组管理和权限管理

    10.1 Linux组基本介绍

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

    10.2 文件/目录的所有者

    10.2.1 查看所有者

    • 基本语法
      • ls -ahl查看文件的所有者

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IDQwgSEv-1571913902527)(/pic/8-1569569340608.png)]

    10.2.2 修改文件所有者

    • 基本语法
      • chown 用户名 文件名 修改文件所有者

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jz2JdJbv-1571913902528)(/pic/9-1569569340608.png)]

    10.3 组的创建

    10.3.1 创建组

    • 基本语法
      • groupadd 组名

    10.3.2 创建指定组的用户

    • 基本语法
      • useradd -g 组名 用户名

    10.4 文件或者目录所在组

    • 当用户创建文件后,用户所在组就是文件所在组

    10.4.1 查看所有组

    • 基本语法
      • ls-ahl

    10.4.2 修改所在组

    • 基本语法
      • chgrp== 用户组 文件名

    10.5 改变用户所在组

    10.5.1 改变用户所在组

    • 基本语法
      • usermod -g 组名 用户名

    10.5.2 改变用户登录的初始目录

    • 基本语法
      • usermod -d 目录名 用户名

    10.6 权限管理

    10.6.1 基本介绍

    10.6.1.1 文件类型

    • ----------
    类型定义
    -普通文件
    d目录
    l链接文件
    c字符设备【键盘、鼠标】
    b块文件【硬盘】

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SKyintV9-1571913902528)(/pic/11-1569569340608.png)]

    10.6.1.2 所有者权限

    • ------- 1 root root 148 Aug 20 11:58 a.txt
    类型定义
    r
    w
    x执行

    10.6.1.3 所在组权限

    • ----— 1 root root 148 Aug 20 11:58 a.txt
    类型定义
    r
    w
    x执行

    10.6.1.4 其他组用户权限

    • ------- 1 root root 148 Aug 20 11:58 a.txt
    类型定义
    r
    w
    x执行

    10.6.1.5 num

    • ---------- 1 root root 148 Aug 20 11:58 a.txt
      • 1 如果是文件代表 硬链接的数目
      • 1 如果是目录代表 该目录子目录的个数

    10.6.1.6 size

    • ----------1 root root 148 Aug 20 11:58 a.txt
      • 148 代表文件大小
      • 如果是目录大小为4096

    10.6.1.7 time

    • ---------- 1 root root 148 Aug 20 11:58 a.txt
      • Aug 20 11:58 最后修改时间

    10.6.1.8 name

    • ----------1 root root 148 Aug 20 11:58 a.txt
      • a.txt 文件名

    10.6.2 详解rwx权限

    10.6.2.1 rwx作用到文件

    符号代表
    r读取查看
    w可以修改,不代表可以删除(删除条件对该文件所在目录有写权限,才能删除)
    x代表可以被执行

    10.6.2.2 rwx作用在目录

    符号代表
    r可读取
    w可以修改,目录内创建+删除+重命名目录
    x可以进入目录

    10.6.3 权限管理-chmod

    10.6.3.1 通过chmod指令,可以修改文件或目录的权限

    • 第一种 + - = 变更权限
    符号含义
    u所有者
    g所有组
    o其他人
    a所有人(u,g,o)
    • 基本用法
      • chmod u=rwx,g=rx,o=x 文件目录名
      • chmod o+w 文件目录名
      • chmod a-x 文件目录名
    • 案例
      • 给abc文件的所有者 读写执行 的权限,给所在组 读执行权限 ,给其他组读执行权限
        • chmod u=rwx,g=xr,o=xr abc
      • 给abc文件的所有者除去执行的权限,增加组写的权限
        • chmod u-x,g+w abc
      • 给abc文件的所有用户添加读的权限
        • chmod a+r abc

    10.6.3.2 通过数字变更权限

    规则 :r=4 w=2 x=1 rwx=4+2+1=7

    chmod u=rwx,g=rx,o=x 文件目录

    相当于 chmod 751 文件目录

    10.6.4 修改文件所有者&所有组

    10.6.4.1 改变文件所有者-chmod

    • chown newowner file 改变文件所有者
    • chown newowner:newgroup file 改变用户的所有者和所有组
    • -R 如果是目录,择使其下所有子文件或目录递归生效

    10.6.4.2 改变文件所有组-chgrp

    • chgrp newgroup file 改变文件的所有组
    • -R 如果是目录,择使其下所有子文件或目录递归生效

    10.7实践–警匪游戏

    police ,bandit
    
    jack,jerry: 警察
    xh,xq:土匪
    1.创建组
    2.创建用户
    3.jack 创建一个文件,自己可以读写,本组人可以读写,其他组没有任何权限
    4.jack修改该文件,让其他组可以读,本组人可以读写
    5.xh投靠警察,查看是否可以读写
    
    
    groupadd police //创建组
    groupadd bandit  //创建组
    
    useradd -g police jack //创建用户并指定组
    useradd -g police jerry 
    useradd -g bandit xh
    useradd -g bandit xq
    passwd 用户 //给所有用户添加密码
    
    touch a.txt //创建文件
    
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OM9VeMz3-1571913902529)(/pic/12-1569569340608.png)]

    chmod o-r a.txt
    
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qIsljzWN-1571913902530)(/pic/13-1569569340608.png)]

    chmod o+r,g+rw a.txt
    
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2NR86yn3-1571913902531)(/pic/14-1569569340608.png)]

    usermod -g police xh //改变xh所在组
    
    chmod g=rx jack //给所在组 r x权限
    
    

    第十一章 Linux实操篇 定时任务调度

    11.1 crond 任务调度

    • 任务调度,指系统在某个时间执行的特定的命令或程序
    • 分类
      • 1.系统工作,重要工作必须周而复始的执行
      • 个别用户工作
    • 基本语法
      • crontab [选项]
    • 常用选项
      • -e编辑定时任务
      • -l查看定时任务
      • -r删除当前用户所有定时任务
      • service crond restart 重启任务调度
    • 参数细节说明
      • */ * * * * * 指令
    项目含义范围
    第一个’*’一小时中的第几分钟0-59
    第二个*一天中的第几个小时0-23
    第三个*一个月当中的第几天1-31
    第四个*一年当中的第几个月1-12
    第五个*一周中的星期几0-7(07是周天)
    • 特殊说明
    特殊符号含义
    *代表任何时间。比如第一个※代表一个消失中每分钟都执行一次的意思
    代表不连续的时间。比如’0 8,12,16 * * * 命令’,代表在每天的8点0坟,12点0分,16点0分都执行一次命令
    -代表连续的时间范围。比如’0 5 * * 1-6 命令’,代表在周一到周六的5点0分执行命令
    */n代表每隔多久执行一次。比如’*/10 * * * * 命令’,代表每隔10分钟执行一次命令
    • 应用实例
      • 案例1:每隔1分钟,将当前时间信息,追加到/tmp/mydate文件中
        • */1 * * * * date>> /tmp/mydate

    第十二章 Linux实操篇 Linux磁盘分区和挂载

    12.1 分区基础知识

    12.1.1 mbr分区

    • 最多支持四个主分区
    • 系统只能安装在主分区
    • 扩展分区要占一个主分区
    • MBR最大只支持2TB,但是拥有最好的兼容性

    12.1.2 gtp分区

    • 支持无限多个主分区(操作系统可能限制,Windows下最多128个分区)
    • 最大支持18EB的大容量(1EB=1024PB,1PB=1024TB)
    • Windows7 64以后支持gtp

    12.2分区介绍

    12.2.1 windows分区

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kjLF69kC-1571913902531)(/pic/15-1569569340608.png)]

    12.2.2 Linux分区

    • 原理介绍
      • Linux无论有几个分区,分给哪个目录使用,归根结底只有一个根目录。一个独立且唯一的文件结构,每个分区都用来组成整个文件系统的一部分。
      • 采用一种"载入"的处理方式,整个文件系统中包含了一整套文件和目录,且将一个分区和一个目录联系起来,这是要载入的一个分区将使用它的存储空间在一个目录下获得
    • 示意图

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wLSJmk46-1571913902532)(/pic/16-1569569340608.png)]

    12.3 硬盘说明

    • 硬盘分为IDE和SCSI硬盘,目前基本是SCSI硬盘
    • 对于IDE硬盘,驱动器标识符为’hdx’,hd标明分区所在设备类型x为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从盘),’~'代表分区,前四个分区用数字1到4表示,他们为主分区或者扩展分区,从5开始为逻辑分区。hda3为第一个IDE盘上第三个主分区或者扩展分区,hdb2表示第二个IDE盘上的第二个主分区或扩展分区。
    • 对于SCSI硬盘则标识为’sdx’,其他标识跟IDE硬盘表示方法一样
    • lsblk -f(老师不离开) 查看系统的分区和挂载情况

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L4eemzZP-1571913902533)(/pic/17-1569569340609.png)]

    12.4 挂载经典案例

    • 需求 给Linux增加一块硬盘,挂载到/home/newdisk
    • 虚拟机添加硬盘
    • 分区 fdisk /dev/sdb
    • 格式化 mkfs -t ext4 /dev/sdb x
    • 挂载 先创建一个目录 /home/newdisk, 挂载 ,mount /dev/sdbx /home/newdisk
    • 设置自动挂载 vim /etc/fstab
      • /dev/sdbx /home/newdisk ext4 defaults 0 0
    • 断掉挂载 umount /dev/sdb1

    12.5 查询系统整体磁盘使用情况

    12.5.1 df指令

    • 基本语法
      • df -lh

    12.5.2 du指令

    • 基本语法
      • du -h /目录
    • 选项
      • -s指定目录占用大小汇总
      • -h带计量单位
      • -a含文件
      • --max-depth=1 子目录深度
      • -c 列出明细同时,增加汇总值
    • 应用实例
      • 查询/opt目录的磁盘占用情况,深度为1

    12.6 磁盘情况-工作实用指令

    • 统计/home文件夹下文件的个数
      • ls -l /home/leeyf | grep '^-' | wc -l
      • ls 列出来
      • grep 过滤 - 打头的文件
      • wc统计
    • 统计/home下面目录的个数
      • ls -l /home/leeyf | grep '^d' | wc -l
    • 统计/home文件夹下文件的个数,包括子文件夹里的
      • ls -lR /home/leeyf | grep '^-' | wc -l
      • -R 递归
    • 统计文件夹下目录的个数
      • ls -lR /home/leeyf | grep '^d' | wc -l
    • 用树状图显示目录结构
      • tree 目录

    第十三章 Linux实操篇 网络配置

    13.1 Linux网络配置原理图(含虚拟机)

    • 目前的网络配置采用NAT模式

    NAT模式(网络环境)

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-86iCGjaC-1571913902533)(/pic/18-1569569340609.png)]

    13.2 查看网络ip跟网关

    • ifconfig

    13.3 测试网络联通

    • ping

    13.4 Linux 网络环境配置

    • 自动获取(获取的ip可能不一样)不适用于做服务器
    • 修改配置文件指定ip
      • 直接修改配置文件来指定ip,并且可以连接到外网
      • 编辑 vim /etc/sysconfig/network-scripts/ifcfg-eth0
      • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ST15eAEE-1571913902534)(/pic/19-1569569340609.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pri7eJxn-1571913902535)(/pic/20-1569569340609.png)]

    第十四章 Linux实操篇 进程管理

    14.1 基本介绍

    • Linux中每个执行的程序都称为一个进程,都分配一个ID号
    • 每一个进程都对应一个父进程,而父进程可以复制多个进程
    • 每个进程都可能以两种方式存在,前台与后台
    • 一般 系统的服务都是以后台运行的,常驻在后台,直到关机结束

    14.2 ps指令

    • 显示系统执行的进程
    • 基本语法
      • ps -a:显示当前终端的所有进程信息
      • ps -u:以用户个事显示进程信息
      • ps -x:显示后台进程运行的参数

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1sqKU10N-1571913902536)(/pic/21-1569569340609.png)]

    • ps -aux |grep xxx过滤查询
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NyWeBWOy-1571913902536)(/pic/22-1569569340609.png)]
    • ps -ef 查看父进程
      • e 显示所有进程
      • f 全格式

    14.3 终止进程kill 和killall

    • kill [选项] PID 强制终止进程通过进程号
    • killall 进程名称 通过进程名称杀死进程,也支持通配符,这在系统过载而变得很慢时很有用
    • 常用选项
      • -9强迫进程立即停止
    • 案例
      • 踢掉某个非法登录的用户
        • 查询 ps -aux |grep sshd
        • kill -9 非法用户进程
      • 终止远程登录服务
        • kill sshd的服务

    14.4 查看进程树 pstree

    • 语法
      • pstree [选项] 更加直观的查看进程信息
    • 选项
      • -p显示进程的PID
      • -u 显示进程的所属用户

    14.5 服务管理

    • 介绍
      • 本质是进程,但是运行在后台,通常会监听某个端口,等待其他程序的请求,因此我们又称为守护进程,是Linux中重要的知识点
    • 原理图
      • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-a19fU4oJ-1571913902537)(/pic/23-1569569340609.png)]
    • 指令
      • service 服务名 【start|stop| restart| reload | status】
      • CentOS7.0以后 使用 systemctl 代替 service

    14.5.1 telnet 指令

    • 检查Linux的某个端口是否在监听,并且可以访问
    • 语法
      • telnet ip 端口号

    14.5.2 chkconfig指令

    • 通过chkconfig命令可以给各个运行级别设置自启动/关闭
    • 基本语法
      • 查看服务 chkconfig --list|grep xxx
      • chkconfig 服务名 --list
      • chkconfig --level 5 服务名 on/off

    14.6 动态监控进程

    14.6.1 top指令

    跟ps相似,top在执行一段时间可以更新正在运行的进程

    • 基础语法
      • top [选项]
    • 选项
      • -d 秒数 指定top命令每隔几秒更新,默认是秒在top命令的交互模式当中可以执行的命令
      • -i 使top不显示僵死或者闲置的进程
      • -p 通过指定监控进程ID来仅仅监控某个进程的状态
    • 交互操作说明
      • p 以CPU使用率排序,默认此项
      • M 以内存的使用率排序
      • N 以PID排序
      • q 退出top

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4ciEft2Z-1571913902538)(/pic/24-1569569340609.png)]

    14.5 监控网络状态

    14.5.1 netstat指令

    • 基本语法
      • netstat [选项]
    • 选项
      • -an 按一定顺序排列输出
      • -p 显示哪个进程在调用
    展开全文
  • linux设置时区和时间How to set date, time and timezone on Linux/Unix box will be introduced in this post. 本文将介绍如何在Linux / Unix机顶盒上设置日期,时间和时区。 Unix time, or POSIX time which is a...

    linux设置时区和时间

    How to set date, time and timezone on Linux/Unix box will be introduced in this post.

    本文将介绍如何在Linux / Unix机顶盒上设置日期,时间和时区。

    Unix time, or POSIX time which is a system for describing points in time is the number of seconds elapsed since midnight UTC on the morning of January 1, 1970, not counting leap seconds.

    Unix时间(即POSIX时间,它是用于描述时间点的系统)是自1970年1月1日凌晨UTC以来经过的秒数,不包括seconds秒。

    The number of seconds elapsed can be got by this command on Linux/Unix systems:

    在Linux / Unix 系统上,此命令可以获取经过的秒数:

    $ date +%s

    设定Linux日期 (Set Linux date)

    Linux date can be set using following syntax:

    可以使用以下语法设置Linux日期:

    # date +%Y%m%d -s "yyyymmdd"

    yyyy is year, mm is month and dd is day.

    yyyy是年,mm是月,dd是天。

    For example, we can set the date to June 22, 2010 by:

    例如,我们可以通过以下方式将日期设置为2010年6月22日:

    # date +%Y%m%d -s "20100622"

    设定Linux时间 (Set Linux time)

    Linux time can be set using following syntax:

    可以使用以下语法设置Linux时间:

    # date +%T -s "hh:mm:ss"

    hh is hour, mm is minite and ss is second.

    hh是小时,mm是微小的,ss是秒。

    For example, we can set the time to 11:28 by:

    例如,我们可以通过以下方式将时间设置为11:28:

    # date +%T -s "11:28:00"

    设置Linux日期和时间 (Set Linux date and time)

    The date and time can be set by date command at the same time by:

    日期和时间可以通过date命令同时设置:

    # date mmddhhmmyyyy.ss

    The first mm means month while the second mm means minite.

    第一个毫米表示月份,第二个毫米表示分钟。

    For example, we can set the date and time to 11:28 on June 22, 2010 by:

    例如,我们可以通过以下方式将日期和时间设置为2010年6月22日的11:28:

    # date 062211282010.00

    Another way to set new date and time is using the following syntax:

    设置新日期和时间的另一种方法是使用以下语法:

    # date --set="STRING"

    The method to set the date and time above is:

    上面设置日期和时间的方法是:

    # date -s "22 JUN 2010 11:28:00" 

    or

    要么

    # date --set="22 JUN 2010 11:28:00" 

    设置Linux时区 (Set Linux timezone)

    The configuration file for timezone is usally /etc/localtime which is often a symlink to the file localtime or to the correct time zone file in the system. The time zone directory is /usr/share/zoneinfo where you can find a list of time zone regions. In some distro such as Fedora/RHEL/Cent OS, the zone files use /usr/share/zoneinfo/REGION/CITY like format.

    时区的配置文件通常是/ etc / localtime ,通常是到文件localtime或系统中正确的时区文件的符号链接。 时区目录是/ usr / share / zoneinfo ,您可以在其中找到时区区域列表。 在某些发行版(例如Fedora / RHEL / Cent OS)中,区域文件使用/ usr / share / zoneinfo / REGION / CITY之类的格式。

    The method for setting Linux timezone:

    设置Linux时区的方法:

    如果需要,请备份旧时区信息 (Backup old timezone info if needed)

    # mv /etc/localtime /etc/localtime.bak

    从/ etc / localtime中找出合适的时区,并创建一个指向它的符号链接 (Find out the appropriate timezone from /etc/localtime and create a symbolic link to it)

    For example we want to set the time zone to Hong Kong time:

    例如,我们要将时区设置为香港时间:

    # ln -sf /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime

    确认时区已更改 (Verify the timezone is changed)

    $ date

    You may get a output like this:

    您可能会得到如下输出:

    $ date
    Tue Jun 22 12:33:10 HKT 2010

    一些相关的实用程序 (Some related utilities)

    Here is some related Linux time/date related utilities.

    这是一些与Linux时间/日期相关的实用程序。

    通过rdate更新当前系统时间 (Update the current system time by rdate)

    # rdate -s time.nist.gov

    For a list of available time servers, please check NIST Internet Time Servers.

    有关可用时间服务器的列表,请检查NIST Internet时间服务器

    设置硬件时钟 (Set the hardware clock)

    # /sbin/hwclock --systohc

    Fedora / RHEL / CentOS具有日期/时间设置工具 (Fedora/RHEL/CentOS have a date/time setting tool)

    You can use the GUI tool on Red Hat’s distros:

    您可以在Red Hat发行版上使用GUI工具:

    # system-config-date

    Or try:

    或尝试:

    # setup 

    and then select the timezone entry.

    然后选择时区条目。

    翻译自: https://www.systutorials.com/linux-setting-date-time-and-timezone/

    linux设置时区和时间

    展开全文
  • 如何修改linux时间如何修改linux时间date:无法设置日期 :不允许的操作 如何修改linux时间 进入linux系统一般都会有些延迟,所以在时间方面会有点误差, 影响就不用说了,在我这个小菜鸡看来,首先就影响美观(可能...
  • 1、将当前时间以Unix时间戳表示date +%s输出如下:15126924772、转换指定日期为Unix时间戳date -d '2017-12-08 08:22' +%s输出如下:15126925203、将Unix时间戳转换为日期时间 不指定日期时间的格式 date -d @...
  • Linux date日期格式及加减运算

    千次阅读 2018-11-03 12:33:38
    Linux date 日期加减运算 date // 默认时间格式 Thu Aug 16 05:42:38 UTC 2012 date +" %b %e, %G " // 定制格式 Aug 16, 2012 date +"%b %e, %G" -d' -1 day ' 或  date -d'- 1 day ' +"%b %e, %G" // 减一天(加...
  • 由于使用的f-string,请使用Python3.6及以上的版本,或者把cmd变量修改了。 import paramiko import time def set_time(hostname): ssh = paramiko.SSHClient() ... ssh.set_missing_host_key_policy(paramiko.Aut...
  • Linux下查找指定日期的文件

    千次阅读 2018-03-25 20:37:00
    OK,问题来了,如何过滤出指定日期的文件?   二、强大的Linux 一行代码搞定: ls --full-time /recordings/ | sed -n '/2018-03-21/p' 得到的文件列表就是2018-03-21生成的文件。   三、Java示例代码 publi.....
  • linux 的时区设置函数tzset() 标签: linuxtimezonevariablesdstnullwindows 2010-01-26 15:27 7482人阅读 评论(0) 收藏 举报  分类: linux&uClinux(44)  本文转载于: ...
  • 后文有使用Setfile命令这一可行的解决方法): 命令格式 touch [选项参数] <文件名> 命令参数 -t 使用指定的日期时间,修改文件的“atime(访问时间)”,“mtime(修改时间)“。 -a 或--time=atime或--...
  • Linux获取昨天、明天或多天前的日期

    千次阅读 2020-07-07 22:31:49
    Linux中可以通过date命令获取昨天、明天、上个月、下个月、上一年和下一年 获取昨天 date -d ‘yesterday’ # 或 date -d ‘last day’ 获取明天 date -d ‘tomorrow’ # 或 date -d ‘next day’ 获取上个月 ...
  • Linux永久修改日期时间

    千次阅读 2018-12-21 10:26:27
    永久修改时间:  hwclock --show 查看硬件的时间  hwclock --set --date '2018-12-21 10:25:00' 设置硬件时间 hwclock --hctosys 设置系统时间和硬件时间同步 clock -w 保存时钟...
  • linux bash脚本Fatmawati Achmad Zaenuri/Shutterstock.comFatmawati Achmad Zaenuri / Shutterstock.com The date command is found in the Bash shell, which is the default shell in most Linux distributions ...
  •  \d :代表日期,格式为weekday month date,例如:"Mon Aug 1"   \H :完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux   \h :仅取主机的第一个名字,如上例,则为fc4...
  • Linux基础:timedatectl命令使用介绍

    万次阅读 2019-03-11 21:01:49
    timedatectl是Linux下的一条命令,用于控制系统时间和日期。可以用来查询和更改系统时钟于设定,同时可以设定和修改时区信息。这篇文章简单介绍一下如何使用timedatectl进行常见操作。
  • linux下同步时间,至少有两种方法:rdate,ntpdate两种。centos最小化安装默认不安装,先确认已经安装过,否则先安装。其中rdate本身是用来获取远程时间服务器上时间用的,带上 -s 参数,就可以将获取到的时间应用到...
  • 上一篇 linux 下 alarm(), setitimer 定时器与 POSIX 定时器 timer_settime()对比总结 (上)总结了 alarm 和setitimer定时器的用法和注意事项。alarm不适用于精度要求比较高的场景,而setitimer也有一个缺点:因为...
  • linux:根据关键字或日期查找日志

    千次阅读 2019-12-11 18:20:40
    Q:Linux命令,根据关键字查询日志 A:1.单个文件可以使用vi或vim编辑器打开日志文件,使用编辑器里的查找功能。在查看模式下,符号/后面跟关键字向下查找,符号?后面跟关键字向上查找,按n查找下一个,按N查找上一个...
  • linux 修改时间和日期date

    千次阅读 2015-08-16 09:38:49
    查看日期和时间date修改日期date -s 月/日/年 date -s 08/15/2015修改时间date -s 09:29:33写入CMOSsudo clock -w利用ssh同步2台机器date --set="$(ssh root@192.168.1.110 date)
  • JavaScript中linux时间戳与日期的转换

    千次阅读 2017-04-09 09:45:48
    1.由linux时间戳转换为格式化日期:  1>例:由一个linux时间戳1490778706000转换为:2017/3/29 下午5:11:46  var CrDate = new Date();  CrDate.setTime(date);//其中data为需要被转化的linux时间戳 ...
  • Linux中的date日期命令详解

    千次阅读 2021-05-21 01:07:13
    在命令行直接输入date,可以查看目录Linux系统的时间 显示的内容:年份、月份、日 、周 、具体的时分秒及CST时区。 2. date的标记 date命令还可以用来设定系统的日期与时间,在显示方面,使用者可以设定欲显示的...
  • 如上图,优化后nohup.out日志文件按照日期进行展示。 思路: 编写脚本,每日凌晨将前一天的日志复制到备份文件夹,并按前一天日期进行命名,然后清空原始nohup日志,这样日志只记录当天的日志。 工具: Xshell、Xftp...
  • Linux 修改系统时间成功未生效

    千次阅读 2019-12-26 10:35:19
    1.使用 date -s “2019-02-02 02:02:02” 命令修改系统时间,提示修改成功但是系统时间未发生变化;...3.关闭ntp同步 timedatectl set-ntp false,在执行 date -s “2019-02-02 02:02:02” ,时间修改完成。 ...
  • linux的时区设置函数tzset()

    千次阅读 2014-01-14 15:25:14
    本文转载于: http://hi.baidu.com/peruke/blog/item/b8de06ec6a04583b27979132.html   tzset ...void tzset(void);...tzset()函数使用环境变量TZ的当前设置把值赋给三个全局变量:daylight,timezone和tznam
  • date命令  date命令的功能是显示和设置系统日期和时间。... -s datestr, --set datestr 设置datestr 描述的日期  -u, --universal 显示或设置通用时间 date %s 从1970年1月1日00:00:00到目前经历的秒数

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 65,382
精华内容 26,152
关键字:

linuxset日期

linux 订阅