5.linux系统管理常用命令

文章目录

  • 基础命令
  • 文件命令
  • chxxx 命令
  • CentOS 6 服务
    • service 命令
    • chkconfig 命令
    • 防火墙
  • CentOS 7 服务
    • systemctl 命令
    • 防火墙
  • Shell 脚本开发
    • 介绍
    • shell编程
    • 系统预定义变量
    • set
    • 特殊变量
    • 运算符
    • 条件判断
    • 流程控制
      • if
      • if ... else
      • if ... elif ... else
      • for
      • for ... in
      • while
    • 函数
    • 获取脚本外部数据
  • 服务器端应用程序安装
    • rpm
    • yum

基础命令

按键 作用
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-x 7 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_NAME unset 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

条件判断

类型 写法 单词 含义
数值 -lt less than 小于
数值 -le less equal 小于等于
数值 -eq equal 等于
数值 -gt greater than 大于
数值 -ge greater equal 大于等于
数值 -ne not equal 不等于
文件 -r read 判断当前用户是否可以读取该文件
文件 -w write 判断当前用户是否可以修改该文件
文件 -x execute 判断当前用户对该文件是否有执行权限
文件 -f file 判断当前文件是否存在并且是一个常规的文件
文件 -e existence 判断文件是否存在
文件 -d directory 判断是否存在并且是一个目录
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

你可能感兴趣的:(linux,服务器,运维)