Linux入门

第1章.Linux文件与目录结构

1. Linux文件

Linux系统中一切皆文件。

2. Linux目录结构

  • /bin
    • 是Binary的缩写, 这个目录存放着最经常使用的命令
  • /sbin
    • s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
  • /home
    • 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
  • /root
    • 该目录为系统管理员,也称作超级权限者的用户主目录。
  • /lib
    • 系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
  • /lost+found
    • 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
  • /etc
    • 所有的系统管理所需要的配置文件和子目录。
  • /usr
    • 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
  • /boot
    • 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里。
  • /proc
    • 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
  • /srv
    • service缩写,该目录存放一些服务启动之后需要提取的数据。
  • /sys
    • 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
  • /tmp
    • 这个目录是用来存放一些临时文件的。
  • /dev
    • 类似于windows的设备管理器,把所有的硬件用文件的形式存储。
  • /media
    • linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
  • /mnt
    • 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。
  • /opt
    • 这是给主机额外安装软件所摆放的目录。比如你安装一个mysql数据库则就可以放到这个目录下。默认是空的。
  • /var
    • 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
  • /selinux
    • SELinux是一种安全子系统,它能控制程序只能访问特定文件。

第2章.VI/VIM编辑

1.vi/vim

VI是Unix操作系统和类Unix操作系统中最通用的文本编辑器。

VIM编辑器是从VI发展出来的一个性能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计。VIM与VI编辑器完全兼容。

**2.**拷贝数据准备

(1)拷贝/etc/profile 数据到/root目录下

root@hadoop100 桌面\]# cp /etc/profile /root \[root@hadoop100 桌面\]# cd /root/ ### 3. 一般模式 以vi打开一个档案就直接进入一般模式了(这是默认的模式)(可以使用『上下左右』按键来移动光标,你可以使用『删除字符』或『删除整行』来处理档案内容, 也可以使用『复制、贴上』来处理你的文件数据。)。 #### ****1)常用语法**** |---------------------------------------|-------------------------------| | ****语法**** | ****功能描述**** | | ****yy**** | 复制光标当前一行 | | ****y数字y**** | 复制一段(从光标当前行到后n行) | | ****p**** | 箭头移动到目的行粘贴 | | ****u**** | 撤销上一步 | | ****dd**** | 删除光标当前行 | | ****d数字d**** | 删除光标(含)后多少行 | | ****x**** | 剪切一个字母(当前光标),相当于del | | ****X**** | 剪切一个字母(当前光标的前一个),相当于Backspace | | ****yw**** | 复制一个词 | | ****dw**** | 删除一个词 | | ****shift+**** ****6**** ****(\^)**** | 移动到行头 | | ****shift+**** ****4**** ****($)**** | 移动到行尾 | | ****1+shift+g**** | 移动到页头,数字 | | ****shift+g**** | 移动到页尾 | | ****数字N+shift+g**** | 移动到目标行 | 备注:在esc模式下,按键yy是复制,然后,找个空白处 p(粘贴) ### 4.编辑模式 在一般模式中可以进行删除、复制、粘贴等的动作,但是却无法编辑文件内容的!要等到你按下『i, I, o, O, a, A』等任何一个字母之后才会进入**编辑模式**。 注意了!通常在Linux中,按下这些按键时,在画面的左下方会出现**『INSERT或 REPLACE』** 的字样,此时才可以**进行编辑** 。而如果**要回到一般模式时,** 则必须要**按下『Esc』**这个按键即可退出编辑模式。 #### ****1**** ****)进入编辑模式**** |------------|------------| | ****按键**** | ****功能**** | | ****i**** | 当前光标前 | | ****a**** | 当前光标后 | | ****o**** | 当前光标行的下一行 | | ****I**** | 光标所在行最前 | | ****A**** | 光标所在行最后 | | ****O**** | 当前光标行的上一行 | #### ****2**** ****)退出编辑模式**** 按『Esc』键 ### **5 指令模式** #### ****1)基本语法**** |--------------------------------------------------------------------|--------------------------| | ****命令**** | ****功能**** | | ****:w**** | 保存 | | ****:q**** | 退出 | | ****:!**** | 强制执行 | | ****/要查找的词**** | n 查找下一个,N 往上查找 | | ****:**** ****noh**** | 取消高亮显示 | | ****:set nu**** | 显示行号 | | ****:set nonu**** | 关闭行号 | | ****:**** ****%s/**** ****old/**** ****new**** ****/**** ****g**** | 替换内容 /g global替换匹配到的所有内容 | ****2)案例实操**** (1)强制保存退出 :wq! ### 6 模式间转换 ![](https://file.jishuzhan.net/article/1769924908520837121/856295eb30e693f590969d062b370035.webp) ## 第三章、网络配置和系统管理操作 ### **1 查看网络IP 和** **网关** ****1)查看虚拟网络编辑器**** ![](https://file.jishuzhan.net/article/1769924908520837121/883f385bf6dff2004ed65dd256f0d0c3.webp) ****2)修改虚拟网卡IP**** ![](https://file.jishuzhan.net/article/1769924908520837121/40115a278588d1659009564bd0666ea0.webp) ****3)查看网关**** ![](https://file.jishuzhan.net/article/1769924908520837121/dd19e1bc89be05e6f3306f3a8f675f5e.webp) ****4**** ****)**** ****查看windows环境的中**** ****VM**** ****net8**** ****网络**** ****配置**** ![](https://file.jishuzhan.net/article/1769924908520837121/ac41a5d92ca9a24911d92f2f13684715.webp) ![](https://file.jishuzhan.net/article/1769924908520837121/8d2aea01e7e39cc97b7585bcc2de5dd3.webp) ### **2 配置网络** **IP** **地址** #### **1 ifconfig 配置网络接口** ifconfig :network interfaces configuring网络接口配置。 ##### ****1)**** ****基本语法**** ifconfig (功能描述:显示所有网络接口的配置信息) ##### 2)查看当前网络IP ifconfig ### 2 ping 测试主机之间网络连通性 ##### ****1**** ****)**** ****基本语法**** ping 目的主机 (功能描述:测试当前服务器是否可以连接目的主机) ##### ****2**** ****)案例实操-****测试当前服务器是否可以连接百度 ping [www.baidu.com](http://www.baidu.com "www.baidu.com") ### **3** **修改IP** **地址** ##### ****1**** ****)**** ****查看**** ****IP**** ****配置文件**** vim /etc/sysconfig/network-scripts/ifcfg-ens33 有值的按照下面的值修改,没有该项的要增加。 #修改内容 BOOTPROTO="static" #IP的配置方法[none|static|bootp|dhcp](引导时不 使用协议|静态分配IP|BOOTP协议|DHCP协议) ONBOOT="yes" #系统启动的时候网络接口是否有效(yes/no) #添加内容 #IP地址 IPADDR=192.168.10.100 #网关 GATEWAY=192.168.10.2 #域名解析器 DNS1=114.114.114.114 DNS2=8.8.8.8 修改后,如下所示。 ![](https://file.jishuzhan.net/article/1769924908520837121/1f370bde4088bf21ef71b3da51fea162.webp) 编辑完后,按键盘esc,然后输入 :wq 回车即可。 ##### ****2**** ****)**** ****执行**** ****sys**** ****temctl restart network**** ****重启网络**** ### **4** **修改IP** **地址** **后可能会遇到的问题** (1)物理机能ping通虚拟机,但是虚拟机ping不通物理机,一般都是因为物理机的防火墙问题,把防火墙关闭就行 (2)虚拟机能Ping通物理机,但是虚拟机Ping不通外网,一般都是因为DNS的设置有问题 (3)虚拟机Ping [www.baidu.com](http://www.baidu.com "www.baidu.com") 显示域名未知等信息,一般查看GATEWAY和DNS设置是否正确 (4)如果你修改了windows主机的vmnet8的ip需要重启电脑 (5)如果以上全部设置完还是不行,需要关闭NetworkManager服务 * * * systemctl stop NetworkManager 关闭 * systemctl disable NetworkManager 禁用 (6)如果检查发现 systemctl status network 有问题 需要检查ifcfg-ens33 ### **4.配置主机名** ### 1 修改主机名称 #### ****1**** ****)**** ****基本语法**** hostname (功能描述:查看当前服务器的主机名称) #### ****2**** ****)**** ****案例实操**** (1)查看当前服务器主机名称 \[root@hadoop100 桌面\]# hostname (2)如果感觉此主机名不合适,我们可以进行修改。通过编辑/etc/hostname文件 \[root@hadoop100 桌面\]# vi /etc/hostname 注意:修改完成后重启生效。 ### **2** **修改hosts映射文件** #### ****1**** ****)**** ****修改**** ****linux**** ****的主机映射文件**** ****(hosts**** ****文件**** ****)**** ****说明:**** 后续在hadoop阶段,虚拟机会比较多,配置时通常会采用主机名的方式配置,比较简单方便。不用刻意记IP地址。 ##### (1)打开/etc/hosts \[root@hadoop100 桌面\]# vim /etc/hosts 添加如下内容: 192.168.10.100 hadoop100 192.168.10.101 hadoop101 192.168.10.102 hadoop102 192.168.10.103 hadoop103 #### ****2**** ****)**** ****修改**** ****windows7**** ****的主机映射文件**** ****(hosts**** ****文件**** ****)**** ##### (1)进入C:\\Windows\\System32\\drivers\\etc路径 ##### (2)打开hosts文件并添加如下内容 192.168.10.100 hadoop100 192.168.10.101 hadoop101 192.168.10.102 hadoop102 192.168.10.103 hadoop103 #### ****3)**** ****修改**** ****window**** ****10**** ****的主机映射文件**** ****(hosts**** ****文件**** ****)**** ##### (1)进入C:\\Windows\\System32\\drivers\\etc路径 ##### (2)拷贝hosts文件到桌面 ##### (3)打开桌面hosts文件并添加如下内容 192.168.10.100 hadoop100 192.168.10.101 hadoop101 192.168.10.102 hadoop102 ##### (4)将桌面hosts文件覆盖C:\\Windows\\System32\\drivers\\etc路径hosts文件 ### **4** **关闭防火墙** #### **1** **systemctl** ****1**** ****)**** ****基本语法**** systemctl start \| stop \| restart \| status 服务名 ****2**** ****)**** ****经验技巧**** 查看服务的方法:/usr/lib/systemd/system 查看当前路径:pwd ****3**** ****)**** ****案例实操**** ##### (1)查看网络服务的状态 \[root@hadoop100 桌面\]# systemctl status network ##### (2)停止网络服务 \[root@hadoop100 桌面\]# systemctl stop network ##### (3)启动网络服务 \[root@hadoop100 桌面\]# systemctl start network ##### (4)重启网络服务 \[root@hadoop100 桌面\]# systemctl restart network ### **2** **systemctl 设置后台服务的自启配置** ****1**** ****)**** ****基本语法**** systemctl list-unit-files (功能描述:查看服务开机启动状态) systemctl disable service_name (功能描述:关掉指定服务的自动启动) systemctl enable service_name (功能描述:开启指定服务的自动启动) systemctl is-enabled service_name (功能描述:查看指定服务是否开机自启) ### **3** **关闭** **防火墙** ****1**** ****)临时关闭**** ****防火墙**** ##### (1)查看防火墙状态 systemctl status firewalld #### (2)临时关闭防火墙 systemctl stop firewalld #### ****2)开机启动时关闭防火墙**** ##### (1)查看防火墙开机启动状态 systemctl enable firewalld.service ##### (2)设置开机时关闭防火墙 systemctl disable firewalld.service ##### (3)查看服务是否开机自启 systemctl is-enabled firewalld.service disabled 表示开机不自启 enabled 表示开机自启 ### **第四章. 关机重启命令** 在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。 **正确的关机流程为:sync \> shutdown \> reboot \> halt** #### ****1**** ****)**** ****基本语法**** (1)sync (功能描述:将数据由内存同步到硬盘中) (2)halt (功能描述:关闭系统,等同于shutdown -h now 和 poweroff) (3)reboot (功能描述:就是重启,等同于 shutdown -r now) (4)shutdown \[选项\] 时间 ①shutdown参数说明 |------------|-------------| | ****选项**** | ****功能**** | | ****-h**** | -h=halt关机 | | ****-r**** | -r=reboot重启 | ②now参数说明 |-------------|-------------------| | ****参数**** | ****功能**** | | ****now**** | 立刻关机 | | ****时间**** | 等待多久后关机(时间单位是分钟)。 | #### ****2**** ****)**** ****经验技巧**** Linux系统中为了提高磁盘的读写效率,对磁盘采取了 "预读迟写"操作方式。当用户保存文件时,Linux核心并不一定立即将保存数据写入物理磁盘中,而是将数据保存在缓冲区中,等缓冲区满时再写入磁盘,这种方式可以极大的提高磁盘写入数据的效率。但是,也带来了安全隐患,如果数据还未写入磁盘时,系统掉电或者其他严重问题出现,则将导致数据丢失。使用sync指令可以立即将缓冲区的数据写入磁盘。 #### ****3)案例实操**** (1)将数据由内存同步到硬盘中 \[root@hadoop100桌面\]#sync (2)重启 \[root@hadoop100桌面\]# reboot (3)关机 \[root@hadoop100桌面\]#halt ##### (4)计算机将在1分钟后关机,并且会显示在登录用户的当前屏幕中 \[root@hadoop100桌面\]#shutdown -h 1 'This server will shutdown after 1 mins' ##### (5)立马关机(等同于 halt) \[root@hadoop100桌面\]# shutdown -h now ##### (6)系统立马重启(等同于 reboot) \[root@hadoop100桌面\]# shutdown -r now ## **第5章** **远程登录** 通常在工作过程中,公司中使用的真实服务器或者是云服务器,都不允许除运维人员之外的员工直接接触,因此就需要通过远程登录的方式来操作。所以,远程登录工具就是必不可缺的,目前,比较主流的有Xshell,SSH Secure Shell,SecureCRT,FinalShell等,同学们可以根据自己的习惯自行选择。 ## **第6章** **常用基本命令** ### **6.1帮助命令** ### **1.帮助命令** ****1**** ****)**** ****基本语法**** man \[命令或配置文件\] (功能描述:获得帮助信息) ****2**** ****)**** ****显示说明**** |---------------------|--------------| | ****信息**** | ****功能**** | | ****NAME**** | 命令的名称和单行描述 | | ****SYNOPSIS**** | 怎样使用命令 | | ****DESCRIPTION**** | 命令功能的深入讨论 | | ****EXAMPLES**** | 怎样使用命令的例子 | | ****SEE ALSO**** | 相关主题(通常是手册页) | ****3**** ****)**** ****案例实操**** (1)查看ls命令的帮助信息 man ls ### **2 help获得shell内置命令的帮助信息** ****1**** ****)**** ****基本语法**** help 命令 (功能描述:获得shell内置命令的帮助信息) ****2**** ****)**** ****案例实操**** (1)查看cd命令的帮助信息:help cd ### **3 常用快捷键** |------------------|-----------------| | ****常用快捷键**** | ****功能**** | | ****ctrl + c**** | 停止进程 | | ****ctrl+l**** | 清屏;彻底清屏是:reset | | ****ctrl + q**** | 退出 | | ****善于用tab键**** | 提示(更重要的是可以防止敲错) | | ****上下键**** | 查找执行过的命令 | | ****ctrl +u**** | 清除当前敲的命令 | ### 6.2.文件目录类 #### **1 .pwd 显示当前工作目录的绝对路径** pwd:print working directory 打印工作目录 ****1**** ****)**** ****基本语法**** pwd (功能描述:显示当前工作目录的绝对路径) ****2**** ****)**** ****案例实操**** (1)显示当前工作目录的绝对路径 \[root@hadoop101 \~\]# pwd /root #### **2 .ls 列出目录的内容** ls:list 列出目录内容 ****1**** ****)**** ****基本语法**** ls \[选项\] \[目录或是文件

2 选项说明

|------------|-----------------------------------|
| 选项 | 功能 |
| -a | 全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用) |
| -l | 长数据串列出,包含文件的属性与权限等等数据;(常用) |

3 显示说明

每行列出的信息依次是: 文件类型与权限 链接数 文件属主 文件属组 文件大小用byte来表示 建立或最近修改的时间 名字

4 案例实操

(1)查看当前目录的所有内容信息:ls -al

3 cd 切换目录

cd:Change Directory切换路径

1 基本语法

cd [参数]

2 参数说明

|-------------------|--------------------|
| 参数 | 功能 |
| cd 绝对路径 | 切换路径 |
| cd相对路径 | 切换路径 |
| cd ~或者cd | 回到自己的家目录 |
| cd - | 回到上一次所在目录 |
| cd .. | 回到当前目录的上一级目录 |
| cd -P | 跳转到实际物理路径,而非快捷方式路径 |

3 案例实操

(1)使用绝对路径切换到root目录

root@hadoop101 \~\]# cd /root/ (2)使用相对路径切换到"公共的"目录 \[root@hadoop101 \~\]# cd 公共的/ (3)表示回到自己的家目录,亦即是/root这个目录 \[root@hadoop101 公共的\]# cd \~ (4)cd- 回到上一次所在目录 \[root@hadoop101 \~\]# cd - (5)表示回到当前目录的上一级目录,亦即是 "/root/公共的"的上一级目录的意思; \[root@hadoop101 公共的\]# cd .. #### **4 mkdir 创建一个新的目录** mkdir:Make directory 建立目录 ****1**** ****)**** ****基本语法**** mkdir \[选项\] 要创建的目录 ****2**** ****)**** ****选项说明**** |------------|------------| | ****选项**** | ****功能**** | | ****-p**** | 创建多层目录 | ****3**** ****)**** ****案例实操**** (1)创建一个目录 \[root@hadoop101 \~\]# mkdir xiyou \[root@hadoop101 \~\]# mkdir xiyou/mingjie (2)创建一个多级目录 \[root@hadoop101 \~\]# mkdir -p xiyou/dssz/meihouwang #### **5 touch 创建空文件** ****1**** ****)**** ****基本语法**** touch 文件名称 ****2**** ****)**** ****案例实操**** \[root@hadoop101 \~\]# touch xiyou/dssz/sunwukong.txt #### **6 cp 复制文件或目录** ****1**** ****)**** ****基本语法**** cp \[选项\] source dest (功能描述:复制source文件到dest) ****2**** ****)**** ****选项说明**** |------------|------------| | ****选项**** | ****功能**** | | ****-r**** | 递归复制整个文件夹 | ****3**** ****)**** ****参数说明**** |----------------|------------| | ****参数**** | ****功能**** | | ****source**** | 源文件 | | ****dest**** | 目标文件 | ****4**** ****)**** ****经验技巧**** 强制覆盖不提示的方法:\\cp ****5**** ****)**** ****案例实操**** (1)复制文件 \[root@hadoop101 \~\]# cp xiyou/dssz/suwukong.txt xiyou/mingjie/ (2)递归复制整个文件夹 \[root@hadoop101 \~\]# cp -r xiyou/dssz/ ./ #### **7 rm** **删除** **文件或目录** ****1**** ****)**** ****基本语法**** rm \[选项\] deleteFile (功能描述:递归删除目录中所有内容) ****2**** ****)**** ****选项说明**** |------------|----------------------| | ****选项**** | ****功能**** | | ****-r**** | 递归删除目录中所有内容 | | ****-f**** | 强制执行删除操作,而不提示用于进行确认。 | | ****-v**** | 显示指令的详细执行过程 | ****3)**** ****案例实操**** (1)删除目录中的内容 \[root@hadoop101 \~\]# rm xiyou/mingjie/sunwukong.txt (2)递归删除目录中所有内容 \[root@hadoop101 \~\]# rm -rf dssz/ #### 8 .mv 移动文件与目录或重命名 ****1**** ****)**** ****基本语法**** (1)mv oldNameFile newNameFile (功能描述:重命名) (2)mv /temp/movefile /targetFolder (功能描述:移动文件) ****2**** ****)**** ****案例实操**** (1)重命名 \[root@hadoop101 \~\]# mv xiyou/dssz/suwukong.txt xiyou/dssz/houge.txt (2)移动文件 \[root@hadoop101 \~\]# mv xiyou/dssz/houge.txt ./ #### **9. cat 查看文件内容** 查看文件内容,从第一行开始显示。 ****1**** ****)**** ****基本语法**** cat \[选项\] 要查看的文件 ****2**** ****)**** ****选项说明**** |------------|----------------| | ****选项**** | ****功能描述**** | | ****-n**** | 显示所有行的行号,包括空行。 | ****3**** ****)经验**** ****技巧**** 一般查看比较小的文件,一屏幕能显示全的。 ****4**** ****)**** ****案例实操**** (1)查看文件内容并显示行号 cat -n houge.txt #### **10.more 文件内容分屏查看器** more指令是一个基于VI编辑器的文本过滤器,它以全屏幕的方式按页显示文本文件的内容。more指令中内置了若干快捷键,详见操作说明。 ****1**** ****)**** ****基本语法**** more 要查看的文件 ****2**** ****)**** ****操作说明**** |---------------------|-------------------------| | ****操作**** | ****功能说明**** | | ****空白键 (space)**** | 代表向下翻一页; | | ****Enter**** | 代表向下翻『一行』; | | ****q**** | 代表立刻离开 more ,不再显示该文件内容。 | | ****Ctrl+F**** | 向下滚动一屏 | | ****Ctrl+B**** | 返回上一屏 | | ****=**** | 输出当前行的行号 | | ****:f**** | 输出文件名和当前行的行号 | ****3**** ****)**** ****案例实操**** (1)采用more查看文件 \[root@hadoop101 \~\]# more smartd.conf #### **11. less 分屏显示文件内容** less指令用来分屏查看文件内容,它的功能与more指令类似,但是比more指令更加强大,支持各种显示终端。less指令在显示文件内容时,并不是一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高的效率。 ****1**** ****)**** ****基本语法**** less 要查看的文件 ****2**** ****)**** ****操作说明**** |----------------------|----------------------------| | ****操作**** | ****功能说明**** | | ****空白键**** | 向下翻动一页; | | ****\[pagedown\]**** | 向下翻动一页 | | ****\[pageup\]**** | 向上翻动一页; | | ****/字串**** | 向下搜寻『字串』的功能;n:向下查找;N:向上查找; | | ****?字串**** | 向上搜寻『字串』的功能;n:向上查找;N:向下查找; | | ****q**** | 离开 less 这个程序; | ****3)经验技巧**** 用SecureCRT时\[pagedown\]和\[pageup\]可能会出现无法识别的问题。 ****4)**** ****案例实操**** (1)采用less查看文件 \[root@hadoop101 \~\]# less smartd.conf #### **12. tail 输出文件尾部内容** tail用于输出文件中尾部的内容,默认情况下tail指令显示文件的后10行内容。 ****1)**** ****基本语法**** (1)tail 文件 (功能描述:查看文件尾部10行内容) (2)tail -n 5 文件 (功能描述:查看文件尾部5行内容,5可以是任意行数) (3)tail -f 文件 (功能描述:实时追踪该文档的所有更新) ****2**** ****)**** ****选项说明**** |------------------|--------------------| | ****选项**** | ****功能**** | | ****-n\<行数\>**** | 输出文件尾部n行内容 | | ****-f**** | 显示文件最新追加的内容,监视文件变化 | ****3**** ****)**** ****案例实操**** (1)查看文件尾1行内容 \[root@hadoop101 \~\]# tail -n 1 smartd.conf (2)实时追踪该档的所有更新 \[root@hadoop101 \~\]# tail -f houge.txt #### **13** **.echo** echo输出内容到控制台 ****1)**** ****基本语法**** echo \[选项\] \[输出内容

选项:

-e: 支持反斜线控制的字符转换

|--------------|-------------|
| 控制字符 | 作用 |
| \\ | 输出\本身 |
| \n | 换行符 |
| \t | 制表符,也就是Tab键 |

2) 案例实操

echo "hello\tworld"

echo -e "hello\tworld"

14. > 输出重定向和 >> 追加

1 基本语法

(1)ls -l > 文件 (功能描述:列表的内容写入文件a.txt中(覆盖写))

(2)ls -al >> 文件 (功能描述:列表的内容追加到文件aa.txt的末尾)

(3)cat 文件1 > 文件2 (功能描述:将文件1的内容覆盖到文件2)

(4)echo "内容" >> 文件

2 案例实操

(1)将ls查看信息写入到文件中

root@hadoop101 \~\]# ls -l\>houge.txt (2)将ls查看信息追加到文件中 \[root@hadoop101 \~\]# ls -l\>\>houge.txt (3)采用echo将hello单词追加到文件中 \[root@hadoop101 \~\]# echo hello\>\>houge.txt #### **15. ln 软链接** 软链接也成为符号链接,类似于windows里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径。 ****1**** ****)**** ****基本语法**** ln -s \[原文件或目录\] \[软链接名\] (功能描述:给原文件创建一个软链接) ****2**** ****)**** ****经验技巧**** 删除软链接: rm -rf 软链接名,而不是rm -rf 软链接名/ 查询:通过ll就可以查看,列表属性第1位是l,尾部会有位置指向。 ****3**** ****)**** ****案例实操**** (1)创建软连接 \[root@hadoop101 \~\]# mv houge.txt xiyou/dssz/ \[root@hadoop101 \~\]# ln -s xiyou/dssz/houge.txt ./houzi \[root@hadoop101 \~\]# ll (2)删除软连接 \[root@hadoop101 \~\]# rm -rf houzi 注意:rm -rf houzi/ 这样删是删不掉的 不能再软连接后面加/ (3)进入软连接实际物理路径 \[root@hadoop101 \~\]# ln -s xiyou/dssz/ ./dssz \[root@hadoop101 \~\]# cd -P dssz/ #### **16. history 查看已经执行过历史命令** ****1**** ****)**** ****基本语法**** history (功能描述:查看已经执行过历史命令) ****2**** ****)**** ****案例实操**** (1)查看已经执行过的历史命令 \[root@hadoop101 test1\]# history ### **6.3 时间日期类** #### **6.3.0 **基本语法**** ****1**** ****)**** ****基本语法**** date \[OPTION\]... \[+FORMAT

2 选项说明

|---------------------|--------------------------|
| 选项 | 功能 |
| -d<时间字符串> | 显示指定的"时间字符串"表示的时间,而非当前时间 |
| -s<日期时间> | 设置系统日期时间 |

3 参数说明

|---------------------|----------------|
| 参数 | 功能 |
| <+日期时间格式> | 指定显示时使用的日期时间格式 |

6.3.1 date 显示当前时间

1 基本语法

(1)date (功能描述:显示当前时间)

(2)date +%Y (功能描述:显示当前年份)

(3)date +%m (功能描述:显示当前月份)

(4)date +%d (功能描述:显示当前是哪一天)

(5)date "+%Y-%m-%d %H:%M:%S" (功能描述:显示年月日时分秒)

2 案例实操

(1)显示当前时间信息

root@hadoop101 \~\]# date 2017年 06月 19日 星期一 20:53:30 CST (2)显示当前时间年月日 \[root@hadoop101 \~\]# date +%Y%m%d 20170619 (3)显示当前时间年月日时分秒 \[root@hadoop101 \~\]# date "+%Y-%m-%d %H:%M:%S" 2017-06-19 20:54:58 #### **6.3.2 date 显示非当前时间** ****1**** ****)**** ****基本语法**** (1)date -d '1 days ago' (功能描述:显示前一天时间) (2)date -d '-1 days ago' (功能描述:显示明天时间) ****2**** ****)**** ****案例实操**** (1)显示前一天 \[root@hadoop101 \~\]# date -d '1 days ago' 2017年 06月 18日 星期日 21:07:22 CST (2)显示明天时间 \[root@hadoop101 \~\]#date -d '-1 days ago' 2017年 06月 20日 星期日 21:07:22 CST #### **6.3.3 date 设置系统时间** ****1**** ****)**** ****基本语法**** date -s 字符串时间 ****2**** ****)**** ****案例实操**** (1)设置系统当前时间 \[root@hadoop101 \~\]# date -s "2017-06-19 20:52:18" ### **6.4 用户管理命令** #### **6.4.1 useradd 添加新用户** ****1**** ****)**** ****基本语法**** useradd 用户名 (功能描述:添加新用户) useradd -g 组名 用户名 (功能描述:添加新用户到某个组) ****2**** ****)**** ****案例实操**** (1)添加一个用户 \[root@hadoop101 \~\]# useradd tangseng \[root@hadoop101 \~\]#ll /home/ #### **6.4.2 passwd 设置用户密码** ****1**** ****)**** ****基本语法**** passwd 用户名 (功能描述:设置用户密码) ****2**** ****)**** ****案例实操**** (1)设置用户的密码 \[root@hadoop101 \~\]# passwd tangseng **6.4.3 id** **查看** **用户是否存在** ****1**** ****)**** ****基本语法**** id 用户名 ****2**** ****)**** ****案例实操**** (1)查看用户是否存在 \[root@hadoop101 \~\]#id tangseng #### **6.4.** **4** **cat /etc/passwd 查看创建了哪些用户** ****1)**** ****基本语法**** \[root@hadoop101 \~\]# cat /etc/passwd #### **6.4.** **5** **su 切换用户** su: swith user 切换用户 ****1**** ****)**** ****基本语法**** su 用户名称 (功能描述:切换用户,只能获得用户的执行权限,不能获得环境变量) su - 用户名称 (功能描述:切换到用户并获得该用户的环境变量及执行权限) ****2**** ****)**** ****案例实操**** (1)切换用户 \[root@hadoop101 \~\]#su tangseng \[root@hadoop101 \~\]#echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin \[root@hadoop101 \~\]#exit \[root@hadoop101 \~\]#su - tangseng \[root@hadoop101 \~\]#echo $PATH /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/tangseng/bin **6.4.6 userdel 删除用户** ****1**** ****)**** ****基本语法**** (1)userdel 用户名 (功能描述:删除用户但保存用户主目录) (2)userdel -r 用户名 (功能描述:用户和用户主目录,都删除) ****2**** ****)**** ****选项说明**** |------------|-----------------------| | ****选项**** | ****功能**** | | ****-r**** | 删除用户的同时,删除与用户相关的所有文件。 | ****3**** ****)**** ****案例实操**** (1)删除用户但保存用户主目录 \[root@hadoop101 \~\]#userdel tangseng \[root@hadoop101 \~\]#ll /home/ (2)删除用户和用户主目录,都删除 \[root@hadoop101 \~\]#useradd zhubajie \[root@hadoop101 \~\]#ll /home/ \[root@hadoop101 \~\]#userdel -r zhubajie \[root@hadoop101 \~\]#ll /home/ #### **7.4.7** **sudo** **设置普通用户具有root权限** ****1)**** ****添加**** ****atguigu**** ****用户**** ****,**** ****并对其设置密码。**** \[root@hadoop101 \~\]#useradd atguigu \[root@hadoop101 \~\]#passwd atguigu ****2)**** ****修改配置文件**** \[root@hadoop101 \~\]#vi /etc/sudoers 修改 /etc/sudoers 文件,找到下面一行(91行),在root下面添加一行,如下所示: ## Allow root to run any commands anywhere root ALL=(ALL) ALL 用户名xxx ALL=(ALL) ALL 或者配置成采用sudo命令时,不需要输入密码 ## Allow root to run any commands anywhere root ALL=(ALL) ALL 用户名xxx ALL=(ALL) NOPASSWD:ALL 修改完毕,现在可以用atguigu帐号登录,然后用命令 sudo ,即可获得root权限进行操作。 ****3)**** ****案例实操**** (1)用普通用户在/opt目录下创建一个文件夹 sudo mkdir module chown atguigu:atguigu module/ #### **6.4.8 usermod 修改用户** ****1**** ****)**** ****基本语法**** usermod -l 新用户名 老用户名 usermod -d /home/新用户名 -m 新用户名 ****2**** ****)**** ****选项说明**** |------------|------------| | ****选项**** | ****功能**** | | ****-l**** | 改变用户名 | | ****-d**** | 修改家目录 | ****3**** ****)**** ****案例实操**** (1)改变用户名 \[root@hadoop101 opt\]#usermod -l pengyuyan huge \[root@hadoop101 opt\]#usermod -d /home/huge -m huge ### **6.5 用户组管理命令** 每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同Linux 系统对用户组的规定有所不同。 如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。 用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对/etc/group文件的更新。 #### **6.5.1 groupadd 新增组** ****1**** ****)**** ****基本语法**** groupadd 组名 ****2**** ****)**** ****案例实操**** (1)添加一个xitianqujing组 \[root@hadoop101 opt\]#groupadd xitianqujing #### **6.5.2 groupdel 删除组** ****1**** ****)**** ****基本语法**** groupdel 组名 ****2**** ****)**** ****案例实操**** (1)删除xitianqujing组 \[root@hadoop101 opt\]# groupdel xitianqujing #### **6.5.3 groupmod 修改组** ****1**** ****)**** ****基本语法**** groupmod -n 新组名 老组名 ****2**** ****)**** ****选项说明**** |-------------------|--------------| | ****选项**** | ****功能描述**** | | ****-n\<新组名\>**** | 指定工作组的新组名 | ****3**** ****)**** ****案例实操**** (1)修改xitianqujing组名称为xitian \[root@hadoop101 \~\]#groupadd xitianqujing \[root@hadoop101 \~\]#groupmod -n xitian xitianqujing #### **6.5.4** **usermod** **修改** **用户组** ****1**** ****)**** ****基本语法**** usermod -g 组名 用户名 ****2**** ****)**** ****选项说明**** |------------|-------------------| | ****选项**** | ****功能描述**** | | ****-g**** | 指定用户需要加入的用户组 得写id | ****3**** ****)**** ****案例实操**** (1)将用户切换一个组 \[root@hadoop101 \~\]#useradd zhubajie \[root@hadoop101 \~\]#usermod -g xitian zhubajie #### **6.5.5 cat /etc/group 查看创建了哪些组** ****1)**** ****基本**** ****操作**** \[root@hadoop101 atguigu\]# cat /etc/group ### **6.6 文件权限类** #### **6.6.1 文件属性** Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属的用户和组。 ****1**** ****)文件属性:**** ****从左到右的10个字符表示**** ![](https://file.jishuzhan.net/article/1769924908520837121/428252a737fc725ab365714526833ab2.webp) 如果没有权限,就会出现减号\[ - \]而已。从左至右用0-9这些数字来表示: (1)0首位表示类型 在Linux中第一个字符代表这个文件是目录、文件或链接文件等等 - 代表文件 d 代表目录 l 链接文档(link file); (2)第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User (3)第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group (4)第7-9位确定其他用户拥有该文件的权限 ---Other ****2**** ****)**** ****rxw作用文件和目录的不同解释**** (1)作用到文件: \[ r \]代表可读(read): 可以读取,查看 \[ w \]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件. \[ x \]代表可执行(execute):可以被系统执行 (2)作用到目录: \[ r \]代表可读(read): 可以读取,ls查看目录内容 \[ w \]代表可写(write): 可以修改,目录内创建+删除+重命名目录 \[ x \]代表可执行(execute):可以进入该目录 ****3**** ****)**** ****案例实操**** \[root@hadoop101 \~\]# ll 总用量 104 -rw-------. 1 root root 1248 1月 8 17:36 anaconda-ks.cfg drwxr-xr-x. 2 root root 4096 1月 12 14:02 dssz lrwxrwxrwx. 1 root root 20 1月 12 14:32 houzi -\> xiyou/dssz/houge.tx (1)文件基本属性介绍 ![](https://file.jishuzhan.net/article/1769924908520837121/290d6b7641d423c26e3615d93db131ad.webp) (2)如果查看到是文件:链接数指的是硬链接个数。创建硬链接方法 ln \[原文件\] \[目标文件

root@hadoop101 \~\]# ln xiyou/dssz/houge.txt ./hg.txt (3)如果查看的是文件夹:链接数指的是子文件夹个数。 \[root@hadoop101 \~\]# ls -al xiyou/ 总用量 16 drwxr-xr-x. 4 root root 4096 1月 12 14:00 . dr-xr-x---. 29 root root 4096 1月 12 14:32 .. drwxr-xr-x. 2 root root 4096 1月 12 14:30 dssz #### 6**.6.2 chmod 改变权限** ****1**** ****)**** ****基本语法**** ![](https://file.jishuzhan.net/article/1769924908520837121/6f27daee341e7978b19a90ecd5cc7a23.webp) (1)第一种方式变更权限 chmod \[{ugoa}{+-=}{rwx}\] 文件或目录 (2)第二种方式变更权限 chmod \[mode=421 \] \[文件或目录

2 经验技巧

U:所有者 g:所有组 o:其他人 a:所有人(u、g、o的总和)

r=4 w=2 x=1 rwx=4+2+1=7

3 案例实操

(1)修改文件使其所属主用户具有执行权限

root@hadoop101 \~\]# cp xiyou/dssz/houge.txt ./ \[root@hadoop101 \~\]# chmod u+x houge.txt (2)修改文件使其所属组用户具有执行权限 \[root@hadoop101 \~\]# chmod g+x houge.txt (3)修改文件所属主用户执行权限,并使其他用户具有执行权限 \[root@hadoop101 \~\]# chmod u-x,o+x houge.txt (4)采用数字的方式,设置文件所有者、所属组、其他用户都具有可读可写可执行权限。 \[root@hadoop101 \~\]# chmod 777 houge.txt (5)修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限。 \[root@hadoop101 \~\]# chmod -R 777 xiyou/ #### **6.6.3 chown 改变所有者** ****1**** ****)**** ****基本语法**** chown \[选项\] \[最终用户\] \[文件或目录\] (功能描述:改变文件或者目录的所有者) ****2)选项**** ****说明**** |------------|------------| | ****选项**** | ****功能**** | | ****-R**** | 递归操作 | ****3**** ****)**** ****案例实操**** (1)修改文件所有者 \[root@hadoop101 \~\]# chown atguigu houge.txt \[root@hadoop101 \~\]# ls -al -rwxrwxrwx. 1 atguigu root 551 5月 23 13:02 houge.txt (2)递归改变文件所有者和所有组 \[root@hadoop101 xiyou\]# ll drwxrwxrwx. 2 root root 4096 9月 3 21:20 xiyou \[root@hadoop101 xiyou\]# chown -R atguigu:atguigu xiyou/ \[root@hadoop101 xiyou\]# ll drwxrwxrwx. 2 atguigu atguigu 4096 9月 3 21:20 xiyou #### **7.6.4 chgrp 改变所属组** ****1**** ****)**** ****基本语法**** chgrp \[最终用户组\] \[文件或目录\] (功能描述:改变文件或者目录的所属组) ****2**** ****)**** ****案例实操**** (1)修改文件的所属组 \[root@hadoop101 \~\]# chgrp root houge.txt \[root@hadoop101 \~\]# ls -al -rwxrwxrwx. 1 atguigu root 551 5月 23 13:02 houge.txt ### **7.7 搜索查找类** #### **7.7.1 find查找文件或者目录** find指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。 ****1**** ****)**** ****基本语法**** find \[搜索范围\] \[选项

2 选项说明

|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|
| 选项 | 功能 |
| -name<查询方式> | 按照指定的文件名查找模式查找文件 |
| -user<查询方式> | 查找属于指定用户名所有文件 |
| -size<文件大小> | 按照指定的文件大小查找文件,单位为: b ------ 块(512字节) c ------ 字节 w ------ 字(2字节) k ------ 千字节 M ------ 兆字节 G ------ 吉字节 |

3 案例实操

(1)按文件名:根据名称查找/目录下的filename.txt文件。

root@hadoop101 \~\]# find / -name \*.txt (2)按拥有者:查找/opt目录下,用户名称为-user的文件 \[root@hadoop101 \~\]# find /opt -user atguigu (3)按文件大小:在/home目录下查找大于200m的文件(+n 大于 -n小于 n等于) \[root@hadoop101 \~\]find /home -size +204800c #### **7.7.2 grep 过滤查找及"\|"管道符** 管道符,"\|",表示将前一个命令的处理结果输出传递给后面的命令处理。 ****1**** ****)**** ****基本语法**** grep 选项 查找内容 源文件 ****2**** ****)**** ****选项说明**** |------------|------------| | ****选项**** | ****功能**** | | ****-n**** | 显示匹配行及行号。 | ****3**** ****)**** ****案例实操**** (1)查找某文件在第几行 \[root@hadoop101 \~\]# ls \| grep -n test ### **7.8 压缩和解压类** #### **7.8.1 gzip/gunzip 压缩** ****1**** ****)**** ****基本语法**** gzip 文件 (功能描述:压缩文件,只能将文件压缩为\*.gz文件) gunzip 文件.gz (功能描述:解压缩文件命令) ****2**** ****)**** ****经验技巧**** (1)只能压缩文件不能压缩目录 (2)不保留原来的文件 ****3**** ****)**** ****案例实操**** (1)gzip压缩 \[root@hadoop101 \~\]# ls test.java \[root@hadoop101 \~\]# gzip houge.txt \[root@hadoop101 \~\]# ls houge.txt.gz (2)gunzip解压缩文件 \[root@hadoop101 \~\]# gunzip houge.txt.gz \[root@hadoop101 \~\]# ls houge.txt #### **7.8.2 tar 打包** ****1**** ****)**** ****基本语法**** tar \[选项\] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的文件格式.tar.gz) ****2**** ****)**** ****选项说明**** |------------|------------| | ****选项**** | ****功能**** | | ****-c**** | 产生.tar打包文件 | | ****-v**** | 显示详细信息 | | ****-f**** | 指定压缩后的文件名 | | ****-z**** | 打包同时压缩 | | ****-x**** | 解包.tar文件 | ****3**** ****)**** ****案例实操**** (1)压缩多个文件 \[root@hadoop101 opt\]# tar -zcvf houma.tar.gz houge.txt bailongma.txt houge.txt bailongma.txt \[root@hadoop101 opt\]# ls houma.tar.gz houge.txt bailongma.txt (2)压缩目录 \[root@hadoop101 \~\]# tar -zcvf xiyou.tar.gz xiyou/ xiyou/ xiyou/mingjie/ xiyou/dssz/ xiyou/dssz/houge.txt (3)解压到当前目录 \[root@hadoop101 \~\]# tar -zxvf houma.tar.gz (4)解压到指定目录 \[root@hadoop101 \~\]# tar -zxvf xiyou.tar.gz -C /opt \[root@hadoop101 \~\]# ll /opt/ ### **7.9 磁盘类** #### **7.9.1 df 查看磁盘空间使用情况** df: disk free 空余硬盘 ****1**** ****)**** ****基本语法**** df 选项 (功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占用情况) ****2**** ****)**** ****选项说明**** |------------|------------------------------------------| | ****选项**** | ****功能**** | | ****-h**** | 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示; | ****3**** ****)**** ****案例实操**** (1)查看磁盘使用情况 \[root@hadoop101 \~\]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda2 15G 3.5G 11G 26% / tmpfs 939M 224K 939M 1% /dev/shm /dev/sda1 190M 39M 142M 22% /boot #### **7.9.** **2** **du** **文件和目录的磁盘使用空间** ****1**** ****)**** ****基本语法**** du 目录/文件(功能描述:显示每个文件和目录的磁盘使用空间) ****2**** ****)**** ****选项说明**** |------------|----------------------| | ****选项**** | ****功能**** | | ****-a**** | 显示当前目录下所有的文件目录及子目录大小 | ****3**** ****)**** ****案例实操**** (1)查看目录的空间使用情况 \[root@hadoop101 \~\]# du jinyong jinyong/ \[root@hadoop101 \~\]# du -a jinyong 4 jinyong/linghuchong.txt 2972 jinyong/xiaoaojianghu.txt 8 jinyong/catalina.properties 2988 jinyong/ ### **7.10 进程线程类** 进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。 #### **7.10.1 ps** **查看** **当前系统进程状态** ps:process status 进程状态 ****1**** ****)**** ****基本语法**** ps -aux \| grep xxx (功能描述:查看系统中所有进程) ps -ef \| grep xxx (功能描述:可以查看子父进程之间的关系) ****2**** ****)**** ****选项说明**** |------------|-------------| | ****选项**** | ****功能**** | | ****-a**** | 选择所有进程 | | ****-u**** | 显示所有用户的所有进程 | | ****-x**** | 显示没有终端的进程 | ****3**** ****)**** ****功能说明**** (1)ps -aux显示信息说明 USER:该进程是由哪个用户产生的 PID:进程的ID号 %CPU:该进程占用CPU资源的百分比,占用越高,进程越耗费资源; %MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源; VSZ:该进程占用虚拟内存的大小,单位KB; RSS:该进程占用实际物理内存的大小,单位KB; TTY:该进程是在哪个终端中运行的。其中tty1-tty7代表本地控制台终端,tty1-tty6是本地的字符界面终端,tty7是图形终端。pts/0-255代表虚拟终端。 STAT:进程状态。常见的状态有:R:运行、S:睡眠、T:停止状态、s:包含子进程、+:位于后台 START:该进程的启动时间 TIME:该进程占用CPU的运算时间,注意不是系统时间 COMMAND:产生此进程的命令名 (2)ps -ef显示信息说明 UID:用户ID PID:进程ID PPID:父进程ID C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高 STIME:进程启动的时间 TTY:完整的终端名称 TIME:CPU时间 CMD:启动进程所用的命令和参数 ****4**** ****)**** ****经验技巧**** 如果想查看进程的CPU占用率和内存占用率,可以使用aux; 如果想查看进程的父进程ID可以使用ef; ****5**** ****)**** ****案例实操**** (1)查看进程的CPU占用率和内存占用率 \[root@hadoop101 datas\]# ps aux ![](https://file.jishuzhan.net/article/1769924908520837121/dabf61e93d0c91ef37187d2891b8410b.webp) (2)查看进程的父进程ID \[root@hadoop101 datas\]# ps -ef ![](https://file.jishuzhan.net/article/1769924908520837121/1f506375735dd545df85cbe423e47d8b.webp) #### **7.10.2 kill 终止进程** ****1**** ****)**** ****基本语法**** kill \[选项\] 进程号 (功能描述:通过进程号杀死进程) killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用) ****2**** ****)**** ****选项说明**** |------------|------------| | ****选项**** | ****功能**** | | ****-9**** | 表示强迫进程立即停止 | ****3**** ****)**** ****案例实操**** (1)杀死浏览器进程 \[root@hadoop101 桌面\]# kill -9 5102 (2)通过进程名称杀死进程 \[root@hadoop101 桌面\]# killall firefox #### **7.10.3 top查看系统健康状态** ****1**** ****)**** ****基本命令**** top \[选项

2 选项说明

|---------------|------------------------------------------|
| 选项 | 功能 |
| -d 秒数 | 指定top命令每隔几秒更新。默认是3秒在top命令的交互模式当中可以执行的命令: |
| -i | 使top不显示任何闲置或者僵死进程。 |
| -p | 通过指定监控进程ID来仅仅监控某个进程的状态。 |

3 操作说明

|------------|------------------|
| 操作 | 功能 |
| P | 以CPU使用率排序,默认就是此项 |
| M | 以内存的使用率排序 |
| N | 以PID排序 |
| q | 退出top |

4 查询结果字段解释

第一行信息为任务队列信息

|----------------------------------------|------------------------------------------------------|
| 内容 | 说明 |
| 12:26:46 | 系统当前时间 |
| up 1 day, 13:32 | 系统的运行时间,本机已经运行1天 13小时32分钟 |
| 2 users | 当前登录了两个用户 |
| load average: 0.00, 0.00, 0.00 | 系统在之前1分钟,5分钟,15分钟的平均负载。一般认为小于1时,负载较小。如果大于1,系统已经超出负荷。 |

第二行为进程信息

|-------------------------|-----------------------|
| Tasks: 95 total | 系统中的进程总数 |
| 1 running | 正在运行的进程数 |
| 94 sleeping | 睡眠的进程 |
| 0 stopped | 正在停止的进程 |
| 0 zombie | 僵尸进程。如果不是0,需要手工检查僵尸进程 |

第三行为CPU信息

|------------------------|----------------------------------------------------|
| Cpu(s): 0.1%us | 用户模式占用的CPU百分比 |
| 0.1%sy | 系统模式占用的CPU百分比 |
| 0.0%ni | 改变过优先级的用户进程占用的CPU百分比 |
| 99.7%id | 空闲CPU的CPU百分比 |
| 0.1%wa | 等待输入/输出的进程的占用CPU百分比 |
| 0.0%hi | 硬中断请求服务占用的CPU百分比 |
| 0.1%si | 软中断请求服务占用的CPU百分比 |
| 0.0%st | st(Steal time)虚拟时间百分比。就是当有虚拟机时,虚拟CPU等待实际CPU的时间百分比。 |

第四行为物理内存信息

|----------------------------|--------------------------------------------------|
| Mem: 625344k total | 物理内存的总量,单位KB |
| 571504k used | 已经使用的物理内存数量 |
| 53840k free | 空闲的物理内存数量,我们使用的是虚拟机,总共只分配了628MB内存,所以只有53MB的空闲内存了 |
| 65800k buffers | 作为缓冲的内存数量 |

第五行为交换分区(swap)信息

|-----------------------------|------------------------|
| Swap: 524280k total | 交换分区(虚拟内存)的总大小 |
| 0k used | 已经使用的交互分区的大小 |
| 524280k free | 空闲交换分区的大小 |
| 409280k cached | 作为缓存的交互分区的大小 |

5 案例实操

root@hadoop101 atguigu\]# top -d 1 \[root@hadoop101 atguigu\]# top -i \[root@hadoop101 atguigu\]# top -p 2575 执行上述命令后,可以按P、M、N对查询出的进程结果进行排序。 #### **7.10.4** **f** **ree** **查看服务器总体内存** ****1**** ****)**** ****基本语法**** free -m (功能描述:查看服务器总体内存) ****2)案例实操**** \[atguigu@hadoop102 \~\]$ free -m total used free shared buff/cache available Mem: 3934 543 2879 12 511 3093 Swap:4095 0 4095 #### **7.10.5 netstat 显示网络统计信息** **和** **端口占用情况** ****1**** ****)**** ****基本语法**** netstat -anp \|grep 进程号 (功能描述:查看该进程网络信息) netstat -nlp \| grep 端口号 (功能描述:查看网络端口号占用情况) ****2**** ****)**** ****选项说明**** |------------|----------------------| | ****选项**** | ****功能**** | | ****-n**** | 拒绝显示别名,能显示数字的全部转化成数字 | | ****-l**** | 仅列出有在listen(监听)的服务状态 | | ****-p**** | 表示显示哪个进程在调用 | ****3**** ****)**** ****案例实操**** (1)通过进程号查看该进程的网络信息 \[root@hadoop101 hadoop-2.7.2\]# netstat -anp \| grep 火狐浏览器进程号 unix 2 \[ ACC \] STREAM LISTENING 20670 3115/firefox /tmp/orbit-root/linc-c2b-0-5734667cbe29 unix 3 \[ \] STREAM CONNECTED 20673 3115/firefox /tmp/orbit-root/linc-c2b-0-5734667cbe29 unix 3 \[ \] STREAM CONNECTED 20668 3115/firefox unix 3 \[ \] STREAM CONNECTED 20666 3115/firefox (2)查看某端口号是否被占用 \[root@hadoop101 桌面\]# netstat -nlp \| grep 20670 unix 2 \[ ACC \] STREAM LISTENING 20670 3115/firefox /tmp/orbit-root/linc-c2b-0-5734667cbe29 ### **7.11 crontab 系统定时任务** #### **7.11.1 crontab 服务管理** ****1)**** ****重新**** ****启动**** ****crond**** ****服务**** \[root@hadoop101 \~\]# systemctl restart crond #### **7.11.2 crontab 定时任务设置** ****1**** ****)**** ****基本语法**** crontab \[选项

2)选项说明

|------------|--------------------|
| 选项 | 功能 |
| -e | 编辑crontab定时任务 |
| -l | 查询crontab任务 |
| -r | 删除当前用户所有的crontab任务 |

3 参数说明

root@hadoop101 \~\]# crontab -e (1)进入crontab编辑界面。会打开vim编辑你的工作。 \* \* \* \* \* 执行的任务 |-----------------|------------|----------------| | ****项目**** | ****含义**** | ****范围**** | | ****第一个"\*"**** | 一小时当中的第几分钟 | 0-59 | | ****第二个"\*"**** | 一天当中的第几小时 | 0-23 | | ****第三个"\*"**** | 一个月当中的第几天 | 1-31 | | ****第四个"\*"**** | 一年当中的第几月 | 1-12 | | ****第五个"\*"**** | 一周当中的星期几 | 0-7(0和7都代表星期日) | (2)特殊符号 |--------------|-------------------------------------------------------------------| | ****特殊符号**** | ****含义**** | | ****\***** | 代表任何时间。比如第一个"\*"就代表一小时中每分钟都执行一次的意思。 | | ****,**** | 代表不连续的时间。比如"0 8,12,16 \* \* \* 命令",就代表在每天的8点0分,12点0分,16点0分都执行一次命令 | | ****-**** | 代表连续的时间范围。比如"0 5 \* \* 1-6命令",代表在周一到周六的凌晨5点0分执行命令 | | ****\*/n**** | 代表每隔多久执行一次。比如"\*/10 \* \* \* \* 命令",代表每隔10分钟就执行一遍命令 | (3)特定时间执行命令 |-----------------------------|------------------------------------------------------------------| | ****时间**** | ****含义**** | | ****45 22 \* \* \* 命令**** | 在22点45分执行命令 | | ****0 17 \* \* 1 命令**** | 每周1 的17点0分执行命令 | | ****0 5 1,15 \* \* 命令**** | 每月1号和15号的凌晨5点0分执行命令 | | ****40 4 \* \* 1-5 命令**** | 每周一到周五的凌晨4点40分执行命令 | | ****\*/10 4 \* \* \* 命令**** | 每天的凌晨4点,每隔10分钟执行一次命令 | | ****0 0 1,15 \* 1 命令**** | 每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。 | ****4**** ****)**** ****案例实操**** (1)每隔1分钟,向/root/bailongma.txt文件中添加一个11的数字 \*/1 \* \* \* \* /bin/echo "11" \>\> /root/bailongma.txt ## **第8章** **软件包管理** ### **8.1 RPM** #### **8.1.1 RPM概述** RPM(RedHat Package Manager),RedHat软件包管理工具,类似windows里面的setup.exe 是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。 RPM包的名称格式 Apache-1.3.23-11.i386.rpm * "apache" 软件名称 * "1.3.23-11"软件的版本号,主版本和此版本 * "i386"是软件所运行的硬件平台,Intel 32位微处理器的统称 * "rpm"文件扩展名,代表RPM包 #### **8.1.2 RPM查询命令(rpm -qa)** ****1**** ****)**** ****基本语法**** rpm -qa (功能描述:查询所安装的所有rpm软件包) ****2)**** ****经验技巧**** 由于软件包比较多,一般都会采取过滤。rpm -qa \| grep rpm软件包 ****3**** ****)**** ****案例实操**** (1)查询firefox软件安装情况 \[root@hadoop101 Packages\]# rpm -qa \|grep firefox firefox-45.0.1-1.el6.centos.x86_64 #### **8.1.3 RPM卸载命令(rpm -e)** ****1**** ****)**** ****基本语法**** (1)rpm -e RPM软件包 (2) rpm -e --nodeps 软件包 ****2**** ****)**** ****选项说明**** |------------------|---------------------------------------------| | ****选项**** | ****功能**** | | ****-e**** | 卸载软件包 | | ****--nodeps**** | 卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作了。 | ****3)案例实操**** (1)卸载firefox软件 \[root@hadoop101 Packages\]# rpm -e firefox #### **8.1.4 RPM安装命令(rpm -ivh)** ****1**** ****)**** ****基本语法**** rpm -ivh RPM包全名 ****2**** ****)**** ****选项说明**** |------------------|-------------------| | ****选项**** | ****功能**** | | ****-i**** | -i=install,安装 | | ****-v**** | -v=verbose,显示详细信息 | | ****-h**** | -h=hash,进度条 | | ****--nodeps**** | --nodeps,不检测依赖进度 | ****3)案例实操**** (1)安装firefox软件 \[root@hadoop101 Packages\]# pwd /run/media/root/CentOS 7 x86_64/Packages \[root@hadoop101 Packages\]# rpm -ivh firefox-52.7.0-1.el7.centos.x86_64.rpm 警告:firefox-52.7.0-1.el7.centos.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY 准备中... ################################# \[100%

正在升级/安装...

1:firefox-52.7.0-1.el7.centos ################################# [100%]

8.2 YUM仓库配置

8.2.1 YUM概述

YUM(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

8.2.2 YUM的常用命令

1 基本语法

yum [选项] [参数]

2 选项说明

|------------|---------------|
| 选项 | 功能 |
| -y | 对所有提问都回答"yes" |

3)参数说明

|----------------------|----------------------|
| 参数 | 功能 |
| install | 安装rpm软件包 |
| update | 更新rpm软件包 |
| check-update | 检查是否有可用的更新rpm软件包 |
| remove | 删除指定的rpm软件包 |
| list | 显示软件包信息 |
| clean all | 清理yum过期的缓存 |
| makecache | 将当前yum源里的rpm包列表缓存到本地 |
| deplist | 显示yum软件包的所有依赖关系 |

4 案例实操实操

(1)采用yum方式安装firefox

root@hadoop101 \~\]#yum -y install firefox.x86_64 #### **8.2.3** **修改** **网络YUM源** 默认的系统YUM源,需要连接国外apache网站,网速比较慢,可以修改关联的网络YUM源为国内镜像的网站,比如网易163,aliyun等。 (1)安装wget, wget用来从指定的URL下载文件 \[root@hadoop101 \~\] yum install wget (2)在/etc/yum.repos.d/目录下,备份默认的repos文件, \[root@hadoop101 yum.repos.d\] pwd /etc/yum.repos.d \[root@hadoop101 yum.repos.d\] mv CentOS-Base.repo CentOS-Base .repo.backup (3)下载网易163或者是aliyun的repos文件,任选其一 \[root@hadoop101 yum.repos.d\] wget http://mirrors.aliyun.com/repo/Centos-7.repo //阿里云 \[root@hadoop101 yum.repos.d\] wget http://mirrors.163.com/.help/CentOS7-Base-163.repo //网易163 ![](https://file.jishuzhan.net/article/1769924908520837121/30cdd661f130ec9e4ec382131de3d8d4.webp) (4)使用下载好的repos文件替换默认的repos文件 例如:用Centos-7.repo替换CentOS-Base.repo \[root@hadoop101 yum.repos.d\]# mv Centos-7.repo CentOS-Base.repo (5)清理旧缓存数据,缓存新数据 \[root@hadoop101 yum.repos.d\]#yum clean all \[root@hadoop101 yum.repos.d\]#yum makecache yum makecache就是把服务器的包信息下载到本地电脑缓存起来 (6)测试 \[root@hadoop101 yum.repos.d\]# yum list \| grep firefox \[root@hadoop101 \~\]#yum -y install firefox.x86_64 ## **第** **9** **章 克隆虚拟机** ### **9.1** **克隆** (1)从现有虚拟机(关机状态)克隆出新虚拟机,右键选择管理=\>克隆 ![](https://file.jishuzhan.net/article/1769924908520837121/969a2279a0ca3174611789c8b132727d.webp) (2)点击下一步 ![](https://file.jishuzhan.net/article/1769924908520837121/955b32c367f940c3597545458ac74fc4.webp) (3)选择虚拟机中的当前状态 ![](https://file.jishuzhan.net/article/1769924908520837121/334446b6f66bdacfe18b8a10ca6aac18.webp) (4)选择创建完整克隆 ![](https://file.jishuzhan.net/article/1769924908520837121/7ee07c2615629eaec070095719e778d7.webp) (5)设置虚拟机名称及存储位置 ![](https://file.jishuzhan.net/article/1769924908520837121/1430c7373db4eaf58b423dba37b6b9c1.webp) (6)等等等......等待克隆完成 ![](https://file.jishuzhan.net/article/1769924908520837121/1ae36810e20976e0bf5a58d3f18be3b1.webp) ![](https://file.jishuzhan.net/article/1769924908520837121/ae584e5e4289236235d3cbfd2963b091.webp) ### **9.2** **开机修改系统相关配置** 注意:使用root用户。 (1)修改 vim /etc/sysconfig/network-scripts/ifcfg-ens33,修改IP地址。 vim /etc/sysconfig/network-scripts/ifcfg-eth33 ![](https://file.jishuzhan.net/article/1769924908520837121/d41d62920c1c3c82434a3b4518df7954.webp) (2)修改 /etc/hostname,修改主机名,如下图所示。 vim /etc/hostname ![](https://file.jishuzhan.net/article/1769924908520837121/9e15c6e65ed9e67a1acb1fa1cecff0b0.webp) ## **第** **10** **章** **常见错误及解决方案** ### **10.1虚拟化支持异常情况如下几种情况** (1)异常情况一 ![](https://file.jishuzhan.net/article/1769924908520837121/58a32867c4f562ae5e01ad9a3f38243a.webp) (2)异常情况二 ![](https://file.jishuzhan.net/article/1769924908520837121/29d37d99b287e15fae5942fe952bb41c.webp) (3)异常情况三 ![](https://file.jishuzhan.net/article/1769924908520837121/2b826a675b03d3665387d7236be08405.webp) (4)异常情况四 ![](https://file.jishuzhan.net/article/1769924908520837121/a93b61770044d1e85e57650d1f3f7f21.webp) ****2)**** ****问题原因:宿主机BIOS设置中的硬件虚拟化被禁用了**** ****3**** ****)**** ****解决办法:需要打开笔记本BIOS中的IVT对虚拟化的支持**** ![](https://file.jishuzhan.net/article/1769924908520837121/e9cdc856d35a38be935f5d2d65ec10b7.webp) ### **10.2 找回root密码** ****1**** ****)重启**** ****Linux**** ****,见到下图,通过键盘上下方向键选择第一个**** ![](https://file.jishuzhan.net/article/1769924908520837121/995c656ae34ba7c9d5c90cf2e13d90b1.webp) ****2**** ****)按e,出现如下的界面**** ![](https://file.jishuzhan.net/article/1769924908520837121/d5856e9c6cb25b04e060f9af8afd23b9.webp) ****3**** ****)**** ****定位到**** ****LANG**** ****=zh_CN.UTF-8**** ****,**** ****后面追加**** ****init=/bin/sh**** ![](https://file.jishuzhan.net/article/1769924908520837121/7b028117522d06875c5fe1b1cfefca84.webp) ****4**** ****)键盘ctrl**** ****+x**** ****进行引导启动,进入如下界面**** ![](https://file.jishuzhan.net/article/1769924908520837121/40b46a22ed7bfa94ec1f9766d04bb453.webp) ****5**** ****)挂载根目录**** ![](https://file.jishuzhan.net/article/1769924908520837121/5c5f031f6d8817ac6ab862ebd0bb3405.webp) ****6**** ****)**** ****选择要修改密码的用户名**** ****,passwd**** ****root**** ****,然后输入两次一致的密码,依次回车。**** ****注意:**** ****输入密码不显示,一定要确认输入正确。**** ![](https://file.jishuzhan.net/article/1769924908520837121/73da271a6c4835e6745a8d1dbf533331.webp) ****7**** ****)**** ****更新系统信息 touch /.autorelabel**** ![](https://file.jishuzhan.net/article/1769924908520837121/a84cf1a1f912bafe25acbf470a8eb5ae.webp) ****8**** ****)**** ****最后输入exec /sbin/init 命令重启系统即可**** ![](https://file.jishuzhan.net/article/1769924908520837121/a92cc956c7666ef8b5f85172a4ca35f4.webp) ****9**** ****)进入登录界面,输入修改后的密码登录即可。**** ## **第1** **1** **章** **企业** **真实面试题** ### **1** **1** **.1 百度\&考满分** 问题:Linux常用命令 参考答案:find、df、tar、ps、top、netstat等。(尽量说一些高级命令) ### **1** **1** **.** **2** **瓜子二手车** 问题:Linux查看内存、磁盘存储、io 读写、端口占用、进程等命令 答案: 1、查看内存:free -m 或者 top 2、查看磁盘存储情况:df -h 3、查看磁盘IO读写情况:iotop(需要安装一下:yum install iotop)、iotop -o(直接查看输出比较高的磁盘读写程序) 4、查看端口占用情况:netstat -tunlp \| grep 端口号 5、查看进程:ps -aux

相关推荐
光不度AoKaNa2 分钟前
计算机操作系统概要
linux·运维·服务器
Clownseven8 分钟前
[IP地址科普] 服务器公网IP、私网IP、弹性IP是什么?区别与应用场景详解
服务器·网络协议·tcp/ip
晚秋大魔王8 分钟前
OpenHarmony 开源鸿蒙南向开发——linux下使用make交叉编译第三方库——wget
java·linux·运维·开发语言·华为·harmonyos
Zenexus28 分钟前
Linux系统启动相关:vmlinux、vmlinuz、zImage,和initrd 、 initramfs,以及SystemV 和 SystemD
linux
孤的心了不冷29 分钟前
【Linux】Linux安装并配置MongoDB
linux·运维·mongodb·容器
南棱笑笑生31 分钟前
20250517让NanoPi NEO core开发板在Ubuntu core16.04.2下支持TF卡的热插拔
linux·运维·ubuntu
Easy_Package1 小时前
Linux中的进程
linux·服务器·网络
GodKK老神灭1 小时前
Unbuntu 命令
linux
鸿乃江边鸟1 小时前
Starrocks的主键表涉及到的MOR Delete+Insert更新策略
大数据·starrocks·sql
jinlei20091 小时前
配置ssh服务-ubuntu到Windows拷贝文件方法
运维·ubuntu·ssh