Linux基础与C高级w3d4:linux的文件管理(续)、了解shell编程

管道

作用:把一个命令的结果作为另一个命令的输入参数
符号:|
用法:ls | grep test

用户管理

切换用户:su 用户名
修改用户密码:[sudo] passwd 用户
注册用户:[sudo] adduser 用户
添加管理员权限:修改配置文件 /etc/sudoers,注意:该文件需要赋予写入权限[sudo] chmod u+w /etc/sudoers,如同root用户一样将新用户添加。

删除用户:[sodo] userdel -r 用户,注意:配置权限文件
查看用户组:groups
创建用户组

压缩与解压

归档:把多个文件和目录存放在一个目录下
压缩:把归档文件保存为一个文件

压缩软件解压格式
gzipgunzip.gz
bzip2bunzip2.bz2
zipunzip.zip
归档用法参数
tartar [选项] [归档文件.tar] [源文件1 源文件2...]-t:显示归档文件中内容
-x:释放归档文件
-c:创建归档文件
-v:显示过程
-f:用户指定归档文件名
-z:还进行压缩(或解压),用gzip
-j:还进行压缩(或解压),用bzip2
压缩用法参数
gzipgzip [选项] [归档文件.gz] [源文件1 源文件2...]-l:只查看压缩信息
-d:解压==gunzip [归档文件.gz]
-(0~9):指定压缩比例(0~9等级)
bzip2基本相同

软件包管理

在 red hat 中:yum;
软件后缀:.rpm
在 Ubuntu(debian) 中:apt、dpkg
软件后缀:.deb

  • 离线管理:dpkg
dpkg的使用用法选项
离线管理dpkg [选项] 软件-i:安装一个本地软件包的软件
-r:卸载已经安装的软件
-P:卸载软件和其配置、环境
-L:显示软件包内清单
-s:查询软件的安装好后的信息
  • 在线管理:apt

太常用了,不详细介绍
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编程的步骤:

  1. 创建shell⽂件(.sh) 写上shell命令 在⽂件中,需要指定shell命令⽤哪种解释器去执⾏ 指明shell命令要使⽤的解释程序:
    #! /bin/bash
  2. 设置可执⾏权限/指定使⽤shell解释器去解析⽂件
    chmod / bash
  3. 执⾏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、⽤⼾指定共享⽬录
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值