5.linux系统管理常用命令

基础命令

按键作用
id root返回用户信息
groupadd develop创建用户组
useradd -g develop xiaoming给develop组织创建小明用户
passwd xiaoming给小明用户设置密码
userdel -r xiaoming删除小明用户

文件命令

在Unix和Linux系统中,文件或目录的权限用三个基本权限表示:读(read)、写(write)和执行(execute)。每个权限被赋予一个二进制位,其中:
1. 读(r)权限对应于二进制中的第2位,其值为100(二进制),转换成十进制就是4。
2.写(w)权限对应于二进制中的第1位,其值为010(二进制),转换成十进制就是2。
3. 执行(x)权限对应于二进制中的第0位,其值为001(二进制),转换成十进制就是1。
按键作用
r读 例如:cat less tail ll 等命令
w写 向文件中写入新内容等
x执行 将文件作为可执行文件来运行
无权限
rwx r-x r-x7 5 5
rw- r-- r–6 4 4

chxxx 命令

按键作用
chmod修改权限信息
chown修改文件或目录的所属主
chgrp修改文件或目录的所属组
按键作用
chmod 755 example.txt权限设置为所有者(User)有读、写、执行权限,组(Group)和其他用户(Other)只有读和执行权限
chmod u=rwx,g=rx,o=rx example.txt权限设置为所有者(User)有读、写、执行权限,组(Group)和其他用户(Other)只有读和执行权限
chmod -R 755 directory/当前目录及其中的所有文件和子目录的权限都设置为所有者可读写执行
chown user2 example.txt当前所有者是user1,我们想要将其更改为user2
chown user3:group2 example.txt将example.txt的所有者更改为user3,并且所属组更改为group2
chown -R user4:group3 mydir/将整个目录mydir/及其包含的所有文件和子目录的所有者更改为user4,组更改为group3
chgrp developers example.txt将其所有者组从当前组更改为developers组
chgrp developers example.txt其所有者组从当前组更改为developers组
chgrp -R teamA project_directory/整个目录project_directory/及其包含的所有文件和子目录的组更改为teamA

CentOS 6 服务

service 命令

按键作用
service 服务名 start启动服务
service 服务名 stop停止服务
service 服务名 restart重启服务
service 服务名 reload重新加载服务
service 服务名 status查看服务状态

chkconfig 命令

按键作用
chkconfig --list启动服务
chkconfig 服务名 on设置具体服务开机自动启动
chkconfig 服务名 off取消具体服务开启自动启动
service 服务名 reload重新加载服务
service 服务名 status查看服务状态

防火墙

按键作用
service iptables stop停止防火墙
service iptables start开启防火墙
chkconfig iptables off取消防火墙开机自动启动

CentOS 7 服务

systemctl 命令

按键作用
systemctl start 服务名启动服务
systemctl restart 服务名重启服务
systemctl stop 服务名停止服务
systemctl reload 服务名重新加载服务
systemctl status 服务名查看服务状态
systemctl list-unit-files查看服务列表
systemctl enable 服务名设置具体服务开机自动启动
systemctl disable 服务名取消具体服务开启自动启动

防火墙

按键作用
systemctl stop firewalld停止防火墙
systemctl disable firewalld取消防火墙开机自动启动

Shell 脚本开发

介绍

#Shell 是一个命令行解释器,它接收应用程序或用户的命令,然后调用操作系统内核
#Shell 还是一个功能强大的编程语言,易编写、易调试、灵活性强
[root@hadoop01 ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

bash 和 sh 的关系

[root@hadoop01 ~]# ll /usr/bin | grep bash$
\-rwxr-xr-x. 1 root root     964536 41 2020 bash
lrwxrwxrwx. 1 root root          4 1215 21:17 sh -> bash

shell编程

1.创建脚本文件:通常以 .sh 作为扩展名
2.第一行指定当前脚本的解析器
3.实现具体功能
4.Shell 脚本的运行方式(当前进程:source . 子进程:sh bash chmod+x)其中 . 是 source 的另一种写法,在当前进程中发布的全局变量可以在当前进程的其他脚本中继续沿用,也可以在子进程中使用;但是,子进程 export 发布的变量仅限于子进程内部使用

vim demo.sh
#编辑
#!/bin/bash
echo "hello world"
#运行
sh demo.sh

系统预定义变量

常用的系统变量包括:$USER 、$HOME 、$PWD 、$SHELL 等,可以使用 echo 命令输出它们的值

echo $USER
echo $HOME
echo $PWD
echo $SHELL

set

按键作用
set | less查看所有变量
USER_NAME=tom定义变量
unset USER_NAMEunset USER_NAME
readonly SCHOOL=daxue声明静态变量(不能修改,不能撤销)
自定义变量的语法规则
● 变量名称可以由字母、数字和下划线组成,但是不能以数字开头,环境变量名建议大写。
● 等号两侧不能有空格,衍生规则就是变量声明时必须初始化。
● 在 bash 中,变量默认类型都是字符串类型,无法直接进行数值运算。
● 变量的值如果有空格,需要使用双引号或单引号括起来。
● 变量名区分大小写。
USER_NAME=tom
echo $USER_NAME
unset USER_NAME
echo $USER_NAME

readonly SCHOOL=666
echo $SCHOOL

特殊变量

特殊变量 $n n 是数字,$0 表示当前脚本的名称,从 $1 开始代表对应的脚本参数,从 ${10} 开始数字需要使用 {} 括起来。

vim parameter.sh
#编辑脚本内容
#!/bin/bash
echo "$0 $1 $2"
chmod 777 parameter.sh
#运行
./parameter.sh aa bb
#输出 ./parameter.sh aa bb

特殊变量 $# 返回输入参数的个数

vim parameter.sh
#编辑脚本内容
#!/bin/bash
echo "$0 $1 $2"
echo "$#"
chmod 777 parameter.sh
#运行
./parameter.sh aa bb
#输出 ./parameter.sh aa bb 2

特殊变量 $* 和 $@ 都能够返回全部参数,但是只有在循环中且放在引号中能够体现出它们的区别。

vim parameter.sh
#编辑脚本内容
#!/bin/bash
echo "$0 $1 $2"
echo "$#"
echo "$*"
echo $@
chmod 777 parameter.sh
#运行
./parameter.sh aa bb
#输出 ./parameter.sh aa bb 2

特殊变量 $?

● 返回上一条命令的返回结果。
● 条件判断语句: 
  ○ 返回 0 表示 true
  ○ 返回 1 表示 false
● 普通语句: 
  ○ 返回 0 表示成功
  ○ 返回非 0 数表示失败

运算符

$((表达式)) 或 $[表达式]

[root@hadoop01 ~]# echo $((1+2))
3
[root@hadoop01 ~]# echo $[1+2]
3

条件判断

类型写法单词含义
数值-ltless than小于
数值-leless equal小于等于
数值-eqequal等于
数值-gtgreater than大于
数值-gegreater equal大于等于
数值-nenot equal不等于
文件-rread判断当前用户是否可以读取该文件
文件-wwrite判断当前用户是否可以修改该文件
文件-xexecute判断当前用户对该文件是否有执行权限
文件-ffile判断当前文件是否存在并且是一个常规的文件
文件-eexistence判断文件是否存在
文件-ddirectory判断是否存在并且是一个目录
vim demo.sh
#!/bin/bash

# 条件判断表达式写法一:test
test 10 -gt 7

# 使用$?获取上一条语句的执行结果
echo $?

# 使用$?获取上一条语句的执行结果
test 10 -lt 7
echo $?

# 条件判断表达式写法二:[ condition ]
# 注意:condition两边要有空格
[ 10 -gt 7 ]
echo $?

[ 10 -lt 7 ]
echo $?

# 专门针对文件进行操作的运算符
[ -e aaa.txt ]
echo $?

[ -r aaa.txt ]
echo $?

[ -w aaa.txt ]
echo $?
#输出 0 1 0 1 1 1 1

流程控制

if

#!/bin/bash
if [ 10 -gt 5 ]
then
echo "10 大于 5"
fi

if … else

#!/bin/bash
if [ 10 -gt 5 ]
then
echo "10 大于 5"
else 
echo "10 小于 5"
fi

if … elif … else

#!/bin/bash
if [ 10 -eq 5 ]
then
echo "10 等于 5"
elif [ 10 -gt 5 ]
then
echo "10 大于 5"
else 
echo "10 小于 5"
fi

for

#!/bin/bash
# 如果要使用外部数据,则需要将外部数据赋值给一个变量,不能在for语句中直接使用
len=$1
for (( i=1;i<=len;i++ ))
# 从do关键字开始是循环体开始
do
echo $1
# 到done关键字为止是循环体结束
done

for … in

#!/bin/bash
for i in "$*"
do
echo $i
done

while

#!/bin/bash
s=0
i=1
while [ $i -le 100 ]
do
	s=$[$s+$i]
	i=$[$i+1]
done

echo $s

函数

Shell 编程中的函数和我们以前熟悉的函数最大的区别是:Shell 编程中的要求函数的返回值只能是整数,且只能通过 $? 的方式获取。可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值,return 后跟数值 n(0 - 255)

#!/bin/bash
function sum() {
    # 使用$1、$2引用函数传入的参数
    echo $[$1+$2]
}
# 调用函数,传入参数
sum 10 20
# 使用$?获取函数执行结果
echo "sum 10 20执行的结果是$?"

获取脚本外部数据

● ① 获取参数:通过 $1 和 $2 等方式获取,从 ${10} 开始需要使用大括号。
● ② 使用 read 读取用户输入,read 命令有两个常用参数:
○ 参数 -t 用于指定输入等待时间,单位是秒。
○ 参数 -p 用于指定提示文字。

#!/bin/bash
read -t 10 -p "please enter:" NAME
echo $NAME

服务器端应用程序安装


rpm

rpm 是 Redhat Package Management 的缩写,实际上,通过 rpm 可以管理 Linux 环境下的安装包,类似于 Windows 里面的 setup.exe 。

按键作用
-qa查询系统中已经安装的程序,通常配合管道,使用 grep 精确匹配想要查询的包
-ivh执行 rpm 包安装操作
-e卸载 rpm 包
–nodeps在卸载过程中忽略依赖关系
#rpm 查询命令:
rpm -qa | grep xxx
#rpm 卸载命令:
rpm -e xxx --nodeps
#rpm 安装命令:
rpm -ivh xxx

yum

● yum(全称为 Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及 CentOS 中的 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
● yum 类似于 Java 中的 Maven工具。
● yum 的语法: yum [选项] [参数]
● yum 的选项: -y 对所有提问都回答“yes”

按键作用
install安装rpm软件包
update更新rpm软件包
check-update检查是否有可用的更新rpm软件包
remove删除指定的rpm软件包
list显示软件包信息
clean清理yum过期的缓存
deplist显示yum软件包的所有依赖关系

yum 镜像源修改

# 备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/
# CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 清理缓存
yum clean all
# 生成缓存
yum makecache

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值