管道
作用:把一个命令的结果作为另一个命令的输入参数
符号:|
用法:ls | grep test
用户管理
切换用户:su 用户名
修改用户密码:[sudo] passwd 用户
注册用户:[sudo] adduser 用户
添加管理员权限:修改配置文件 /etc/sudoers,注意:该文件需要赋予写入权限[sudo] chmod u+w /etc/sudoers
,如同root用户一样将新用户添加。
删除用户:[sodo] userdel -r 用户
,注意:配置权限文件
查看用户组:groups
创建用户组
压缩与解压
归档:把多个文件和目录存放在一个目录下
压缩:把归档文件保存为一个文件
压缩软件 | 解压 | 格式 |
---|
gzip | gunzip | .gz |
bzip2 | bunzip2 | .bz2 |
zip | unzip | .zip |
归档 | 用法 | 参数 |
---|
tar | tar [选项] [归档文件.tar] [源文件1 源文件2...] | -t :显示归档文件中内容
-x :释放归档文件
-c :创建归档文件
-v :显示过程
-f :用户指定归档文件名
-z :还进行压缩(或解压),用gzip
-j :还进行压缩(或解压),用bzip2 |
压缩 | 用法 | 参数 |
---|
gzip | gzip [选项] [归档文件.gz] [源文件1 源文件2...] | -l :只查看压缩信息
-d :解压==gunzip [归档文件.gz]
-(0~9) :指定压缩比例(0~9等级) |
bzip2 | 基本相同 | |
软件包管理
在 red hat 中:yum;
软件后缀:.rpm
在 Ubuntu(debian) 中:apt、dpkg
软件后缀:.deb
dpkg的使用 | 用法 | 选项 |
---|
离线管理 | dpkg [选项] 软件 | -i :安装一个本地软件包的软件
-r :卸载已经安装的软件
-P :卸载软件和其配置、环境
-L :显示软件包内清单
-s :查询软件的安装好后的信息 |
太常用了,不详细介绍
apt-get remove
apt-get --reinstall install
apt-get check
网络配置
常用服务
ifconfig还可以修改网络配置,例如改ip地址
使用SSH、FTP等参考
ssh:远程登录服务器
1、安装:
apt install openssh-server安装ssh服务端(可以提供其他主机进⾏登录访问)
apt install openssh-client安装ssh客⼾端(⽤于访问其他主机) 安装服务端同时会安装客⼾端
sshd服务需要运⾏起来,才能进⾏登录
2、查看服务是否运⾏
sudo ps -e | grep sshd
3、客⼾端连接⽅式 登录:ssh -p 端口(22) 远程主机⽤⼾名@远程主机ip地址
退出:exit
4、修改服务端配置
sudo vim /etc/ssh/sshd_config
port 22:端口 重启服务:
sudo service ssh [start、restart、stop]
nfs服务器:
⽹络⽂件系统 把⽹络中的⽂件(⽬录)挂载到本机,在本机上运⾏
1、nfs-kernel-server:服务端(提供⽂件,在其他电脑进⾏挂载)
2、在服务器端设置共享的⽂件夹 创建共享⽬录(提供进⾏挂载,共享),
设置为最⾼权限(0777)
sudo chmod 0777 ⽬录
3、设置(修改)nfs服务端的配置⽂件
/etc/exports
/home/ubuntu/nfs *(rw,sync,no_subtree_check)
/home/ubuntu/nfs:共享的⽬录路径 *:表⽰所有客⼾端地址都可以挂载
rw:可以进⾏读写
sync:同步
no_subtree_check:不检查⽗⽬录权限
no_root_squash:客⼾端如果是root登录进⾏挂载,不映射root权限
4、服务端启动 ⾸先设置服务端监听
sudo service rpcbind start
启动nfs服务
sudo service nfs-kernel-server start
5、检测服务启动
showmount -e如果出现对应的nfs共享⽬录 客⼾端进⾏挂载: 安装apt install nfs-common
挂载:
sudo mount -t nfs 服务器地址:nfs⽬录路径 /mnt本机位置(挂载) 解除挂载
sudo umount /mnt
tftp⽂件服务器:
提供⽂件的上传下载
1、服务器端安装:sudo apt install tftpd-hpa
服务器端:提供给其他主机进⾏上传下载
2、服务器配置
/etc/default/tftpd-hpa
创建⼀个tftp进⾏上传下载的存放⽬录
mkdir + 路径,权限设置为最⾼权限(0777)
TFTP_USERNAME=“tftp”:服务器端的名称
TFTP_DIRECTORY="/home/ubuntu/tftp":tftp服务器上传下载的⽬录路径
TFTP_ADDRESS=“0.0.0.0:69”:服务端的地址
TFTP_OPTIONS="-l -c -s":选项 启动tftp服务
sudo service tftpd-hpa restart
客⼾端连接,上传下载 安装 tftp-hpa
连接:
tftp + 服务器ip地址 上传:put ⽂件名
下载:get ⽂件名 退出:q
Shell编程
将shell命令按照⼀定的逻辑组织在⼀起写⼊到⼀个⽂件中,由shell程序进⾏解析执⾏
shell编程(脚本):shell命令的集合
shell编程的步骤:
- 创建shell⽂件(.sh) 写上shell命令 在⽂件中,需要指定shell命令⽤哪种解释器去执⾏ 指明shell命令要使⽤的解释程序:
#! /bin/bash - 设置可执⾏权限/指定使⽤shell解释器去解析⽂件
chmod / bash - 执⾏shell⽂件 注释:# 变量:不⽀持整数、小数、字符,任何数据都解析成字符串 定义变量:变量名 = 值 引⽤变量值:$变量名 引号的* * 作⽤:
“”:会解析引号中的变量
‘’:不会解析引号中的变量
` `:引⽤命令的执⾏结果,而不是⼀个普通字符串 位置变量(程序默认存在):
$0:执⾏的程序(shell脚本)⽂件名
$1:从执⾏的命令⾏中 获取第⼀个参数
$2-------$9
$#:获取到命令⾏参数的个数
$?:表⽰上⼀条命令的退出状态
∗
、
*、
∗、@:所有的命令⾏参数 流程语句:
if [ 条件表达式 ] if [ 条件表达式 ] if [ 条件表达式1 ]
then then then
成⽴执⾏ 成⽴执⾏ 成⽴1执⾏
fi else elif [ 条件2 ]
不成⽴执⾏ then
fi 成⽴2执⾏
…
else
都不成⽴执⾏
fi
字符串⽐较:
\ > \ < == !=
test进⾏测试: 字符串、整数、⽂件属性
test ⽐较、⽂件属性
test “hello” != “world”
test可以⽤[]来代替 整数条件运算:
-eq:等于
-gt:⼤于
-lt:小于
-ne:不等于
-ge:⼤于等于
-le:小于等于 ⽂件判断:
-d ⽂件:是否为⽬录
-e ⽂件:判断⽂件是否存在
-f ⽂件:是否为普通⽂件
-s ⽂件:是否为套接字⽂件
-L ⽂件:是否为符号链接⽂件
-r ⽂件:是否可读
-w
-x
⽂件1 -nt ⽂件2:⽂件1是否⽐⽂件2新 ⽂件1 -ot ⽂件2:⽂件1是否⽐⽂件2旧 逻辑运算符:
-a:and与
-o:or或 !:not⾮
let “a = $a + 1”:计算a = a+1
算数命令:expr 1 + 2 \ * 3 % 2 / 3
循环:
while [ 条件表达式 ]
do
循环内容
done
break n:跳出多少层循环
continue:跳到最近⼀层循环的下⼀轮循环
for 变量名 in 单词表 for((循环的初始值;循环条件;循环体结束语句))
do do
循环
done done
练习:实现统计⽬录下普通⽂件的个数 函数在shell中把多条shell命令组合成⼀个完整的功能,进⾏统⼀的调⽤,执⾏对应的shell命令集合
function 函数名()
{ 函数体 }在括号中没有参数列表 函数的传参是在函数中使⽤ $1----$9来获取参数 调⽤:函数名 参数1 参数2…
函数的返回值: 函数中调⽤echo输出,⽤变量存储函数结果
练习:实现nfs启动 1、如果没有安装nfs就安装,提⽰⽤⼾进⾏配置 2、查询服务是否启动,如果没有启动启动服务 3、⽤⼾指定共享⽬录
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)