Linux总结

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

文章目录

一、认识操作系统

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

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

  • 78
    点赞
  • 423
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值