Linux命令手册
Linux初解Linux目录/root[常用]该目录为系统管理员,也称作超级权限者的用户主目录/bin(/usr/bin、/usr/local/bin)是Binary的缩写,这个目录存放着最经常使用的命令/sbin(/usr/sbin、/usr/local/sbin)s就是SuperUser的意思,这里存放的是系统管理员使用的系统管理程序。/home存放普通用户的主目录,在Linux中每个用户都有
Linux初解
目录
- /root[常用]该目录为系统管理员,也称作超级权限者的用户主目录
- /bin(/usr/bin、/usr/local/bin)是Binary的缩写,这个目录存放着最经常使用的命令
- /sbin(/usr/sbin、/usr/local/sbin)s就是SuperUser的意思,这里存放的是系统管理员使用的系统管理程序。
- /home存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名
- /lib系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库
- /lost+found这个目录一般情况下是空的,当系统非法关机后,会将一些遗失的片段放置于此目录
- /etc[常用]所有的系统管理所需要的配置文件和子目录,比如安装mysql数据库my.conf
- /usr[常用]这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的programfiles目录。
- /boot[常用]存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件
- /proc[不能动]这个目录是一个虚拟的目录,它是系统内存的映射,访问这个目录来获取系统信息
- /srv[不能动]service缩写,该目录存放一些服务启动之后需要提取的数据
- /sys[不能动]这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统sysfs=》【别动】
- /tmp这个目录是用来存放一些临时文件的
- /dev类似于windows的设备管理器,把所有的硬件用文件的形式存储
- /media[常用]linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下
- /mnt[常用]系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。d:/myshare
- /opt这是给主机额外安装软件所存放的目录。如安装ORACLE数据库就可放到该目录下。默认为空
- /usr/local[常用]这是另一个给主机额外安装软件所安装的目录。一般是通过编译源码方式安装的程序
- /var[常用]这个目录中存放着在不断扩充着的东西,习惯将经常被修改的目录放在这个目录下。包括各种日志文件
- /selinux[security-enhancedlinux]SELinux是一种安全子系统,它能控制程序只能访问特定文件,有三种工作模式,可以自行设置.
一、vi/vim的用法
1.正常模式
以vim 打开一个档案就直接进入一般模式了(这是默认的模式)。在这个模式中,你可以使用『上下左右」按键来移动光标,可以使用『删除字符』或『删除整行』来处理档案内容,也可以使用『复制、粘贴』来处理你的文件数据。
2.插入模式
按下i,I, o, O, a,A, r,R等任何一个字母之后才会进入编辑模式,一般来说按i即可.
3.命令行模式
输入 esc再输入:在这个模式当中,可以提供你相关指令,完成读取、存盘、替换、离开vim 、显示行号等的动作则是在此模式中达成的!
常用操作:
1)拷贝当前行yy,拷贝当前行向下的5行5yy,并粘贴(输入p):5yy+p
2)删除当前行 dd,删除当前行向下的5行 : 5dd
3)在文件中查找某个单词[命令行下/关键字,回车查找,输入 n就是查找下一个] :/fs
4)设置文件的行号,取消文件的行号.[命令行下: set nu和 :set nonu]
5)在一般模式下,使用快捷键到该文档的最末行[G]和最首行[gg]
6)在一般模式下,撤销这个动作 : u
7) 在一般模式下,并将光标移动到,输入20,再输入shift+g 20
8)更多的看整理的文档
9)快捷键的键盘对应图
目录对应文件
文件的颜色 | 含义 |
---|---|
蓝色 | 目录 |
绿色 | 可执行文件 |
红色 | 压缩文件 |
浅蓝色 | 链接文件 |
灰色 | 其他文件 |
二、用户管理
关机&重启命令
- shutdown -h now 立该进行关机
- shudown -h 1 1分钟后会关机
- shutdown r now 重新启动计算机
- halt 关机,作用和上面一样.
- reboot 现在重新启动计算机
- sync 把内存的数据同步到磁盘.
添加用户
useradd 用户名
默认用户目录在 /home/用户名
指定或修改密码
password 用户名
删除用户
userdel 用户名
保留家目录
userdel -r 用户名
不保留家目录
查询用户指令
id 用户名
切换用户
su - 用户名
2)用户组管理
新增组指令:
groupadd 组名
删除组
groupdel 组名
分组:
1)增加用户时直接加上组 :
useradd -g 用户组 用户名
2)增加一个用户zwj,直接将他指定到abc
groupadd abc
useradd -g li abc
修改用户组:
usermod -g 用户组 用户名
usermod -g li abc
三、查看帮助文档
help
linux命令自带的帮助信息
ls --help
man
man是linux提供的一个手册,包含了绝大部分的命令、函数使用说明
该手册分成很多章节(section),使用man时可以指定不同的章节来浏览。
man ls ; man printf
man中各个section意义如下:
Standard commands(标准命令)
System calls(系统调用,如open,write)
Library functions(库函数,如printf,fopen)
Special devices(设备文件的说明,/dev下各种设备)
File formats(文件格式,如passwd)
Games and toys(游戏和娱乐)
Miscellaneous(杂项、惯例与协定等,例如Linux档案系统、网络协定、ASCII 码;environ全局变量)
Administrative Commands(管理员命令,如ifconfig)
四、组管理和权限管理
在linux中的每个用户必须属于一个组,不能独立于组外。
在linux中每个文件有
所有者
所在组
其它组的概念。
查看文件的所有者指令:
ls–ahl
修改文件所有者指令:
chown 用户名 文件名
组的创建
groupadd 组名
创建一个组 abc
groupadd abc
创建一个用户 m并放入到abc组中
useradd -g abc m
查看文件/目录所在组
ls –ahl
修改文件/目录所在组
chgrp 组名 文件名
权限的基本介绍
ls -l 中显示的内容如下
#菜鸟教程
0-9位说明第0位确定文件类型(d,-,l,c,b)
l 是链接,相当于windows的快捷方式
d 是目录,相当于windows的文件夹
c 是字符设备文件,鼠标,键盘
b 是块设备(装置文件里面的可供储存的接口设备),比如硬盘
- 则是文件
第1-3位确定所有者(该文件的所有者)拥有该文件的权限。—User
第4-6位确定所属组(同用户组的)拥有该文件的权限,—Group
第7-9位确定其他用户拥有该文件的权限—Other
rwx作用到文件
1)[r]代表可读(read):可以读取,查看
2)[w]代表可写(write):可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
3)[x]代表可执行(execute):可以被执行
rwx作用到目录
1)[r]代表可读(read):可以读取,ls查看目录内容
2)[w]代表可写(write):可以修改,对目录内创建+删除+重命名目录
3)[x]代表可执行(execute):可以进入该目录
例子:
-rwxrw-r-- 1 root root 1213 12月 12 10:54 abc
10个字符确定不同用户能对文件干什么
第一个字符代表文件类型:-l d c b
其余字符每3个一组(rwx)读®写(w)执行(x)
第一组rwx:文件拥有者的权限是读、写和执行
第二组rw-:与文件拥有者同一组的用户的权限是读、写但不能执行
第三组r–:不与文件拥有者同组的其他用户的权限是读不能写和执行
1 文件:硬连接数或目录:子目录数
root 用户
root 组
1213 文件大小(字节),如果是文件夹,显示4096字节
12月 12 10:54 最后修改日期
abc 文件名
对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。
同时,在Linux系统中,用户是按组分类的,一个用户属于一个或多个组。
文件所有者以外的用户又可以分为文件所有者的同组用户和其他用户。
属主有可读、可写、可执行的权限;与属主同组的其他用户有可读和可执行的权限;其他用户也有可读和可执行的权限
修改权限-chmod
通过chmod指令,可以修改文件或者目录的权限。
第一种方式:+、-、=变更权限
u : 所有者 g : 所有组 o: 其他人 a: 所有人(u、g、o的总和)
1)chmod u=rwx, g=rx, o=x文件/目录名
2)chmod o+w文件/目录名
3)chmod a-x文件/目录名
例如:
1)给abc文件的所有者读写执行的权限,给所在组读执行权限,给其它组读执行权限。chmodu=rwx,g=rx,o=rxabc
2)给abc文件的所有者除去执行的权限,增加组写的权限
chmodu-x,g+wabc
3)给abc文件的所有用户添加读的权限
chmoda+rabc
第二种方式:通过数字变更权限
r=4 w=2 x=1 rwx=4+2+1=7
chmodu=rwx, g=rx, o=x 文件目录名相当于chmod751文件/目录名
crond任务调度
crontab
-e | 编辑crontab任务 |
---|---|
-l | 查询crontab任务 |
-r | 删除当前用户所有crontab任务 |
任务调度:是指系统在某个时间执行的特定的命令或程序。
任务调度分类:
1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等
2.个别用户工作:个别用户可能希望执行某些程序,比如对mysql数据库的备份。
设置任务调度文件:
/etc/crontab设置个人任务调度。
执行 crontab–e 命令。
接着输入任务到调度文件如:*/1 * * * * ls–l /etc/ > /tmp/to.txt
意思说每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt命令
特殊符号的说明
特殊时间执行案例
at定时任务
1)at命令是一次性定时计划任务
2)默认情况下,atd守护进程每60秒检查作业队列,有作业时,会检查作业运行时间,如果时间与当前时间匹配,则运行此作业。
3)at命令是一次性定时计划任务,执行完一个任务后不再执行此任务了
4)在使用at命令的时候,一定要保证atd进程的启动,可以使用相关指令来查看 ps -ef | grep atd //可以检测atd是否在运行
at命令格式
at [选项] [时间]
按两次 Ctrl+D 结束 at 命令的输入,输出两次
atq命令来查看系统中没有执行的工作任务
atrm 2 //表示编号为2的任务删除
五、Linux 磁盘管理
查看所有设备挂载情况
lsblk 或者 lsblk-f
磁盘管理常用三个命令为 df、du和fdisk。
- df:列出文件系统的整体磁盘使用量
- du:检查磁盘空间使用量
- fdisk:用于磁盘分区
df -h
获取硬盘所被占用的空间,目前还剩下多少空间等信息
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
du -h
查询指定目录的磁盘占用情况,默认为当前目录-秒指定目录占用大小汇总
-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;
fdisk
fdisk 是 Linux 的磁盘分区表操作工具。
磁盘格式化
mkfs [-t 文件系统格式] 装置文件名
mkfs -t ext4 /dev/sdb1
- -t :可以接文件系统格式,例如 ext3, ext2, vfat 等(系统有支持才会生效)
磁盘挂载与卸除
挂载:将一个分区与一个目录联系起来,安装设备名称挂载目录
例如:mount /dev/sdb1 /newdisk
卸除:
umount 设备名称或者挂载目录
例如:umount /dev/sdb1 或者 umount/newdisk
永久挂载:
通过修改/etc/fstab实现挂载添加完成后执行安装–一即刻生效
磁盘情况
1)统计/opt文件夹下文件的个数
ls -l /opt | grep"^-"| wc -l
2)统计/opt文件夹下目录的个数
ls -l /opt | grep "^d" | wc -l
3)统计/opt文件夹下文件的个数,包括子文件夹里的
ls -lR /opt | grep "^-" | wc -l
4)统计/opt文件夹下目录的个数,包括子文件夹里的
ls -lR /opt | grep "^d" | wc -l
5)以树状显示目录结构
tree 目录
注意,如果没有tree,则使用yum install tree
安装
六、Linux网络配置原理图
linux网络环境配置
第一种方法(自动获取):说明:登陆后,通过界面的来设置自动获取ip
特点:linux启动后会自动获取IP,缺点是每次自动获取的ip地址可能不一样
第二种方法(指定ip):
直接修改配置文件来指定IP,并可以连接到外网
方法: vi /etc/sysconfig/network-scripts/ifcfg-ens33
要求:将ip地址配置的静态的,比如:ip地址为192.168.200.130
ifcfg-ens33文件说明
DEVICE=eth0#接口名(设备,网卡)
HWADDR=00:0C:2x:6x:0x:xx#MAC地址
TYPE=Ethernet#网络类型(通常是Ethemet)
UUID=926a57ba-92c6-4231-bacb-f27e5e6a9f44#随机id
#系统启动的时候网络接口是否有效(yes/no)
ONBOOT=yes
#IP的配置方法[none|static|bootp|dhcp](引导时不使用协议|静态分配IP|BOOTP协议|DHCP协议)
BOOTPROTO=static
#IP 地址
IPADDR=192.168.200.130
#网关
GATEWAY=192.168.200.2
#域名解析器
DNS1=192.168.200.2
最后重启网络服务或者重启系统生效 service network restart、reboot
设置主机名和hosts映射
修改主机名:
1)查看主机名:hostname
2)修改文件在/etc/hostname指定
3)修改后,重启生效
设置hosts映射:
windows
在C:\Windows\System32\drivers\etc\hosts文件指定即可
案例:192.168.96.128 zzz001
linux
在/etc/hosts文件指定
案例:192.168.200.1 主机名
进程管理
显示系统执行的进程ps
-a | 显示终端上的所有进程,包括其他用户的进程 |
---|---|
-u | 显示进程的详细状态 |
-x | 显示没有控制终端的进程 |
-w | 显示加宽,以便显示更多的信息 |
-r | 只显示正在运行的进程 |
应用实例:
以全格式显示当前所有的进程,查看进程的父进程。查看sshd的父进程信息
ps -ef 是以全格式显示当前所有的进程
-e显示所有进程
-f全格式
ps -ef | grep sshd
终止进程 kill 和 killall
kill:进程号(通过进程号杀死/终止进程)
killall:进程名称(通过进程名称杀死进程,也支持通配符)
-9:表示强迫进程立即停止
查看进程树 pstree
-p:显示进程的PID
-u:显示进程的所属用户
firewall指令
1)打开端口:firewall -cmd --permanent --add-port=端口号/协议
2)关闭端口:firewall -cmd --permanent --remove-port=端口号/协议
3)重新载入,才能生效:firewall -cmd --reload
4)查询端口是否开放:firewall -cmd --query-port=端口/协议
七、RPM与YUM
rpm包的管理
rpm用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件。
rpm包的简单查询指令
查询已安装的rpm列表
rpm –qa | grep xx
看看当前系统,是否安装了firefox
rpm -qa | grep firefox
rpm包名基本格式
一个rpm包名:firefox-60.2.2-1.el7.centos.x86_64
名称:firefox
版本号:60.2.2-1
适用操作系统:el7.centos.x86_64
表示centos7.x的64位系统如果是i686、i386表示32位系统,noarch表示通用
rpm包的其它查询指令:
rpm -qa : 查询所安装的所有 rpm 软件包
rpm -qa | more
rpm -qa | grepX[rpm-qa|grepfirefox]
rpm -q 软件包名 :查询软件包是否安装
rpm -qi 软件包名 :查询软件包信息
rpm -ql 软件包名 :查询软件包中的文件
rpm -qf 文件全路径名 :查询文件所属的软件包
rpm -e 包的名称 :卸载rpm包
安装rpm包
rpm -ivh RPM包全路径名称
参数说明:
i=install安装
v=verbose提示
h=hash进度条
卸载和安装firefox浏览器
rpm -e firefox
rpm -ivh firefox
YUM
Yum是一个Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
基本指令
查询yum服务器是否有需要安装的软件
yum list | grep xx软件列表
安装指定的yum包
yum install xxx下载安装
八、搭建JavaEE环境
安装JDK
安装步骤:
1.mkdir /opt/jd
2.把压缩包放到/opt/jdk
3.解压tar -zxvf jdk-8u261-linux-x64.tar.gz
4.mkdir /usr/local/java
5.mv /opt/jdk/jdk1.8.0_261 /usr/local/java
6.配置环境变量的配置文件vim /etc/profile
7.export JAVA_HOME=/usr/local/java/jdk1.8.0_261
8.export PATH=$JAVA_HOME/bin:$PATH
9.source /etc/profile [让新的环境变量生效]
九、Shell编程
Shell 脚本(shell script),是一种为 shell 编写的脚本程序。
脚本格式要求
1)脚本以 #/bin/bash
开头
2)脚本需要有可执行权限
vim hello.sh
#!/bin/bash
echo "love is responsibility!!!"
脚本的常用执行方式
方式1(输入脚本的绝对路径或相对路径)
说明:首先要赋予hello.sh脚本的+x权限,再执行脚本
比如./hello.sh
或者使用绝对路径 /root/shcode/hello.sh
方式2(sh+脚本)
说明:不用赋予脚本+x权限,直接执行即可。
比如sh hello.sh
,也可以使用绝对路径
[root@soldier01 shcode]# ./hello.sh
-bash: ./hello.sh: Permission denied
[root@soldier01 shcode]# sh hello.sh
love is responsibility!!!
[root@soldier01 shcode]# ll
total 4
-rw-r--r-- 1 root root 48 Dec 26 11:08 hello.sh
[root@soldier01 shcode]# chmod u+x hello.sh
[root@soldier01 shcode]# ll
total 4
-rwxr--r-- 1 root root 48 Dec 26 11:08 hello.sh
[root@soldier01 shcode]# ./hello.sh
love is responsibility!!!
Shell的变量
1)LinuxShell中的变量分为,系统变量和用户自定义变量。
2)系统变量: H O M E 、 HOME、 HOME、PWD、 S H E L L 、 SHELL、 SHELL、USER等等,比如:echo$HOME等等…
3)显示当前shell中所有变量:set
shell变量的定义
基本语法1)定义变量:变量名=值
2)撤销变量:unset变量
3)声明静态变量:readonly变量,注意:不能unset
1)案例1:定义变量A
2)案例2:撤销变量A
3)案例3:声明静态的变量B=2,不能unset
A=100
B=200
echo A=$A
echo "B=$B"
unset A
echo A=$A
echo "B=$B"
-------------
A=100
B=200
A=
B=200
定义变量的规则:
1)变量名称可以由字母、数字和下划线组成,但是不能以数字开头。5A=200(×)
2)等号两侧不能有空格
3)变量名称一般习惯为大写,这是一个规范,我们遵守即可
Shell 字符串
字符串可以用单引号,也可以用双引号,也可以不用引号。
双引号
A="power"
str="With great $A comes great responsibility "
echo $str
----------
With great power comes great responsibility
双引号的优点:
- 双引号里可以有变量
- 双引号里可以出现转义字符
获取字符串长度
str="abcd"
echo ${#str} #4
shell脚本的多行注释
:<<! 内容 !
read命令
read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量
#!/bin/sh
read aaa
echo "$aaa it is great"
----------
love #输入love
love it is great #输出
位置参数变量
当我们执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量
比如:./myshell.sh 100 200,这个就是一个执行shell的命令行,可以在myshell脚本中获取到参数信息
参数 | 说明 |
---|---|
$# | 传递到脚本的参数个数 |
$* | 以一个单字符串显示所有向脚本传递的参数。 如"$*“用「”」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 |
$$ | 脚本运行的当前进程ID号 |
$! | 后台运行的最后一个进程的ID号 |
$@ | 与 ∗ 相同,但是使用时加引号,并在引号中返回每个参数。如 " *相同,但是使用时加引号,并在引号中返回每个参数。 如" ∗相同,但是使用时加引号,并在引号中返回每个参数。如"@“用「”」括起来的情况、以"$1" “ 2 " … " 2" … " 2"…"n” 的形式输出所有参数。 |
$- | 显示Shell使用的当前选项,与set命令功能相同。 |
$? | 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。 |
echo "第一个参数为:$1";
echo "参数个数为:$#";
echo "传递的参数作为一个字符串显示:$*";
---------
$ ./hello.sh 1 2 3
第一个参数为:1
参数个数为:3
传递的参数作为一个字符串显示:1 2 3
数组
定义格式:
array=(value1 value2 ... valuen)
读取格式:
${array_name[index]}
实例
#定义:
array01=(A B C D)
#读取数组:
echo "第一个元素为: ${array01[0]}"
echo "第二个元素为: ${array01[1]}"
echo "第三个元素为: ${array01[2]}"
echo "第四个元素为: ${array01[3]}"
第一个元素为: A
第二个元素为: B
第三个元素为: C
第四个元素为: D
获取数组中的所有元素
使用@ 或 * 可以获取数组中的所有元素,例如:
echo "数组的元素为: ${my_array[*]}"
echo "数组的元素为: ${my_array[@]}"
--------------
数组的元素为: A B C D
数组的元素为: A B C D
Shell 基本运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr。
基本语法
“ ( ( 运算式 ) ) " 或 " ((运算式))"或" ((运算式))"或"[运算式]”
Tag1=$((2+3))
Tag2=$[4+5]
echo "Tag1=$Tag1"
echo "Tag2=$Tag2"
-------------------
Tag1=5
Tag2=9
expr
使用的是反引号 `
val=`expr 2 + 3`
echo $val
------------
5
注意:
- 表达式和运算符之间要有空格,例如 2+3 是不对的,必须写成 2 + 3,这与我们熟悉的大多数编程语言不一样。
算术运算符
a 为 10,变量 b 为 20:
运算符 | 说明 | 举例 |
---|---|---|
+ | 加法 | expr $a + $b 结果为 30。 |
- | 减法 | expr $a - $b 结果为 -10。 |
* | 乘法 | expr $a \* $b 结果为 200。 |
/ | 除法 | expr $b / $a 结果为 2。 |
% | 取余 | expr $b % $a 结果为 0。 |
= | 赋值 | a=$b 把变量 b 的值赋给 a。 |
== | 相等。用于比较两个数字,相同则返回 true。 | [ $a == $b ] 返回 false。 |
!= | 不相等。用于比较两个数字,不相同则返回 true。 | [ $a != $b ] 返回 true。 |
注意:
- 条件表达式要放在方括号之间,并且要有空格,例如: [ a = = a== a==b] 是错误的,必须写成 [ $a == $b ]。
- 乘号(*)前边必须加反斜杠 \ 才能实现乘法运算;
关系运算符
常用判断条件
- =字符串比较
2)两个整数的比较
假定变量 a 为 10,变量 b 为 20:
运算符 | 说明 | 举例 |
---|---|---|
-eq | 相等=,返回 true。 | [ $a -eq $b ] 返回 false。 |
-ne | 不相等返回 true。 | [ $a -ne $b ] 返回 true。 |
-gt | 大于>,则返回 true。 | [ $a -gt $b ] 返回 false。 |
-lt | 小于<,则返回 true。 | [ $a -lt $b ] 返回 true。 |
-ge | 大于等于>=,则返回 true。 | [ $a -ge $b ] 返回 false。 |
-le | 小于等于<=,则返回 true。 | [ $a -le $b ] 返回 true。 |
3)按照文件权限进行判断
-r有读的权限
-w有写的权限
-x有执行的权限
4)按照文件类型进行判断
-f文件存在并且是一个常规的文件
-e文件存在
-d文件存在并是一个目录
test 命令
test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。
num1="abc"
num2="efg"
if test $num1 = $num2
then
echo '两个字符串相等!'
else
echo '两个字符串不相等!'
fi
----------
两个字符串不相等
function fun(){
echo "fsd"
}
fun
--------
fsd
布尔运算符
运算符 | 说明 | 举例 |
---|---|---|
! | 非运算,表达式为 true 则返回 false,否则返回 true。 | [ ! false ] 返回 true。 |
-o | 或运算,有一个表达式为 true 则返回 true。 | [ $a -lt 20 -o $b -gt 100 ] 返回 true。 |
-a | 与运算,两个表达式都为 true 才返回 true。 | [ $a -lt 20 -a $b -gt 100 ] 返回 false。 |
逻辑运算符
运算符 | 说明 | 举例 |
---|---|---|
&& | 逻辑的 AND | [[ $a -lt 100 && $b -gt 100 ]] 返回 false |
|| | 逻辑的 OR | [[ $a -lt 100 || $b -gt 100 ]] 返回 true |
字符串运算符
a 为 “abc”,变量 b 为 “efg”:
运算符 | 说明 | 举例 |
---|---|---|
= | 检测两个字符串是否相等,相等返回 true。 | [ $a = $b ] 返回 false。 |
!= | 检测两个字符串是否不相等,不相等返回 true。 | [ $a != $b ] 返回 true。 |
-z | 检测字符串长度是否为0,为0返回 true。 | [ -z $a ] 返回 false。 |
-n | 检测字符串长度是否不为 0,不为 0 返回 true。 | [ -n “$a” ] 返回 true。 |
$ | 检测字符串是否为空,不为空返回 true。 | [ $a ] 返回 true。 |
printf 命令
默认的 printf 不会像 echo 自动添加换行符,我们可以手动添加 \n。
printf 命令的语法:
printf format-string [arguments...]
参数说明:
- format-string: 为格式控制字符串
- arguments: 为参数列表。
printf "%-10s %-8s %-4s\n" 姓名 性别 体重kg
printf "%-10s %-8s %-4.2f\n" ab man 55.5555
printf "%-10s %-8s %-4.2f\n" cd man 66.6666
printf "%-10s %-8s %-4.2f\n" df woman 77.7777
姓名 性别 体重kg
ab man 55.56
cd man 66.67
df woman 77.78
%s %c %d %f 都是格式替代符,%s 输出一个字符串,%d 整型输出,%c 输出一个字符,%f 输出实数,以小数形式输出。
%-10s 指一个宽度为 10 个字符(- 表示左对齐,没有则表示右对齐),任何字符都会被显示在 10 个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
%-4.2f 指格式化为小数,其中 .2 指保留2位小数。
流程控制
if判断
基本语法
if
[
条件判断式
]
then
代码
fi
或者
,
多分支
if
[
条件判断式
]
then
代码
elif
[
条件判断式
]
then
代码
fi
实例
if [ $1 -ge 60 ]
then
echo "great"
elif [ $1 -lt 60 ]
then
echo "bad"
fi
------------
./hello.sh 54
bad
./hello.sh 65
great
for 循环
基本语法
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
实例:
for val in 3 4 5 6
do
echo "val=$val"
done
-----------
val=3
val=4
val=5
val=6
while 语句
基本语法
while condition
do
command
done
实例:
a=1
while (( $a <= 5 ))
do
echo $a
let "a++"
done
case … esac
基本语法
case 值 in
条件1)
command1
;;
条件2)
command2
;;
esac
实例:
case $1 in
"1")
echo “yi”;;
"2")
echo "er";;
esac
-----------
./hello.sh 2
函数
系统函数
basename
功能:返回完整路径最后/的部分,常用于获取文件名
dirname
基本语法功能:返回完整路径最后/的前面的部分,常用于返回路径部分
自定义函数
[function] funname[()]
{
Action;
[return int;]
}
调用直接写函数名:funname[值]
function fun(){
echo "fsd"
}
fun
-----------
fsd
十、日志管理
日志文件是重要的系统信息文件,其中记录了许多重要的系统事件,包括用户的登录信息、系统的启动信息、系统的安全信息、邮件相关信息、各种服务相关信息等。
可以这样理解日志是用来记录重大事件的工具
系统常用的日志
rsyslogd
查询Linux中的rsyslogd服务是否启动
ps aux|grep "rsyslog"|grep -v "grep"
查询rsyslogd服务的自启动状态
systemctl list-unit-files|grep rsyslog
[root@soldier01 ~]# ps aux|grep "rsyslog"|grep -v "grep"
root 1086 0.0 0.6 226720 11364 ? Ssl Dec28 0:07 /usr/sbin/rsyslogd -n
[root@soldier01 ~]# systemctl list-unit-files|grep rsyslog
rsyslog.service enabled
配置文件:/etc/rsyslog.conf
编辑文件时的格式为:
*.*
存放日志文件其中第一个*
代表日志类型,第二个*代表日志级别
实例:
日志管理服务应用实例在/etc/rsyslog.conf中添加一个日志文件/var/log/zzz.log,当有事件发送时(比如sshd服务相关事件),该文件会接收到信息并保存
日志轮替
日志轮替就是把旧的日志文件移动并改名,同时建立新的空日志文件,当旧日志文件超出保存的范围之后,就会进行删除
日志轮替文件命名
1)centos7使用logrotate进行日志轮替管理,要想改变日志轮替文件名字,通过/etc/logrotate.conf配置文件中"日期ext"参数:
2)如果配置文件中有"日期ext"参数,那么日志会用日期来作为日志文件的后缀,例如"安全-20201010"。这样日志文件名不会重叠,也就不需要日志文件的改名,只需要指定保存日志个数,删除多余的日志文件即可。
3)如果配置文件中没有"日期ext"参数,日志文件就需要进行改名了。当第一次进行日志轮替时,当前的"安全"日志会自动改名为"安全。",然后新建"安全"日志,用来保存新的日志。当第二次进行日志轮替时,“安全。“会自动改名为"安全。”,当前的"安全"日志会自动改名为"安全。”,然后也会新建"安全"日志,用来保存新的日志,以此类推。
logrotate配置文件
/etc/logrotate.conf为logrotate的全局配置文件
#旋转日志文件周刊每周对日志文件进行一次轮替
weekly
#keep4weeksworthofbacklogs,共保存4份日志文件,当建立新的日志文件时,旧的将会被删除
rotate4
#create new(empty) log files after rotating old ones,创建新的空的日志文件,在日志轮替后
create
#use date as a suffix of the rotated file,使用日期作为日志轮替文件的后缀dateext
#uncomment this if you want your log files compressed,日志文件是否压缩。如果取消注释,则日志会在转储的同时进行压缩#compress
#RPM packages drop log rotation information into this directory include/etc/logrotate.d
#包含/etc/logrotate.d/目录中所有的子配置文件。也就是说会把这个目录中所有子配置文件读取进来,
#下面是单独设置,优先级更高。
#no packages own wtmp and btmp–we’ll rotate them here
/var/log/wtmp{
monthly #每月对日志文件进行一次轮替
create 0664 root utmp #建立的新日志文件,权限是0664,所有者是root,所属组是utmp组
minsize1M#日志文件最小轮替大小是1MB。也就是日志一定要超过1MB才会轮替,否则就算时间达到一个月,也不进行日志转储
rotate1 #仅保留一个日志备份。也就是只有wtmp和wtmp.1日志保留而已
}
/var/log/btmp{
missingok#如果日志不存在,则忽略该日志的警告信息
monthly
create 0600 root utmp
rotate1
}
参数说明:
参数 参数说明
daily 日志的轮替周期是每天
weekly 日志的轮替周期是每周
monthly 日志的轮替周期是每月
rotate 数字保留的日志文件的个数。0指没有备份
compress 日志轮替时,旧的日志进行压缩
create mode owner group建立新日志,同时指定新日志的权限与所有者和所属组。
mail address 当日志轮替时,输出内容通过邮件发送到指定的邮件地址。
missingok 如果日志不存在,则忽略该日志的警告信息
notifempty 如果日志为空文件,则不进行日志轮替
minsize大小 日志轮替的最小值。也就是日志一定要达到这个最小值才会轮替,否则就算时间达到也不轮替
size大小 日志只有大于指定大小才进行日志轮替,而不是按照时间轮替。
dateext 使用日期作为日志轮替文件的后缀。
sharedscripts 在此关键字之后的脚本只执行一次。
prerotate/endscript 在日志轮替之前执行脚本命令。
postrotate/endscript 在日志轮替之后执行脚本命令。
十一、安装webmin和bt运维工具
webmin安装
1)下载地址: http://download.webmin.com/download/yum/
或命令
下载:wget http://download.webmin.com/download/yum/webmin-1.700-1.noarch.rpm
2)安装:rpm-ivhwebmin-1.700-1.noarch.rpm
3)重置密码:/usr/libexec/webmin/changepass.pl /etc/webmin root test
root是webmin的用户名,不是OS的,这里就是把webmin的root用户密码改成了test
4)修改webmin服务的端口号(默认是10000出于安全目的)vim/etc/webmin/miniserv.conf
#修改端口
5)将port=10000修改为其他端口号,如port=8448
6)重启webmin
/etc/webmin/restart#重启
/etc/webmin/start#启动
/etc/webmin/stop#停止
7)防火墙放开8448端口
firewall-cmd–zone=public–add-port=8448/tcp–permanent#配置防火墙开放8448端口
firewall-cmd–reload#更新防火墙配置
firewall-cmd–zone=public–list-ports#查看已经开放的端口号
8)登录webmin http://ip:8448可以访问了用root账号和重置的新密码test
bt(宝塔)安装
1)安装
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
2)如果bt的用户名,密码忘记了,使用bt default
可以查看
Linux命令集
关机/重启/注销
常用命令 | 作用 |
---|---|
shutdown -h now | 即刻关机 |
shutdown -h 10 | 10分钟后关机 |
shutdown -h 11:00 | 11:00关机 |
shutdown -h +10 | 预定时间关机(10分钟后) |
shutdown -c | 取消指定时间关机 |
shutdown -r now | 重启 |
shutdown -r 10 | 10分钟之后重启 |
shutdown -r 11:00 | 定时重启 |
reboot | 重启 |
init 6 | 重启 |
init 0 | ⽴刻关机 |
telinit 0 | 关机 |
poweroff | ⽴刻关机 |
halt | 关机 |
sync | buff数据同步到磁盘 |
logout | 退出登录Shell |
系统信息和性能查看
常用命令 | 作用 |
---|---|
uname -a | 查看内核/OS/CPU信息 |
uname -r | 查看内核版本 |
uname -m | 查看处理器架构 |
arch | 查看处理器架构 |
hostname | 查看计算机名 |
who | 显示当前登录系统的⽤户 |
who am i | 显示登录时的⽤户名 |
whoami | 显示当前⽤户名 |
cat /proc/version | 查看linux版本信息 |
cat /proc/cpuinfo | 查看CPU信息 |
cat /proc/interrupts | 查看中断 |
cat /proc/loadavg | 查看系统负载 |
uptime | 查看系统运⾏时间、⽤户数、负载 |
env | 查看系统的环境变量 |
lsusb -tv | 查看系统USB设备信息 |
lspci -tv | 查看系统PCI设备信息 |
lsmod | 查看已加载的系统模块 |
grep name | 用于查找内容包含指定的范本样式的文件 |
grep MemTotal /proc/meminfo | 查看内存总量 |
grep MemFree /proc/meminfo | 查看空闲内存量 |
free -m | 查看内存⽤量和交换区⽤量 |
date | 显示系统⽇期时间 date"+%Y-%m-%d%H:%M:%S" |
cal 2021 | 显示2021⽇历表 |
top | 动态显示cpu/内存/进程等情况 |
vmstat 1 20 | 每1秒采⼀次系统状态,采20次 |
iostat | 查看io读写/cpu使⽤情况 |
查看io读写/cpu使⽤情况 | 查询cpu使⽤情况(1秒⼀次,共10次) |
sar -d 1 10 | 查询磁盘性能 |
磁盘和分区
常用命令 | 作用 |
---|---|
fdisk -l | 查看所有磁盘分区 |
swapon -s | 查看所有交换分区 |
df -h | 查看磁盘使⽤情况及挂载点 |
df -hl | 同上 |
du -sh /dir | 查看指定某个⽬录的⼤⼩ |
du -sk * | sort -rn | 从⾼到低依次显示⽂件和⽬录⼤⼩ |
mount /dev/hda2 /mnt/hda2 | 挂载hda2盘 |
mount -t ntfs /dev/sdc1 /mnt/usbhd1 | 指定⽂件系统类型挂载(如ntfs) |
mount -o loop xxx.iso /mnt/cdrom | 挂 载 iso ⽂ 件 |
umount -v /dev/sda1 | 通过设备名卸载 |
umount -v /mnt/mymnt | 通过挂载点卸载 |
fuser -km /mnt/hda1 | 强制卸载(慎⽤) |
⽤户和⽤户组
常用命令 | 作用 |
---|---|
useradd codesheep | 创建⽤户 |
userdel -r codesheep | 删除⽤户 |
usermod -g group_name user_name | 修改⽤户的组 |
usermod -aG group_name user_name | 将⽤户添加到组 |
usermod -s /bin/ksh -d /home/codepig –g dev codesheep | 修改⽤户codesheep的登录Shell、主⽬录以及⽤户组 |
groups test | 查看test⽤户所在的组 |
groupadd group_name | 创建⽤户组 |
groupdel group_name | 删除⽤户组 |
groupmod -n new_name old_name | 重命名⽤户组 |
su - user_name | su - user_name |
passwd | 修改⼝令 |
passwd codesheep | 修改某⽤户的⼝令 |
w | 查看活动⽤户 |
id codesheep | 查看指定⽤户codesheep信息 |
last | 查看⽤户登录⽇志 |
crontab -l | 查看当前⽤户的计划任务 |
cut -d: -f1 /etc/passwd | 查看系统所有⽤户 |
cut -d: -f1 /etc/group | 查看系统所有组 |
⽹络和进程管理
常用命令 | 作用 |
---|---|
ifconfig | 查看⽹络接⼝属性 |
ifconfig eth0 | 查看某⽹卡的配置 |
route -n | 查看路由表 |
netstat -lntp | 查看所有监听端⼝ |
netstat -antp | 查看已经建⽴的TCP连接 |
netstat -lutp | 查看TCP/UDP的状态信息 |
ifup eth0 | 启⽤eth0⽹络设备 |
ifdown eth0 | 禁⽤eth0⽹络设备 |
iptables -L | 查看iptables规则 |
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 | 配置ip地址 |
dhclient eth0 | 以dhcp模式启⽤eth0 |
route add -net 0/0 gw Gateway_IP | 配置默认⽹关 |
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 | 配置静态路由到达⽹络’192.168.0.0/16’ |
route del 0/0 gw Gateway_IP | 删除静态路由 |
hostname | 查看主机名 |
host www.baidu.com | 解析主机名 |
nslookup www.baidu.com | 查询DNS记录,查看域名解析是否正常 |
ps -ef | 查看所有进程 |
ps -ef | grep codesheep | 过滤出你需要的进程 |
kill -s name | kill指定名称的进程 |
kill -s pid | kill指定pid的进程 |
top | 实时显示进程状态 |
vmstat 1 20 | 每1秒采⼀次系统状态,采20次 |
iostat | iostat |
sar -u 1 10 | 查询cpu使⽤情况(1秒⼀次,共10次) |
sar -d 1 10 | 查询磁盘性能 |
常⻅系统服务命令
常用命令 | 作用 |
---|---|
chkconfig --list | 列出系统服务 |
service <服务名> status | 查看某个服务 |
service <服务名> start | 启动某个服务 |
service <服务名> stop | 终⽌某个服务 |
service <服务名> restart | 重启某个服务 |
systemctl status <服务名> | 查看某个服务 |
systemctl start <服务名> | 启动某个服务 |
systemctl stop <服务名> | 终⽌某个服务 |
systemctl restart <服务名> | 重启某个服务 |
systemctl enable <服务名> | 关闭⾃启动 |
systemctl disable <服务名> | 关闭⾃启动 |
⽂件和⽬录操作
常用命令 | 作用 |
---|---|
cd <⽬录名> | 进⼊某个⽬录 |
cd … | 回上级⽬录 |
cd …/… | 回上两级⽬录 |
cd | 进个⼈主⽬录 |
cd - | 回上⼀步所在⽬录 |
pwd | 显示当前路径 |
ls | 查看⽂件⽬录列表 |
ls -F | 查看⽬录中内容(显示是⽂件还是⽬录) |
ls -l | 查看⽂件和⽬录的详情列表 |
ls -a | 查看隐藏⽂件 |
ls -lh | 查看⽂件和⽬录的详情列表(增强⽂件⼤⼩易读性) |
ls -lSr | 查看⽂件和⽬录列表(以⽂件⼤⼩升序查看) |
tree | 查看⽂件和⽬录的树形结构 |
mkdir <⽬录名> | 创建⽬录 |
mkdir dir1 dir2 | 同时创建两个⽬录 |
mkdir -p /tmp/dir1/dir2 | 创建⽬录树 |
rm -f file1 | 删除’file1’⽂件 |
rmdir dir1 | 删除’dir1’⽬录 |
rm -rf dir1 | 删除’dir1’⽬录和其内容 |
rm -rf dir1 dir2 | 同时删除两个⽬录及其内容 |
mv old_dir new_dir | 重命名/移动⽬录 |
cp file1 file2 | 复制⽂件 |
cp dir/* . | 复制某⽬录下的所有⽂件⾄当前⽬录 |
cp -a dir1 dir2 | 复制⽬录 |
cp -a /tmp /dir1 . | 复制⼀个⽬录⾄当前⽬录 |
cp file /* | 复制⼀个⽂件⾄指定⽬录 |
ln -s file1 link1 | 创建指向⽂件/⽬录的软链接 |
ln file1 lnk1 | 创建指向⽂件/⽬录的物理链接 |
find / -name file1 | 从跟⽬录开始搜索⽂件/⽬录 |
find / -user user1 | 搜索⽤户user1的⽂件/⽬录 |
find /dir -name *.bin | 在⽬录/dir中搜带有.bin后缀的⽂件 |
find / -size num(单位) | 根据文件大小查找文件(+n 大于 -n小于 n等于) |
locate <关键词> | 快速定位⽂件 |
locate *.mp4 | 寻找.mp4结尾的⽂件 |
whereis <关键词> | 显示某⼆进制⽂件/可执⾏⽂件的路径 |
which <关键词> | 查找系统⽬录下某的⼆进制⽂件 |
chmod ugo+rwx dir1 | 设置⽬录所有者(u)、群组(g)及其他⼈(o)的读(r)写(w)执⾏(x)权限 |
chmod go-rwx dir1 | 移除群组(g)与其他⼈(o)对⽬录的读写执⾏权限 |
chown user1 file1 | 改变⽂件的所有者属性 |
chown -R user1 dir1 | 改变⽬录的所有者属性,该目录下的所有文件的属组都会更改 |
chgrp group1 file1 | 改变⽂件群组 |
chown user1:group1 file1 | 改变⽂件的所有⼈和群组 |
echo | 输出内容到控制台 类似printf |
⽂件查看和处理
常用命令 | 作用 |
---|---|
cat file1 | 查看⽂件内容 |
cat -n file1 | 查看内容并标示⾏数 |
tac file1 | 从最后⼀⾏开始反看⽂件内容 |
more file1 | more file1 空白键–翻下一页 q–离开more |
less file1 | 类似more命令,但允许反向操作,效率高 |
head -2 file1 | 查看⽂件前两⾏ 不写-n默认显示10行 |
tail -2 file1 | 查看⽂件后两⾏ 类似head |
tail -f /log/msg | 实时查看添加到⽂件中的内容 退出ctrl+c |
grep "关键词"hello.txt | 在⽂件hello.txt中查找关键词 -n显示行号 |
grep ^sheep hello.txt | 在⽂件hello.txt中查找以sheep开头的内容 |
grep [0-9] hello.txt | 选择hello.txt⽂件中所有包含数字的⾏ |
sed ‘s/s1/s2/g’ hello.txt | 将hello.txt⽂件中的s1替换成s2 |
sed ‘/^$/d’ hello.txt | 从hello.txt⽂件中删除所有空⽩⾏ |
sed ‘/ *#/d; /^$/d’ hello.txt | 从hello.txt⽂件中删除所有注释和空⽩⾏ |
sed -e ‘1d’ hello.txt | 从⽂件hello.txt 中排除第⼀⾏ |
sed -n ‘/s1/p’ hello.txt | 查看只包含关键词"s1"的⾏ |
sed -e ‘s/ *$//’ hello.txt | 删除每⼀⾏最后的空⽩字符 |
sed -e ‘s/s1//g’ hello.txt | 从⽂档中只删除词汇s1并保留剩余全部 |
sed -n ‘1,5p;5q’ hello.txt | 查看从第⼀⾏到第5⾏内容 |
sed -n ‘5p;5q’ hello.txt | 查看第5⾏ |
paste file1 file2 | 合并两个⽂件或两栏的内容 |
paste -d ‘+’ file1 file2 | 合并两个⽂件或两栏的内容,中间⽤"+"区分 |
sort file1 file2 | 排序两个⽂件的内容 |
comm -1 file1 file2 | ⽐较两个⽂件的内容(去除’file1’所含内容) |
comm -2 file1 file2 | ⽐较两个⽂件的内容(去除’file2’所含内容 |
comm -3 file1 file2 | ⽐较两个⽂件的内容(去除两⽂件共有部分) |
> 重定向 | —覆盖原文件内容 : > 覆盖文件 被覆盖文件 |
>> 追加内容 | 在原文件基础上追加内容 |
打包和解压
常用命令 | 作用 |
---|---|
zip xxx.zip file | 压缩⾄zip包 |
zip -r xxx.zip file1 file2 dir1 | 将多个⽂件+⽬录压成zip包 |
unzip xxx.zip | 解压zip包 |
tar -cvf xxx.tar file | 创建⾮压缩tar包 |
tar -cvf xxx.tar file1 file2 dir1 | 将多个⽂件+⽬录打tar包 |
tar -tf xxx.tar | 查看tar包的内容 |
tar -xvf xxx.tar | 解压tar包 |
tar -xvf xxx.tar -C /dir | 将tar包解压⾄指定⽬录 |
tar -cvfj xxx.tar.bz2 dir | 创建bz2压缩包 |
tar -jxvf xxx.tar.bz2 | 解压bz2压缩包 |
tar -cvfz xxx.tar.gz dir | 创建gzip压缩包 |
tar -zxvf xxx.tar.gz | 解压gzip压缩包 |
bunzip2 xxx.bz2 | 解压bz2压缩包 |
bzip2 filename | 压缩⽂件 |
gunzip xxx.gz | 解压gzip压缩包 |
gzip filename | 压缩⽂件 |
gzip -9 filename | 最⼤程度压缩 |
RPM包管理命令
常用命令 | 作用 |
---|---|
rpm -qa | 查看已安装的rpm包 |
rpm -q pkg_name | 查询某个rpm包 |
rpm -q --whatprovides xxx | 显示xxx功能是由哪个包提供的 |
rpm -q --whatrequires xxx | 显示xxx功能被哪个程序包依赖的 |
rpm -q --changelog xxx | 显示xxx包的更改记录 |
rpm -qi pkg_name | 查看⼀个包的详细信息 |
rpm -qd pkg_name | 查询⼀个包所提供的⽂档 |
rpm -qc pkg_name | 查看已安装rpm包提供的配置⽂件 |
rpm -ql pkg_name | 查看⼀个包安装了哪些⽂件 |
rpm -qf filename | 查看某个⽂件属于哪个包 |
rpm -qR pkg_name | 查询包的依赖关系 |
rpm -ivh xxx.rpm | 安装rpm包 |
rpm -ivh --test xxx.rpm | 测试安装rpm包 |
rpm -ivh --nodeps xxx.rpm | 安装rpm包时忽略依赖关系 |
rpm -e xxx | 卸载程序包 |
rpm -Fvh pkg_name | 升级确定已安装的rpm包 |
rpm -Uvh pkg_name | 升级rpm包(若未安装则会安装) |
rpm -V pkg_name | RPM包详细信息校验 |
YUM包管理命令
常用命令 | 作用 |
---|---|
yum repolist enabled | 显示可⽤的源仓库 |
yum search pkg_name | 搜索软件包 |
yum install pkg_name | 下载并安装软件包 |
yum install --downloadonly pkg_name | 只 下 载 不 安 装 |
yum list | 显示所有程序包 |
yum list installed | 查看当前系统已安装包 |
yum list updates | 查看可以更新的包列表 |
yum check-update | 查看可升级的软件包 |
yum update | 更新所有软件包 |
yum update pkg_name | 升级指定软件包 |
yum deplist pkg_name | 列出软件包依赖关系 |
yum remove pkg_name | 删除软件包 |
yum clean all | 清除缓存 |
yum clean packages | 清除缓存的软件包 |
yum clean headers | 清除缓存的header |
DPKG包管理命令
常用命令 | 作用 |
---|---|
dpkg -c xxx.deb | 列出deb包的内容 |
dpkg -i xxx.deb | 安装/更新deb包 |
dpkg -r pkg_name | 移除deb包 |
dpkg -P pkg_name | 移除deb包(不保留配置) |
dpkg -l | 查看系统中已安装deb包 |
dpkg -l pkg_name | 显示包的⼤致信息 |
dpkg -L pkg_name | 查看deb包安装的⽂件 |
dpkg -s pkg_name | 查看包的详细信息 |
dpkg –unpack xxx.deb | 解开deb包的内容 |
APT软件⼯具
常用命令 | 作用 |
---|---|
apt-cache search pkg_name | 搜索程序包 |
apt-cache show pkg_name | 获取包的概览信息 |
apt-get install pkg_name | 安装/升级软件包 |
apt-get purge pkg_name | 卸载软件(包括配置) |
apt-get remove pkg_name | 卸载软件(不包括配置) |
apt-get update | 更新包索引信息 |
apt-get upgrade | 更新已安装软件包 |
apt-get clean | 清理缓存 |
apt 常用命令
功能 | 命令 |
---|---|
列出所有可更新的软件清单命令 | sudo apt update |
升级软件包 | sudo apt upgrade |
列出可更新的软件包及版本信息 | apt list --upgradeable |
升级软件包,升级前先删除需要更新软件包 | sudo apt full-upgrade |
安装指定的软件命令 | sudo apt install <package_name> |
安装多个软件包 | sudo apt install <package_1> <package_2> <package_3> |
更新指定的软件命令 | sudo apt update <package_name> |
删除软件包命令 | sudo apt remove <package_name> |
更多推荐
所有评论(0)