Linux(尚硅谷)(四)

简介: Linux(尚硅谷)

grep 过滤查找及“|”管道符

管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理

基本语法

grep 选项 查找内容 源文件

选项说明

-n 显示匹配行及行号。

案例实操

1)查找某文件在第几行

[root@hadoop101 ~]# ls | grep -n test

压缩和解压类

gzip/gunzip 压缩

基本语法

gzip 文件 (功能描述:压缩文件,只能将文件压缩为*.gz 文件)

gunzip 文件.gz (功能描述:解压缩文件命令)

经验技巧

1)只能压缩文件不能压缩目录

(2)不保留原来的文件

(3)同时多个文件会产生多个压缩包

案例实操

1gzip压缩

[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

zip/unzip 压缩

基本语法

zip [选项] XXX.zip 将要压缩的内容 (功能描述:压缩文件和目录的命令)

unzip [选项] XXX.zip (功能描述:解压缩文件)

选项说明

zip 选项

-r 压缩目录

unzip 选项

-d<目录> 指定解压后文件的存放目录

经验技巧

zip 压缩命令在windows/linux都通用,可以压缩目录且保留源文件。

案例实操

1)压缩 houge.txt bailongma.txt,压缩后的名称为mypackage.zip

[root@hadoop101 opt]# touch bailongma.txt 
[root@hadoop101 ~]# zip mypackage.zip houge.txt bailongma.txt 
adding: houge.txt (stored 0%) 
adding: bailongma.txt (stored 0%) 
[root@hadoop101 opt]# ls 
houge.txt bailongma.txt mypackage.zip

(2)解压 mypackage.zip

[root@hadoop101 ~]# unzip mypackage.zip 
Archive: houma.zip 
extracting: houge.txt 
extracting: bailongma.txt 
[root@hadoop101 ~]# ls 
houge.txt bailongma.txt mypackage.zip

(3)解压mypackage.zip到指定目录-d

[root@hadoop101 ~]# unzip mypackage.zip -d /opt 
[root@hadoop101 ~]# ls /opt/

tar 打包

基本语法

tar [选项] XXX.tar.gz 将要打包进去的内容 (功能描述:打包目录,压缩后的 文件格式.tar.gz)

选项说明

-c 产生.tar 打包文件

-v 显示详细信息

-f 指定压缩后的文件名

-z 打包同时压缩

-x 解包.tar 文件

-C 解压到指定目录

案例实操

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/

磁盘查看和分区类

du 查看文件和目录占用的磁盘空间

du: disk usage 磁盘占用情况

基本语法

du 目录/文件 (功能描述:显示目录下每个子目录的磁盘使用情况)

选项说明

-h 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;

-a 不仅查看子目录大小,还要包括文件

-c 显示所有的文件和子目录大小后,显示总和

-s 只显示总和

--max-depth=n 指定统计子目录的深度为第 n 层

案例实操

1)查看当前用户主目录占用的磁盘空间大小

[root@hadoop101 ~]# du -sh

166M .

df 查看磁盘空间使用情况

df: disk free 空余磁盘

基本语法

df 选项 (功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占 用情况)

选项说明

-h 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;

案例实操

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

lsblk 查看设备挂载情况

基本语法

lsblk (功能描述:查看设备挂载情况)

选项说明

-f 查看详细的设备挂载情况,显示文件系统信息

mount/umount 挂载/卸载

对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根 目录、一个独立且唯一的文件结构。

Linux中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做“挂载”的处理 方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来, 要载入的那个分区将使它的存储空间在这个目录下获得。

挂载前准备(必须要有光盘或者已经连接镜像文件)

基本语法

mount [-t vfstype] [-o options] device dir (功能描述:挂载设备)

umount 设备文件名或挂载点 (功能描述:卸载设备)

参数说明

-t vfstype

指定文件系统的类型,通常不必指定。mount 会自动选择正确的类

型。常用类型有:

光盘或光盘镜像:iso9660

DOS fat16 文件系统:msdos

Windows 9x fat32 文件系统:vfat

Windows NT ntfs 文件系统:ntfs

Mount Windows 文件网络共享:smbfs

UNIX(LINUX) 文件网络共享:nfs

-o options

主要用来描述设备或档案的挂接方式。常用的参数有:

loop:用来把一个文件当成硬盘分区挂接上系统

ro:采用只读方式挂接设备

rw:采用读写方式挂接设备

iocharset:指定访问文件系统所用字符集

device

要挂接(mount)的设备

dir

设备在系统上的挂接点(mount point)

案例实操

1)挂载光盘镜像文件

[root@hadoop101 ~]# mkdir /mnt/cdrom/     建立挂载点 
[root@hadoop101 ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/     设备/dev/cdrom 挂载到 挂载点 : /mnt/cdrom 中 
[root@hadoop101 ~]# ll /mnt/cdrom/

(2)卸载光盘镜像文件

[root@hadoop101 ~]# umount /mnt/cdrom

设置开机自动挂载 (一般不设置)

[root@hadoop101 ~]# vi /etc/fstab

fdisk 分区

基本语法

fdisk -l (功能描述:查看磁盘分区详情)

fdisk 硬盘设备名 (功能描述:对新增硬盘进行分区操作)

选项说明

-l 显示所有硬盘的分区列表

经验技巧

该命令必须在 root 用户下才能使用

功能说明

1Linux 分区

Device:分区序列

Boot:引导

Start:从X磁柱开始

End:到Y磁柱结束

Blocks:容量

Id:分区类型ID

System:分区类型

(2)分区操作按键说明

m:显示命令列表

p:显示当前磁盘分区

n:新增分区

w:写入分区信息并退出

q:不保存分区信息直接退出

案例实操

1)查看系统分区情况

[root@hadoop101 /]# fdisk -l 
Disk /dev/sda: 21.5 GB, 21474836480 bytes 
255 heads, 63 sectors/track, 2610 cylinders 
Units = cylinders of 16065 * 512 = 8225280 bytes 
Sector size (logical/physical): 512 bytes / 512 bytes 
I/O size (minimum/optimal): 512 bytes / 512 bytes 
Disk identifier: 0x0005e654 
Device     Boot   Start   End   Blocks    Id    System
/dev/sda1   *     1     26    204800    83    Linux 
Partition 1 does not end on cylinder boundary. 
/dev/sda2       26    1332  10485760  83     Linux 
/dev/sda3       1332  1593  2097152   82     Linux swap / Solaris

进程管理类

进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地 址空间,并占用一定的系统资源。

ps 查看当前系统进程状态

ps:process status 进程状态

基本语法

ps aux | grep xxx (功能描述:查看系统中所有进程)

ps -ef | grep xxx (功能描述:可以查看子父进程之间的关系)

选项说明

a 列出带有终端的所有用户的进程

x 列出当前用户的所有进程,包括没有终端的进程

u 面向用户友好的显示风格

-e 列出所有进程

-u 列出某个用户关联的所有进程

-f 显示完整格式的进程列表

功能说明

1ps aux 显示信息说明

USER:该进程是由哪个用户产生的

PID:进程的 ID

%CPU:该进程占用 CPU 资源的百分比,占用越高,进程越耗费资源;

%MEM:该进程占用物理内存的百分比,占用越高,进程越耗费资源;

VSZ:该进程占用虚拟内存的大小,单位 KB

RSS:该进程占用实际物理内存的大小,单位 KB

TTY:该进程是在哪个终端中运行的。对于 CentOS 来说,tty1 是图形化终端, tty2-tty6 是本地的字符界面终端。pts/0-255 代表虚拟终端。

STAT:进程状态。常见的状态有:R:运行状态、S:睡眠状态、T:暂停状态、 Z:僵尸状态、s:包含子进程、l:多线程、+:前台显示

START:该进程的启动时间

TIME:该进程占用 CPU 的运算时间,注意不是系统时间

COMMAND:产生此进程的命令名

(2)ps -ef 显示信息说明

UID:用户 ID

PID:进程 ID

PPID:父进程 ID

C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算, 执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高

STIME:进程启动的时间

TTY:完整的终端名称

TIMECPU 时间

CMD:启动进程所用的命令和参数

经验技巧

如果想查看进程的 CPU 占用率和内存占用率,可以使用 aux;

如果想查看进程的父进程 ID 可以使用 ef;

案例实操

[root@hadoop101 datas]# ps aux

[root@hadoop101 datas]# ps -ef

kill 终止进程

基本语法

kill [选项] 进程号 (功能描述:通过进程号杀死进程)

killall 进程名称 (功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用,没事别用)

选项说明

-9 表示强迫进程立即停止

案例实操

1)杀死浏览器进程

[root@hadoop101 桌面]# kill -9 5102

(2)通过进程名称杀死进程

[root@hadoop101 桌面]# killall firefox

pstree 查看进程树

基本语法

pstree [选项]

选项说明

p 显示进程的 PID

-u 显示进程的所属用户

案例实操

1)显示进程 pid

[root@hadoop101 datas]# pstree -p

(2)显示进程所属用户

[root@hadoop101 datas]# pstree -u

top 实时监控系统进程状态

基本命令

top [选项]

选项说明

-d 秒数


指定 top 命令每隔几秒更新。默认是 3 秒在 top 命令的交互模式当 中可以执行的命令

-i

使 top 不显示任何闲置或者僵死进程。

-p

通过指定监控进程 ID 来仅仅监控某个进程的状态。

操作说明(实时中操作)

P

以 CPU 使用率排序,默认就是此项

M

以内存的使用率排序

N

以 PID 排序

q

退出 top

查询结果字段解释

(1)第一行信息为任务队列信息 (下面这些看看就好)

top -15:10:34

系统当前时间

up 46 min

系统的运行时间,本机已经运行 46 分钟

2 users

当前登录了两个用户

load average: 0.07, 0.04, 0.05

系统在之前 1 分钟,5 分钟,15 分钟的平均负载。一般认为小于 1 时,负载较小。如果大于 1,系统已经超出负荷。

(2)第二行为进程信息

Tasks: 229 total

系统中的进程总数

1 running

正在运行的进程数

288 sleeping

睡眠的进程

0 stopped

正在停止的进程

0 zombie

僵尸进程。如果不是 0,需要手工检查僵尸进程

(3)第三行为 CPU 信息

Cpu(s): 2.0%us

用户模式占用的 CPU 百分比

0.4%sy

系统模式占用的 CPU 百分比

0.0%ni

改变过优先级的用户进程占用的 CPU 百分比

97.6%id

空闲 CPU 的 CPU 百分比

0.0%wa

等待输入/输出的进程的占用 CPU 百分比

0.0%hi

硬中断请求服务占用的 CPU 百分比

0.0%si

软中断请求服务占用的 CPU 百分比

0.0%st

st(Steal time)虚拟时间百分比。就是当有虚拟 机时,虚拟 CPU 等待实际 CPU 的时间百分比。

(4)第四行为物理内存信息

KiB Mem 3861288 total

物理内存的总量,单位 KB

1590728 free

空闲的物理内存数量,我们使用的是虚拟机,有 1590728 B 的空 闲内存了

872868 used

已经使用的物理内存数量

1397692 buff/cache

作为缓冲的内存数量

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

Swap: 2097148 total

交换分区(虚拟内存)的总大小

2097148 free

空闲交换分区的大小

0 used

已经使用的交互分区的大小

2724684 avail Mem

作为缓存的交互分区的大小

第六行上面有写过,就是没有作图。

案例实操

[root@hadoop101 atguigu]# top -d 1 
[root@hadoop101 atguigu]# top -i 
[root@hadoop101 atguigu]# top -p 2575

执行上述命令后,可以按 P、M、N 对查询出的进程结果进行排序。

netstat 显示网络状态和端口占用信息

基本语法

netstat -anp | grep 进程号 (功能描述:查看该进程网络信息)

netstat –nlp | grep 端口号 (功能描述:查看网络端口号占用情况)

选项说明

-a 显示所有正在监听(listen)和未监听的套接字(socket)

-n 拒绝显示别名,能显示数字的全部转化成数字

-l 仅列出在监听的服务状态

-p 表示显示哪个进程在调用

案例实操

(1)通过进程号查看sshd进程的网络信息

[root@rabbitmq100 ~]# netstat -anp | grep sshd

(2)查看某端口号是否被占用

[root@rabbitmq100 ~]# netstat -nltp | grep 22

crontab 系统定时任务

crontab 服务管理

重新启动 crond 服务

[root@hadoop101 ~]# systemctl restart crond

crontab 定时任务

基本语法

crontab [选项]

选项说明

-e 编辑 crontab 定时任务

-l 查询 crontab 任务

-r 删除当前用户所有的 crontab 任务

参数说明

[root@hadoop101 ~]# crontab -e

(1)进入 crontab 编辑界面。会打开 vim 编辑你的工作。

语法: * * * * * 执行的任务

第一个“*” 一小时当中的第几分钟 0-59 分钟

第二个“*” 一天当中的第几小时 0-23 小时

第三个“*” 一个月当中的第几天 1-31 天

第四个“*” 一年当中的第几月 1-12 月

第五个“*” 一周当中的星期几 0-7 ( 0 和 7 都 代 表 星 期 日)

1.特殊符号

* 代表任何时间。比如第一个“*”就代表一小时中每分钟 都执行一次的意思。

, 代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表 在每天的 8 点 0 分,12 点 0 分,16 点 0 分都执行一次命令

- 代表连续的时间范围。比如“0 5 * * 1-6 命令”,代表在 周一到周六的凌晨 5 点 0 分执行 命令

*/n 代表每隔多久执行一次。比如“*/10 * * * * 命令”,代 表每隔 10 分钟就执行一遍命令

2.栗子,特定时间执行命令

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 分都会执行命令。注 意:星期几和几号最好不要同时出现,因为他们定义的都 是天。非常容易让管理员混乱。

案例实操

(1)每隔 1 分钟,向/root/bailongma.txt 文件中添加一个 11 的数字,然后退出编辑就行了,停止就执行删除命令。

*/1 * * * * /bin/echo ”11” >> /root/bailongma.txt

软件包管理

RPM

RPM 概述

RPMRedHat 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包

RPM 查询命令(rpm -qa)

基本语法

rpm -qa (功能描述:查询所安装的所有 rpm 软件包)

经验技巧

由于软件包比较多,一般都会采取过滤。rpm -qa | grep rpm软件包

案例实操

1)查询firefox软件安装情况

[root@hadoop101 Packages]# rpm -qa |grep firefox 
firefox-45.0.1-1.el6.centos.x86_64

RPM 卸载命令(rpm -e)

基本语法

1rpm -e RPM软件包

(2) rpm -e --nodeps 软件包

-e 卸载软件包

--nodeps 卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就 不能正常工作了。

RPM 安装命令(rpm -ivh)

基本语法

rpm -ivh RPM 包全名

选项说明

-i install,安装

-v --verbose,显示详细信息

-h --hash,进度条

--nodeps 安装前不检查依赖

案例实操

1)安装firefox软件

[root@hadoop101 Packages]# pwd 
/run/media/root/CentOS 7 x86_64/Packages 
[root@hadoop101 Packages]# rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm 
warning: firefox-45.0.1-1.el6.centos.x86_64.rpm: Header V3 RSA/SHA1 
Signature, key ID c105b9de: NOKEY 
Preparing...  ########################################### [100%] 
1:firefox   ########################################### [100%]

YUM 仓库配置

YUM 概述

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

YUM 的常用命令

基本语法

yum [选项] [参数]

选项说明

-y 对所有提问都回答“yes”

参数说明

install 安装 rpm 软件包

update 更新 rpm 软件包

check-update 检查是否有可用的更新 rpm 软件包

remove 删除指定的 rpm 软件包

list 显示软件包信息

clean 清理 yum 过期的缓存

deplist 显示 yum 软件包的所有依赖关系

案例实操实操

1)采用 yum 方式安装 firefox

[root@hadoop101 ~]#yum -y install firefox

修改网络 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

3下载网易 163 或者是 aliyun repos 文件,任选其一,如图 8-2

[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

4使用下载好的 repos 文件替换默认的 repos 文件

例如:CentOS7-Base-163.repo 替换 CentOS-Base.repo

[root@hadoop101 yum.repos.d]# mv CentOS7-Base-163.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

克隆虚拟机

克隆

从现有虚拟机(关机状态)克隆出新虚拟机,右键选择管理=>克隆

点击下一步,选择虚拟机中的当前状态,选择创建完整克隆

设置虚拟机名称及存储位置,等等等……等待克隆完成

开机修改系统相关配置

注意: 使用 root 用户。

1)修改 vim /etc/sysconfig/network-scripts/ifcfg-ens33 ,修改 IP 地址,

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

2)修改 /etc/hostname ,修改主机名,

vim /etc/hostname

完成。

Shell

shell概述

(不是Xshell工具)

Linux 提供的 Shell 解析器有

[atguigu@hadoop101 ~]$ cat /etc/shells 
/bin/sh 
/bin/bash 
/usr/bin/sh 
/usr/bin/bash 
/bin/tcsh 
/bin/csh

bash 和 sh 的关系

[atguigu@hadoop101 bin]$ ll | grep bash   
-rwxr-xr-x.   1 root root 941880 5 月 11 2016 bash 
lrwxrwxrwx. 1 root root     4 5 月 27 2017 sh -> bash

Centos 默认的解析器是 bash

[atguigu@hadoop101 bin]$ echo $SHELL 
/bin/bash
目录
相关文章
|
4月前
|
人工智能 安全 Unix
5 个令人惊讶的 Linux 用途 | Linux 中国
5 个令人惊讶的 Linux 用途 | Linux 中国
48 0
|
4月前
|
Unix Linux Shell
在 Linux 上使用 groff -me 格式化你的学术论文 | Linux 中国
在 Linux 上使用 groff -me 格式化你的学术论文 | Linux 中国
32 0
|
Java Shell Linux
Linux(尚硅谷)(五)
Linux(尚硅谷)
98 0
|
Linux Go 数据库
Linux(尚硅谷)(三)
Linux(尚硅谷)
84 1
|
Linux Shell 网络安全
Linux(尚硅谷)(二)
Linux(尚硅谷)
103 9
|
网络协议 数据可视化 Unix
Linux(尚硅谷)(一)
Linux(尚硅谷)
208 1
|
存储 缓存 Unix
低调的 Linux 文件系统家族(一)
在 Linux 中,最直观、最可见的部分就是 文件系统(file system)。下面我们就来一起探讨一下关于 Linux 中国的文件系统,系统调用以及文件系统实现背后的原理和思想。这些思想中有一些来源于 MULTICS,现在已经被 Windows 等其他操作系统使用。Linux 的设计理念就是 小的就是好的(Small is Beautiful) 。虽然 Linux 只是使用了最简单的机制和少量的系统调用,但是 Linux 却提供了强大而优雅的文件系统。
73 0
低调的 Linux 文件系统家族(一)
|
存储 缓存 安全
低调的 Linux 文件系统家族(二)
<div class="article-inner" id="lark-content"><div class="lake-content-editor-core lake-engine lake-typography-traditional"><p style="text-align:left;font-size:14px;color:rgb( 38 , 38 , 38 );line-height:1.74;letter-spacing:0.05em;outline-style:none;margin:0px">对于每个文件&#xff0c;Linux 都会跟踪文件模式&#xff08;常规&#
72 0
低调的 Linux 文件系统家族(二)
|
Linux 开发工具
LINUX特基础的知识
LINUX特基础的知识grep:文本过滤工具(找到要找的文本) print lines matching a pattern例: 打印 行 匹配 一个 模式/样式[root@oldboyedu /opt]# grep "oldboy" oldboy.
755 0

热门文章

最新文章