常用命令
cp 拷贝(cp /etc/profile /root 拷贝/etc/profile 数据到/root 目录下)
vim 文件名 打开文件
linux常用命令
| 命令 | 功能描述 | 命令 | 功能描述 |
|---|---|---|---|
| pwd | 显示当前目录的绝对路径 | cd | 切换目录 |
| su 账户名 | 切换账户(exit退出) | ls | 列出目录的内容 |
| mkdir | 创建文件夹 | rmdir | 删除一个空的目录 |
| touch 文件名 | 创建一个文件 | cp | 复制文件或目录 |
| rm | 删除文件或目录 | mv | 移动文件目录或重命名 |
| cat | 查看文件内容 | more | 文件内容分屏查看器 |
| less | 分屏显示文件内容 | echo | 输出内容到控制台 |
| '>' | 输出重定向 | >> | 追加 |
| head | 显示文件头部内容 | tail | 输出文件尾部内容 |
| ln | 软连接(链接) | history | 查看已经执行过历史命令 |
| date | 时间信息 | cal | 查看日历 |
| ll | 列出目录详细的内容 | wc | 统计频率次数 |
| tree 目录 | 以树状显示文件目录 |
man 外部命令 查看命令信息
man -f 内部命令 查看内部命令信息
help 命令 查看命令信息只能看内部命令
外部命令 --help 查看外部命令信息
type 判断是内嵌命令还是外部命令
useradd 添加一个用户
history 之前用过的命令
reset 相当于重新启动终端
wc
wc info
16(行数) 12(12个单词以空格结束) 42(字节)
ll
- 表示文本文件
d 表示目录
c 字符类型的文件
b 快设备文件
l 链接
date
date显示当前时间 输出 2023年 03月 29日 星期三 20:18:13 CST
date +%Y 显示当前年份 2023
date +%y 显示当前年份 23
date +%m 显示当前月份
date +%d 显示当前是哪一天
date +%S 显示当前秒数
date +%s 显示当前时间戳
date "+%Y-%m-%d %H:%M:%S" 显示年月日时分秒
date -d '1 days ago'显示前一天时间
date -d '-1 days ago'功能描述:显示明天时间
date -d '1 hours ago'
date -s "2017-06-19 20:52:18" 设置系统当前时间
nptdate同步服务器时间
cal 查看日历
cal 查看当月的日历
cal 2017 查看2017年的日历
cal -m 周一在最前面
cal -3 显示最近三个月
pwd
-P显示实际路径
tail(可以实时追踪该文档的所有更新)
tail 用于输出文件中尾部的内容,默认情况下 tail 指令显示文件的后 10 行内容。
- tail 文件功能描述:查看文件尾部10行内容
- tail -n 5 文件功能描述:查看文件尾部5行内容,5可以是任意行数)
- tail -f 文件(功能描述:实时追踪该文档的所有更新)
-n<行数>输出文件尾部 n 行内容
-f显示文件最新追加的内容,监视文件变化
history
history 10显示最近十条 !1156重新执行第1156条命令 history -c清空执行过的命令
head
head 文件(功能描述:查看文件头10行内容)
head -n 5 文件(功能描述:查看文件头5行内容,5可以是任意行数)
-n<行数>指定显示头部内容的行数
查看文件的头2行
head -n 2 smartd.conf
cd
cd 绝对路径切换路径
cd /root/
cd 相对路径切换路径
cd 公共的/
cd ~或者 cd回到自己的家目录
cd ~
cd -回到上一次所在目录
cd -
cd ..回到当前目录的上一级目录
cd ..
cd ~P跳转到实际物理路径,而非快捷方式路径
ls
| 选项 | 功能 |
|---|---|
| -a | 全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用) |
| -l | 长数据串列出,包含文件的属性与权限等等数据;(常用)等价于“ll” |
mkdir创建文件夹
| 选项 | 功能 |
|---|---|
| -p | 创建多层目录 |
| 创建一个多级目录 | |
| mkdir -p xiyou/dssz/meihouwang |
删除(文件夹|文件)rmdir |rm
rmdir只能删除空文件夹所以一层一层的删除
rmdir -p b/c/d 这样也可以删掉
-r递归删除目录中所有内容
-f强制执行删除操作,而不提示用于进行确认。
-v显示指令的详细执行过程
rm xiyou/mingjie/sunwukong.txt 删除目录中的内容
rm -rf dssz/ 递归删除目录中所有内容
cp 复制文件或目录
-r 递归复制整个文件夹
cp a z 把a文件复制到z里面
cp -r a z 把a文件夹复制到z里面
mv 移动
mv oldNameFile newNameFile(功能描述:重命名)
mv /temp/movefile /targetFolder(功能描述:移动文件)
重命名
mv xiyou/dssz/suwukong.txt xiyou/dssz/houge.txt
移动文件
mv xiyou/dssz/houge.txt ./
查看文件内容(cat|more|less)
cat一般查看比较小的文件,一屏幕能显示全的。
-n 显示所有行的行号,包括空行
more
more 指令是一个基于 VI 编辑器的文本过滤器,它以全屏幕的方式按页显
示文本文件的内容。more 指令中内置了若干快捷键,详见操作说明。
| 操作 | 功能说明 |
|---|---|
| 空白键 (space) | 代表向下翻一页; |
| Enter | 代表向下翻『一行』; |
| q | 代表立刻离开 more ,不再显示该文件内容。 |
| Ctrl+F | 向下滚动一屏 |
| Ctrl+B(b) | 返回上一屏 |
| = | 输出当前行的行号 |
| :f | 输出文件名和当前行的行号 |
less
less 指令用来分屏查看文件内容,它的功能与 more 指令类似,但是more
指令更加强大,支持各种显示终端。less 指令在显示文件内容时,并不是
一次将整个文件加载之后才显示,而是根据显示需要加载内容,对于显示大
型文件具有较高的效率。
| 操作 | 功能说明 |
|---|---|
| 空白键 | 向下翻动一页; |
| [pagedown] | 向下翻动一页 |
| [pageup] | 向上翻动一页; |
| /字串 | 向下搜寻『字串』的功能;n:向下查找;N:向上查找; |
| ?字串 | 向上搜寻『字串』的功能;n:向上查找;N:向下查找; |
| q | 离开 less 这个程序; |
| G | 底部 |
| g | 开头 |
| = | 输出当前行的行号 |
echo
-e: 支持反斜线控制的字符转换
| 控制字符 | 作用 |
|---|---|
| \ | 输出\本身 |
| \n | 换行符 |
| \t | 制表符,也就是 Tab 键 |
echo -e “hello \n tworld”
hello
word
> 输出重定向和 >> 追加
- ls -l > 文件(功能描述:列表的内容写入文件 a.txt 中(覆盖写))
- ls -al >> 文件(功能描述:列表的内容追加到文件 aa.txt 的末尾)
- cat 文件 1 > 文件 2(功能描述:将文件 1 的内容覆盖到文件 2) 4.echo “内容” >> 文件
将 ls 查看信息写入到文件中
ls -l>houge.txt
将 ls 查看信息追加到文件中
ls -l>>houge.txt
采用 echo 将 hello 单词追加到文件中
echo hello>>houge.txt
ln链接
软链接也称为符号链接,类似于 windows 里的快捷方式,有自己的数据块,主要存放了链接其他文件的路径。
ln -s 软连接
ln 硬链接
直接通过vim修改软连接其实是修改的源文件
ln -s [原文件或目录] [软链接名](功能描述:给原文件创建一个软链接)
删除软链接: rm -rf 软链接名,而不是 rm -rf 软链接名/
如果使用 rm -rf 软链接名/ 删除,会把软链接对应的真实目录下内容删掉 rm -rf 软链接名只删除软连接名
查询:通过 ll 就可以查看,列表属性第 1 位是 l,尾部会有位置指向。
创建软连接
ln -s /root/info myInfo
删除软连接
rm -rf myInfo
vim 常用命令
/boot 引导分区
swap 交换分区(虚拟内存)
/ 根分区
[root@liunxs]# root账户 linuxs主机名 #超级管理员($普通管理员)
exit 退出当前终端
i 编辑模式(插入)
esc 退出当前模式
:w 保存
:q 退出文本编辑器
:set nu 列出行号
:set nonu 不要行号
ifconfig linuxip地址
service network restart(start|stop|status) 重启服务(打开,停止,查看) centos6
systemctl start | stop | restart | status network centos7
hostname 查看主机名
hostnamectl set-hostname 名字 直接修改主机名
ssh 账户@密码
exit 远程登陆后退出
ls /usr/sbin/ \ grep 条件 查看符合条件的
setup 配置开机自启动
| 语法 | 功能描述 | 语法 | 功能描述 |
|---|---|---|---|
| yy | 复制光标当前一行 | p | 箭头移动到目的行粘贴(5p粘贴5次) |
| dd | 删除光标当前行 | x | 剪切一个字母,相当于 del-> |
| yw | 复制一个词 | shift+6(^) | 移动到行头 |
| 1+shift+g | 移动到页头,数字 | 数字+shift+g | 移动到目标行 |
| w | 移动到下一个单词词头位置 | gg(数字+G) | 移动到页头,数字 |
| H | 移动当前页页头 | :w | 保存 |
| esc | 退出当前模式 | r | 替换当前字母 |
| s | 向前面插入 | 数字 N+G | 移动到目标行 |
| :!(:q! :w!) | 强制执行 | :wq | 保存并退出 |
| /要查找的词 | n 查找下一个,N 往上查找 | :noh | 取消高亮显示 |
| :set nu | 显示行号 | :set nonu | 关闭行号 |
| :s/old/new | 替换当前行匹配到的第一个 old 为 new | :s/old/new/g | 替换当前行匹配到的所有 old 为 new |
| :%s/old/new | 替换文档中每一行匹配到的第一个 old 为 new | :%s/old/new/g | 替换文档中匹配到的所有 old 为 new |
| b | 移动到上一个词的词头 |
进入编辑模式
| 按键 | 功能 |
|---|---|
| i | 当前光标前 |
| a | 当前光标后 |
| o | 当前光标行的下一行 |
| I | 光标所在行最前 |
| A | 光标所在行最后 |
| O | 当前光标行的上一行 |
linux目录结构
- /bin 存放经常使用的命令
- /sbin 存放系统管理员使用的系统管理程序
- /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(contOS6) linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后linux会把识别的设备挂载到这个目录下CentOS7迁移到 /run/media
- /mnt 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了
- /opt 这是给主机额外安装软件所摆放的目录。比如你安装一个mysql数据库则就可以放到这个目录下。默认是空的。
- /var 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件
VMware三中网络连接方式
- 桥接模式 虚拟机直接连接外部物理网络的模式,主机起到了网桥的作用。这种模式下,虚拟机可直接访问外部网络,并且对外部网络是可见的。占用ip私密性不好
- NAT模式 虚拟机和主机构建一个专用网络,并通过虚拟网络地址转换 (NAT) 设备对 IP 进行转虚拟机通过共享主机P可以访问外部网络,但外部网络无法访问虚拟机。
- 仅主机模式 虚拟机只与主机共享一个专用网络,与外部网络无法通信。
修改linux ip
系统工具网络
指令 vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
#网络类型(通常是 Ethemet)
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
#IP 的配置方法[none|static|bootp|dhcp](引导
时不 使用协议|静态分配 IP|BOOTP 协议|DHCP 协议)
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="e83804c1-3257-4584-81bb-660665ac22f6"
#随机 id
DEVICE="ens33"
#接口名(设备,网卡)
ONBOOT="yes"
#系统启动的时候网络接口是否有效(yes/no)
#IP 地址
IPADDR=192.168.1.100
#网关
GATEWAY=192.168.1.2
#域名解析器
DNS1=192.168.1.2
修改主机名
vim /etc/hostname
hostnamectl set-hostname 名字 直接修改主机名
系统管理
- 计算机中,一个正在执行的程序或命令,被叫做“进程”(process)。
- 启动之后一直存在、常驻内存的进程,一般被称作“服务”(service)。(上网)
network centos6
NetworkManager centos7
centos6查看服务的方法:ls /etc/init.d/
#service network status 查看网络服务的状态
service network stop 停止网络服务
service network start 启动网络服务
service network restart 重启网络服务
centos7查看服务的方法: ls /usr/lib/systemd/system
systemctl status firewalld 查看防火墙服务的状态
systemctl stop firewalld 停止防火墙服务
systemctl start firewalld 启动防火墙服务
systemctl restart firewalld 重启防火墙服务
linux运行级别
systemctl get-default 查看当前运行级别
systemctl set-default TARGET.target (这里 TARGET 取 multi-user 或者 graphical) 修改当前运行级别
centos6
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
运行级别2:多用户状态(没有NFS),不支持网络
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
运行级别4:系统未使用,保留
运行级别5:X11控制台,登陆后进入图形GUI模式
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
CentOS7
multi-user.target 等价于原运行级别 3(多用户有网,无图形界面)
graphical.target 等价于原运行级别 5(多用户有网,有图形界面)
linux自启动
centos6
chkconfig(功能描述:查看所有服务器自启配置)
chkconfig 服务名 off (功能描述:关掉指定服务的自动启动)
chkconfig 服务名 on (功能描述:开启指定服务的自动启动)
chkconfig 服务名 --list(功能描述:查看服务开机启动状态)
开启/关闭 network(网络)服务的自动启动
chkconfig network on
chkconfig network off
开启/关闭 network 服务指定级别的自动启动
chkconfig --level 指定级别 network on
chkconfig --level 指定级别 network off
centos7
systemctl list-unit-files(功能描述:查看服务开机启动状态)
systemctl disable service_name (功能描述:关掉指定服务的自动启动)
systemctl enable service_name (功能描述:开启指定服务的自动启动)
开启/关闭 iptables(防火墙)服务的自动启动
systemctl enable firewalld.service
systemctl disable firewalld.service
linux关机
sync(功能描述:将数据由内存同步到硬盘中)
halt(功能描述:停机,关闭系统,但不断电)
poweroff(功能描述:关机,断电)
reboot(功能描述:就是重启,等同于 shutdown -r now)
shutdown [选项] 时间
shutdown
| 选项 | 功能 |
|---|---|
| -H | 相当于--halt,停机 |
| -r | -r=reboot 重启 |
| now | 立刻关机 |
| 时间 | 等待多久后关机(时间单位是分钟) |
用户
用户管理命令
useradd添加新用户
useradd 用户名 添加新用户
useradd -g 组名 用户名 添加新用户到某个组
在home下添加新用户
useradd tony
useradd -d /home/dave
创建david用户单数david的文件夹名加dave
useradd -d /home/dave david
paswd 设置密码
passwd tony 给tony设置密码
id查看用户是否存在
id tony
uid=1001(tony)用户的uid
gid=1001(tony)组的uid
组=1001(tony)
查看创建了哪些用户
cat /etc/passwd
su 切换用户
su 用户名 切换用户,只能获得用户的执行权限,不能获得环境变量
su - 用户名 切换到用户并获得该用户的环境变量及执行权限
userdel删除用户
userdel 用户名删除用户但保存用户主目录
userdel -r 用户名 用户和用户主目录,都删除
-r 删除用户的同时,删除与用户相关的所有文件。
who 查看登录信息
whoami 显示自身用户名称
who am i 显示登录用户的用户名以及登陆时间who
who -T +号查看消息功能是否开启 mesg n 关闭消息功能 mesg y 开启消息功能
sudo 设置普通用户具有root权限
修改配置文件
vim /etc/sudoores
root ALL=(ALL) ALL
atguigu ALL=(ALL) ALL 添加(需要输入密码)
atguigu ALL=(ALL) NOPASSWD:ALL添加(不需要输入密码)
退出 :wq!强制退出
usermod修改用户信息
-g修改用户的初始登录组,给定的组必须存在。默认组 id 是 1。
将用户加入到用户组 usermod -g root zhubajie
用户组管理命令
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同
Linux 系统对用户组的规定有所不同,
如Linux下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加、删除和修改。组的增加、删除和修改实际上就是对
/etc/group文件的更新。
groupadd新增组
groupadd xitianqujing
把用户添加到组里面 usermod -g root zhubajie
groupmod 修改组
groupmod -n 新组名 老组名
groupmod -n haircut meifa
groupdel 删除组
删除xitianqujing组
groupdel xitianqujing
cat /etc/group 查看创建了哪些组
cat /etc/group
文件权限
文件属性
Linux系统是一种典型的多用户系统,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一文件(包括目录文件)的权限做了不同的规定。在Linux中我们可以使用ll或者ls -l命令来显示一个文件的属性以及文件所属 的用户和组
如果没有权限,就会出现减号[ - ]而已。从左至右用0-9这些数字来表示 )
- 0 首位表示类型
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等
- 代表文件
d 代表目录
l 链接文档(link file);
- 第1-3位确定属主(该文件的所有者)拥有该文件的权限。
- 第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group
- 第7-9位确定其他用户拥有该文件的权限 ---Other
rwx 作用文件和目录的不同解释
- 作用到文件:
[ r ]代表可读(read): 可以读取,查看
[ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条
件是对该文件所在的目录有写权限,才能删除该文件.
[ x ]代表可执行(execute):可以被系统执行
- 作用到目录:
[ r ]代表可读(read): 可以读取,ls查看目录内容
[ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录
[ x ]代表可执行(execute):可以进入该目录
- 如果查看到是文件:链接数指的是硬链接个数。
- 如果查看的是文件夹:链接数指的是子文件夹个数。
chmod改编权限
- 第一种方式变更权限 chmod [{ugoa}{+-=}{rwx}] 文件或目录
- 第二种方式变更权限 chmod [mode=421 ] [文件或目录]
u:所有者 g:所有组 o:其他人 a:所有人(u、g、o 的总和)
r=4 w=2 x=1 rwx=4+2+1=7
修改文件使其所属主用户具有执行权限
chmod u+x houge.txt
修改文件使其所属组用户具有执行权限
chmod g+x houge.txt
修改文件所属主用户执行权限,并使其他用户具有执行权限
chmod u-x,o+x houge.txt
采用数字的方式,设置文件所有者、所属组、其他用户都具有可读可写可执行权限。
chmod 777 houge.txt
修改整个文件夹里面的所有文件的所有者、所属组、其他用户都具有可读可写可执行权限
chmod -R 777 xiyou/
chown 改变所有者
把文件所属用户改为tony
chown tony initial-setup-ks.cfg
文件夹的话可能需要进行递归更改
chown -R tony initial-setup-ks
chgrp 改变所属组
chgrp fiarcut initial-setup-ks.cfg
搜索查找类
find查找文件或目录
find 指令将从指定目录向下递归地遍历其各个子目录,将满足条件的文件显示在终端。
find [搜索范围] [选项]
| 选项 | 功能 |
|---|---|
| -name<查询方式> | 按照指定的文件名查找模式查找文件 |
| -user<用户名> | 查找属于指定用户名所有文件 |
| -size<文件大小> | 按照指定的文件大小查找文件,单位为: |
b —— 块(512 字节)
c —— 字节
w —— 字(2 字节)
k —— 千字节
M —— 兆字节
G —— 吉字节
按文件名:根据名称查找/目录下的filename.txt文件。
[root@hadoop101 ~]# find xiyou/ -name "*.txt"
按拥有者:查找/opt目录下,用户名称为-user的文件
[root@hadoop101 ~]# find xiyou/ -user atguigu
按文件大小:在/home目录下查找大于200m的文件(+n 大于 -n小于 n等于)
[root@hadoop101 ~]find /home -size +204800
[root@hadoop101 ~]find /home -size +200M
locate|whereis|which 快速定位文件路径
locate 指令利用事先建立的系统中所有文件名称及路径的 locate 数据库实现快速定位给定的文件。Locate 指令无需遍历整个文件系统,查询速度较快。为了保证查询结果的准确度,管理员必须定期更新 locate 时刻。
经验技巧
由于 locate 指令基于数据库进行查询,所以第一次运行前,必须使用 updatedb 指令创建 locate 数据库
updatedb 创建更新
locate tmp 查找包含tmp的文件或目录
whereis|which ls 查找ls命令的位置
grep 过滤查找及“|”管道符
管道符,“|”,表示将前一个命令的处理结果输出传递给后面的命令处理
基本语法
grep 选项 查找内容 源文件
-n显示匹配行及行号。
-i:不区分大小 --color****颜色标记 -c****显示的次数 选项 说明 –color=auto 对匹配到的文本着色显示,grep默认匹配到的文字是着色的 -m # 匹配#次后停止 -v 显示不被匹配到的行 -i 忽略字符大小写 -n 显示匹配到的行号 -c 统计匹配到的行号 -o 仅显示匹配到的字符串 -q 静默模式,不输出任何信息 -A # after,后#行 -B # before,前#后 -C # context,前后各#行 -e 实现多个选项间的逻辑or关系 -w 匹配到整个单词 -E 使用ERE(支持扩展正则表达式) -F 相当于fgrep,不支持正则表达式 -f file根据模式文件处理
查找某文件在第几行
ls | grep -n test
压缩解压
gzip/gunzip
基本语法
| 功能 | 描述 |
|---|---|
| gzip 文件 | 压缩文件,只能将文件压缩为*.gz 文件 |
| gunzip 文件.gz | 解压缩文件命令 |
经验技巧
- 只能压缩文件不能压缩目录
- 不保留原来的文件
- 同时多个文件会产生多个压缩包
gzip 文件
gunzip 压缩文件名
zip/unzip压缩
基本语法
| 功能 | 描述 |
|---|---|
| zip [选项] XXX.zip 将要压缩的内容 | 压缩文件和目录的命令 |
| unzip [选项] XXX.zip | 解压缩文件 |
选项说明
| zip 选项 | 功能 |
|---|---|
| -r | 压缩目录 |
| unzip 选项 | 功能 |
| -d<目录> | 指定解压后文件的存放目录 |
经验技巧
zip 压缩命令在windows/linux都通用,可以压缩目录且保留源文件。
把root文件夹压缩称为myroot
zip -r myroot.zip /root
把myroot.zip解压到tmp下面
unzip -d /tmp myroot.zip
tar
基本语法
tar [选项] XXX.tar.gz 将要打包进去的内容(功能描述:打包目录,压缩后的 文件格式.tar.gz)
选项说明
| 选项 | 功能 |
|---|---|
| -c | 产生.tar 打包文件 |
| -v | 显示详细信息 |
| -f | 指定压缩后的文件名 |
| -z | 打包同时压缩gzip |
| -x | 解包.tar 文件 |
| -C | 解压到指定目录 |
压缩多个文件
[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
压缩多个文件
root@hadoop101 ~]# tar -zcvf xiyou.tar.gz xiyou/
xiyou/
xiyou/mingjie/
xiyou/dssz/
xiyou/dssz/houge.txt
解压
解压到当前目录
tar -zxvf houma.tar.gz
解压到指定目录
tar -zxvf xiyou.tar.gz -C /opt
磁盘查看和分区类
du 查看文件和目录占用的磁盘空间
du: disk usage 磁盘占用情况
基本语法
du 目录/文件 (功能描述:显示目录下每个子目录的磁盘使用情况)
选项说明
| 选项 | 功能 |
|---|---|
| -h | 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示; |
| -a | 不仅查看子目录大小,还要包括文件 |
| -c | 显示所有的文件和子目录大小后,显示总和 |
| -s | 只显示总和 |
| --max-depth=n | 指定统计子目录的深度为第 n 层 |
实操
du -sh
du --max-depth=1
df 查看磁盘空间使用情况
基本语法
df 选项 (功能描述:列出文件系统的整体磁盘使用量,检查文件系统的磁盘空间占
选项说明
| 选项 | 功能 |
|---|---|
| -h | 以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示; |
实操
[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/sda 190M 39M 142M 22% /boot
free查看当前物理内存和虚拟内存使用
free -h
lsblk 查看设备挂载情况
-f 查看详细的设备挂载情况,显示文件系统信
ide 硬盘 hda hdb
SATA 硬盘 sda(1,2,3) sdb
SCSI 硬盘 sda sdb
mount/umount 挂载/卸载
对于Linux用户来讲,不论有几个分区,分别分给哪一个目录使用,它总归就是一个根
目录、一个独立且唯一的文件结构。
Linux中每个分区都是用来组成整个文件系统的一部分,它在用一种叫做“挂载”的处理
方法,它整个文件系统中包含了一整套的文件和目录,并将一个分区和一个目录联系起来,
要载入的那个分区将使它的存储空间在这个目录下获得。
基本语法
mount [-t vfstype] [-o options] device dir(功能描述:挂载设备)
umount 设备文件名或挂载点 功能描述:卸载设备
实操
(1)挂载光盘镜像文件
[root@hadoop101 ~]# mkdir /mnt/cdrom/ 建立挂载点
[root@hadoop101 ~]# mount -t iso9660 /dev/cdrom /mnt/cdrom/ 设备/dev/cdrom
挂载到 挂载点 : /mnt/cdrom 中
[root@hadoop101 ~]# ll /mnt/cdrom/
卸载光盘镜像文件
[root@hadoop101 ~]# umount /mnt/cdrom
设置开机自动挂载
vi /etc/fstab
添加红框中内容,保存退出
fdisk分区
该命令必须在 root 用户下才能使用
基本语法
| 选项 | 功能 |
|---|---|
| fdisk -l | 查看磁盘分区详情) |
| fdisk 硬盘设备名 | 对新增硬盘进行分区操作 |
| -l | 显示所有硬盘的分区列表 |
功能说明
Linux 分区
Device:分区序列
Boot:引导
Start:从X磁柱开始
End:到Y磁柱结束
Blocks:容量
Id:分区类型ID
分区操作按键说明
m:显示命令列表
p:显示当前磁盘分区
n:新增分区
w:写入分区信息并退出
q:不保存分区信息直接退出
fdisk -l
xitongguanli
ps查看当前系统进程状态
| 选项 | 功能 |
|---|---|
| a | 列出带有终端的所有用户的进程 |
| x | 列出当前用户的所有进程,包括没有终端的进程 |
| u | 面向用户友好的显示风格 |
| -e | 列出所有进程 |
| -u | 列出某个用户关联的所有进程 |
| -f | 显示完整格式的进程列表 |
ps 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:产生此进程的命令名
ps -ef 显示信息说明
UID:用户 ID
PID:进程 ID
PPID:父进程 ID
C:CPU 用于计算执行优先级的因子。数值越大,表明进程是 CPU 密集型运算,
执行优先级会降低;数值越小,表明进程是 I/O 密集型运算,执行优先级会提高
STIME:进程启动的时间
TTY:完整的终端名称
TIME:CPU 时间
CMD:启动进程所用的命令和参数
基本语法
ps aux | grep xxx(功能描述:查看系统中所有进程)
ps -ef | grep xxx(功能描述:可以查看子父进程之间的关系)
经验技巧
如果想查看进程的 CPU 占用率和内存占用率,可以使用 aux;
如果想查看进程的父进程 ID 可以使用 ef;
kill 终止进程
基本语法
kill [选项] 进程号 功能描述:通过进程号杀死进程
killall 进程名称 功能描述:通过进程名称杀死进程,也支持通配符,这在系统因负载过大而变得很慢时很有用)
-9 表示强迫进程立即停止
pstree查看进程树
pstree -p/-u
选项说明
-p显示进程的 PID
-u显示进程的所属用户
top 实时监控系统进程状态
选项说明
| 选项 | 功能 |
|---|---|
| -d秒数 | 指定 top 命令每隔几秒更新。默认是 3 秒在 top 命令的交互模式当中可以执行的命令: |
| -i | 使 top 不显示任何闲置或者僵死进程。 |
| -p | 通过指定监控进程 ID 来仅仅监控某个进程的状态 |
操作说明
| 选项 | 功能 |
|---|---|
| P | 以 CPU 使用率排序,默认就是此项 |
| M | 以内存的使用率排序 |
| N | 以 PID 排序 |
| q | 退出 top |
查询字段解释
第一行信息为任务队列信息
| 内容 | 说明 |
|---|---|
| 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 | 僵尸进程。如果不是o,需要手工检查僵尸进程 |
第三行为 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 | 交换分区(虚拟内存)的总大小 |
| Ok used | 已经使用的交互分区的大小 |
| 524280k free | 空闲交换分区的大小 |
| 409280k cached | 作为缓存的交互分区的大小 |
具体信息
| 内容 | 说明 |
|---|---|
| USER | 用户 |
| PR | 进程优先级 |
| NI | 用户指定的优先级 |
| VIRT | 虚拟内存占用大小 |
| RES | 物理内存占用大小 |
| SHR | 共享内存占用大小 |
| S | 状态 |
| %CPU | cpu时间占比 |
| %MEM | 内存占比 |
| TIME+ | cpu事件总占比 |
| COMMAND | 生成当前进程的命令 |
实操
[root@hadoop101 atguigu]# top -d 1
[root@hadoop101 atguigu]# top -i
[root@hadoop101 atguigu]# top -p 2575
netstat显示网络状态和端口占用信息
基本语法
netstat -anp | grep 进程号 功能描述:查看该进程网络信息
netstat –nlp | grep 端口号 功能描述:查看网络端口号占用情况
选项说明
| 选项 | 功能 |
|---|---|
| -a | 显示所有正在监听(listen)和未监听的套接字(socket) |
| -n | 拒绝显示别名,能显示数字的全部转化成数字 |
| -l | 仅列出在监听的服务状态 |
| -p | 表示显示哪个进程在调用 |
实操
通过进程号查看sshd进程的网络信息
Proto 协议
Pecv-Q 已经接受到了还没有拷贝的字节数
Send-Q 还没有传过去的字节数还没有确定收到(可能丢失的)
local Address 本地地址
GFreign Address 远程地址
State 网络连接状态
PID/Program name pid以及进程名字
[root@hadoop101 hadoop-2.7.2]# netstat -anp | grep sshd
Proto Pecv-Q Send-Q local Address GFreign Address State PID/Program name
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1438/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1181/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1177/cupsd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1407/master
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 2559/sshd: root@pts
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 680/rpcbind
tcp 0 36 192.168.47.128:22 192.168.47.1:62852 ESTABLISHED 2559/sshd: root@pts
tcp6 0 0 :::22 :::* LISTEN 1181/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1177/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 1407/master
tcp6 0 0 ::1:6010 :::* LISTEN 2559/sshd: root@pts
tcp6 0 0 :::111 :::* LISTEN 680/rpcbind
查看某端口号是否被占用
[root@hadoop101 桌面]# netstat -nltp | grep 22
crontab系统定时任务
crontab服务管理
重新启动crond服务 systemctl restart crond
crontab 定时任务设置
| 选项 | 功能 |
|---|---|
| -e | 编辑crontab定时任务 |
| -l | 查询crontab任务 |
| -r | 删除当前用户所有的crontab任务 |
参数说明
crontab -e
进入 crontab 编辑界面。会打开 vim 编辑你的工作
* * * * * 执行的任务
| 项目 | 含义 | 范围 |
|---|---|---|
| 第一个“*” | 一小时当中的第几分钟 | 0-59 |
| 第二个“*” | 一天当中的第几小时 | 0-23 |
| 第三个“*” | 一个月当中的第几天 | 1-31 |
| 第四个“*” | 一年当中的第几月 | 1-12 |
| 第五个“*” | 一周当中的星期几 | 0-7 0和7都代表星期日 |
特殊符号
| 特殊符号 | 含义 |
|---|---|
| * | 代表任何时间。比如第一个“*”就代表一小时中每分钟 都执行一次的意思。 |
| , | 代表不连续的时间。比如08,12,16'***'命令,就代表 在每天的8点0分,12点0分,16点0分都执行一次命令 |
| - | 代表连续的时间范围。比如“05 * * 1-6命令”,代表在 周一到周六的凌晨5点О分执行命令 |
| */n | 代表每隔多久执行一次。比如“*/10 * ***命令”,代 表每隔10分钟就执行一遍命令 |
特定时间执行命令
| 时间 | 含义 |
|---|---|
| 4522***命令 | 每天22点45分执行命令 |
| 0 17**Ⅰ命令 | 每周1的17点0分执行命令 |
| 05 1,15**命令 | 每月1号和15号的凌晨5点О分执行命令 |
| 404**1-5命令 | 每周一到周五的凌晨4点40分执行命令 |
| /10 4**命令 | 每天的凌晨4点,每隔10分钟执行一次命令 |
| 00 1,15*1命令 | 每月1号和15号,每周1的О点0分都会执行命令。注 意:星期几和几号最好不要同时出现,因为他们定义的都 是天。非常容易让管理员混乱。 |
实操
每隔 1 分钟,向/root/bailongma.txt 文件中添加一个 11 的数字
*/1 * * * * echo ”11” >> /root/bailongma.txt
软件包管理
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包
RPM 查询命令
基本语法
-q查询 a所有 i 查询展示详细信息
rpm -qa 功能描述:查询所安装的所有rpm软件包
经验技巧
由于软件包比较多,一般都会采取过滤。rpm -qa | grep rpm软件包案例实操
查询firefox软件安装情况
rpm -qa |grep firefox
rpm -qi firefox 详细信息
rpm 卸载命令 rpm -e
基本语法
rpm -e RPM软件包
rpm -e --nodeps 软件包
| 选项 | 功能 |
|---|---|
| -e | 卸载软件包 |
| --nodeps | 卸载软件时,不检查依赖。这样的话,那些使用该软件包的软件在此之后可能就不能正常工作了。 |
卸载firefox软件
rpm -e firefox
RPM 安装命令(rpm -ivh)
基本语法
rpm -ivh RPM 包全名
选项说明
| 选项 | 功能 |
|---|---|
| -i | install,安装 |
| -v | --verbose,显示详细信息 |
| -h | --hash,进度条 |
| --nodeps | 安装前不检查依赖 |
安装firefox软件
安装firefox软件
/run/media/root/CentOS 7 x86_64/Packages 下面查看firefox版本
rpm -ivh firefox-45.0.1-1.el6.centos.x86_64.rpm
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软件包的所有依赖关系 |
实操
采用 yum 方式安装 firefox
yum -y install firefox
修改网络 YUM 源
默认的系统 YUM 源,需要连接国外 apache 网站,网速比较慢,可以修改关联的网络YUM 源为国内镜像的网站,比如网易 163,aliyun 等
- 1.安装 wget, wget 用来从指定的 URL 下载文件
yum install wget
- 2.在/etc/yum.repos.d/目录下,备份默认的 repos 文件
[root@hadoop101 yum.repos.d] pwd
/etc/yum.repos.d
[root@hadoop101 yum.repos.d] cp 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
- 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