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

2023-05-16

管道

作用:把一个命令的结果作为另一个命令的输入参数
符号:|
用法: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、⽤⼾指定共享⽬录
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • protobuf详解

    1 protobuf 简介 protobuf protocol buffer 是谷歌内部的混合语言数据标准 通过将结构化的数据进行序列化 串行化 xff0c 用于通讯协议 数据存储等领域和语言无关 平台无关 可扩展的序列化结构数据格式 我们
  • 白泽知识讲堂 | printf漏洞介绍

    引子 Hello各位小伙伴们 xff0c 白泽又和大家见面了 大家还记得自己写的第一个C语言程序吗 xff1f 那是我们和代码爱情的起点 xff0c 一眼万年 没错 xff0c 就是那个耳熟能详的Hello World 1 include
  • Linux生成core文件相关配置,core文件调试示例

    1 生成core文件系统配置 使用ulimit c命令可以查看当前系统对于core文件的配置 xff0c 0表示不生成core文件 xff1b 不为0的数字a表示限制core文件大小不超过a xff0c 单位是k xff1b unlimit
  • Ubuntu 手动配置DNS

    使用ping命令测试百度域名时发现 xff0c 无法解析这个域名 xff0c 说明当前系统上没有配置DNS服务器 配置DNS服务器的方式主要有以下两种 xff1a 目录 1 修改DNS配置文件 etc resolv conf 2 修改网卡配
  • STM32启动文件详解

    启动文件使用的 ARM 汇编指令汇总 启动程序源码注释 点此下载 1 Stack 栈 Stack Size EQU 0x00000400 AREA STACK NOINIT READWRITE ALIGN 61 3 Stack Mem SP
  • Motorola_MSB_LSB

    声明 xff1a 如果涉及侵权 xff0c 请联系本人删除侵权内容 声明 xff1a 本文由本人以以往工作经验为依据 xff0c 总结而得 xff0c 如果错误 xff0c 欢迎指正 xff0c 便于后人参考 xff0c 少走弯路 如果图片
  • 虚拟机怎么安装vmware tools

    这篇文章主要为大家详细介绍了VMware Workstation12安装Ubuntu和VMware Tools教程 具有一定的参考价值 xff0c 感兴趣的小伙伴们可以参考一下 之前我通过百度经验上的过程来安装Ubuntu16 xff0c
  • MySQL数据库改名的三种方法

    MySQL数据库改名的三种方法 前不久去面试 xff0c 被问到Innodb引擎的表如何改数据库名 xff0c 当时我也只回答了MyISAM改如何操作 xff0c 被一些细节问题打败 xff0c 真是操蛋 如果表示MyISAM那么可以直接去
  • C语言详解 FILE文件操作

    1 需要了解的概念 需要理解的知识点包括 xff1a 数据流 缓冲区 文件类型 文件存取方式 1 1 数据流 xff1a 指程序与数据的交互是以流的形式进行的 进行C语言文件的存取时 xff0c 都会先进行 打开文件 操作 xff0c 这个
  • wifi提速技巧:十大方法瞬间提升wifi速度

    手机wifi速度慢真是很让人苦恼 xff0c 有什么有效的wifi提速方法吗 当然有啦 绿茶小编今天就为大家带来了提升wifi速度的十大方法 xff0c 能激活wifi表现 xff0c 提升无线网络哦 xff0c 快来看看吧 十大方法瞬间提
  • 如何消除步进电机的噪音与振动TMC

    步进电机的噪音来自哪里 由于步进电机由于结构简单 控制方便 安全性高 成本低 停止时候力矩大 在低速情况下不需要减速机就可以输出很大的力矩 相比直流无刷和伺服电机 步进电机不需要复杂的控制算法也不需要编码器反馈情况下可以实现位置控制 被用在
  • ROS Navigation Tuning Guide(导航调试指南)

    ROS Navigation Tuning Guide 导航调试指南准备工作距离传感器里程计定位 速度与加速度的设置获得最大速度获得最大加速度设置最小值 xff38 xff39 方向的速度 Global Planner接口参数 Local
  • 网络协议和Netty(9):Http的报文结构及一个完整Http请求的过程

    前言 xff1a 作为一个程序员 xff0c 刚刚接触前端知识的时候 xff0c 就特别好奇 xff0c http是怎么通过一个url将报文从客户端传送到服务端 xff1f 提问 xff1a http的一个请求经历了一个什么样的过程 xff
  • 北斗实验总结(22.11.21)

    做的怎么样了 xff1f 可以在串口助手上实时显示北斗模块的时间 xff0c 并且是北京时间 基本实现所要求的实验现象 遇到的问题 xff08 1 xff09 在没有拿到模块的时候 xff0c 运行代码没有错误 xff0c 就认为能够实现所
  • 解决Ubuntu“无法定位软件包 xxx”的问题

    配置Ubuntu系统时发现有些东西无法安装 xff0c 可能是软件源出了问题 xff0c 需要重新配置 目录 1 安装vim xff08 可跳过 xff09 2 备份软件源配置 3 配置软件源 4 重新获取软件源列表 1 安装vim xff
  • 解决windows 10无法使用ping命令

    在近期使用电脑的时候发现我的电脑突然无法使用 ping 命令了 xff0c 这让我一个网络工程的程序员十分的纳闷 xff0c 然后自己在网上找了资料发现时环境变量的问题 xff0c 现在我就带大家解决一下这个问题 xff1a 出现问题 xf
  • macOS终端设置http与https代理

    查看你的节点的代理端口 下面配置以我的代理为准配置 xff1a 运行命令 vim bashrc xff0c 将以下内容导入 xff1a xff08 如果没有bashrc文件可以自己创建一个出来 xff09 export http proxy
  • 记录一个Charles下载安装之后抓取不到localhost的问题

    下载好Charles下载后跟着指南设置好http等所有的设置 xff0c 发现还是抓去不到本地的host的http请求 虽然设置了Charles代理设置 xff0c 但是依然不会走本地host的 xff0c 要让走本地代理可以用一下方式访问
  • 解决Mysql ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/tmp/mysql.sock‘

    记录一次Mac使用brew安装mysql后 xff0c 无法正常打开问题 在使用brew安装好mysql后 xff0c 发现使用启动命令 xff1a mysql server start 提示 xff1a xff08 两种可能情况 xff0
  • 简单分析DMVPN技术

    定义 xff1a 动态多点VPN 技术组成 xff1a MGRE 43 NHRP 43 IPSEC MGRE 解决隧道的封装技术NHRP 解决多点网络的通信技术IPSEC 解决专线的加密技术 技术特点 xff1a 由客户自行配置维护 xff

随机推荐

  • 小型企业网的搭建(企业网三层架构)

    将邮箱放置在这个链接里面 xff0c 我私信发送配置给你们 邮箱地址填写处 xff0c 点击这里直接跳转 需要配置的同学请手动去github clone xff0c 不了解github的同学建议花时间学习一下 xff0c 受益无穷 xff0
  • Linux各种(常用)编辑器

    了解如何通过命令行快速有效地编辑文件对每个Linux系统管理员都至关重要 文件编辑每天执行 xff0c 无论是配置文件 xff0c 用户文件 xff0c 文本文档还是您需要编辑的任何文件 这就是为什么选择一个喜欢的命令行文本编辑器并掌握它的
  • C语言实现1/1-1/2+1/3-...-1/100求和

    观察题目要求可以看出 xff0c 底数为奇数是前面符号为正 xff0c 偶数是则为负 那么我们可以考虑使用一下方式完成求解 解法一 xff1a span class token macro property span class token
  • 什么是localhost(127.0.0.1)?

    什么是本地主机 xff1f 当你在计算机上 ping IP地址时 xff0c 你尝试联系互联网上的另一台计算机 xff0c 但是当你ping IP地址127 0 0 1时 xff0c 你正在与本地主机通信 localhost 始终是你自己的
  • OpenCV图像处理技术——图像直方图

    OpenCV图像处理技术 图像直方图 Fu Xianjun All Rights Reserved 图像直方图 图像直方图是图像内灰度值的统计特性与图像灰度值之间的函数 xff0c 直方图统计图像内各个灰度级出现的次数 直方图是数值数据分布
  • 【wireshark】Ubuntu 安装 wireshark 以及 wireshark 过滤器的使用

    目录 1 安装wireshark 2 wireshark 过滤器比较符号 3 wireshark 过滤方式 1 根据 IP 地址过滤 2 根据端口号过滤 3 根据报文长度过滤 4 HTTP协议过滤 参考文章链接 xff1a Wireshar
  • C++学习001:对象、可扩展性、编译型语言、相较于C的变化

    1 面向对象 基于对象 基于过程的区别 基于过程 xff1a 从上到下依次执行 xff0c C语言 cpp额外实现了基于对象和面向对象 基于对象 xff1a 类作为结构 类的成员作为对象 基于对象就是通过封装对象方便了程序过程中发生的突发事
  • Arduino基础入门篇23—串口通讯

    在很多时候 xff0c Arduino需要和其他设备相互通讯 xff0c 而最常见最简单的方式就是串口通讯 本篇介绍Arduino硬件串口通讯 xff0c 了解相关函数的使用 1 硬件串口 在PC机上最常见的串行通讯协议是RS 232串行协
  • 基于Qt的车载GPS监控系统(7)数据记录

    基于Qt的车载GPS监控系统 xff08 7 xff09 数据记录 数据日志显示界面 系统数据记录功能实现说明 1 通过一个线程定时记录系统当前的温度数据 2 通过数据日志界面显示保存的日志数据 数据记录线程代码 span class hl
  • 嵌入式系统重定向printf的三种方法

    对printf 进行重定向的三种方法 方法1 使用MircoLib并重定义fputc方法2 停用半主机模式 xff0c 在MDK中使用标准库重定向printf 方法3 在Gcc中使用标准库重定向printf 1 MDK使用MircoLib并
  • Windows API程序入门学习(1)

    导航 Windows API程序入门学习 xff08 1 xff09 学习目的作业要求实现步骤参考书籍实现代码运行结果 Windows API程序入门学习 xff08 1 xff09 学习目的 了解 windows操作系统应用程序开发的基本
  • 嵌入式系统基础学习笔记(四)

    目录 一 GDB调试简例1 1 例11 2 例2 二 OpenCV入门2 1 在Windows下使用OpenCV 3 4 82 1 1 OpenCV的安装与配置2 1 2 一个简单的OpenCV对图片特效显示例子 2 2 在Ubuntu18
  • 计算机网络实验报告(二):Wireshark 实验

    文章目录 一 数据链路层二 网络层三 传输层四 应用层 本部分按照数据链路层 网络层 传输层以及应用层进行分类 xff0c 共有 10 个实验 需要使用协议分析软件 Wireshark 进行 xff0c 请根据简介部分自行下载安装 准备 请
  • 计算机网络实验报告(三):Cisco Packet Tracer 实验

    文章目录 一 CPT 软件使用简介二 直接连接两台 PC 构建 LAN三 用交换机构建 LAN四 交换机接口地址列表五 生成树协议 xff08 Spanning Tree Protocol xff09 六 路由器配置初步说明一说明二说明三说
  • 嵌入式系统应用开发实验(一)

    文章目录 一 设计半加器二 半加器组成全加器三 烧录进硬件 实验目的 xff1a 通过1位全加器的详细设计 xff0c 掌握原理图输入以及Verilog的两种设计方法 软件基于quartusII 13 0版本 xff0c 开发板基于Inte
  • 关于浏览器以及各种内置浏览器造成黑屏的解决办法

    楼主在使用Chrome Edge浏览器甚至Steam时经常会发生网页还没打开就会发生 浏览器黑屏 电脑黑屏 自动重启 的过程 xff0c 困扰许久 网上的大部分教程是在浏览器设置里面关闭 硬件加速 功能 甚至于重装系统 但是经过实测 xff
  • 【FFTW库】编译生成 x86、arm 环境下的FFTW库

    FFTW是一个快速计算离散傅里叶变换的标准C语言程序集 xff0c 可计算一维或多维实和复数据以及任意规模的DFT 下面主要介绍的是 x86 环境下 FFTW库的编译过程 xff0c arm环境下的编译过程和FFTW类似 xff0c 不同之
  • C语言学习笔记w2d4

    文章目录 流程控制二循环语句gotowhile练习 do whilefor breakcontinue 作业 流程控制二 循环语句 循环的开始条件 循环的控制条件 循环的结束条件 goto 无条件跳转 xff0c 跳转到指定位置执行 xff
  • C语言学习笔记w2d5

    文章目录 数组一维数组练习字符数组字符串输入与输出 练习 多维数组 作业 数组 一维数组 用一个变量来存储具有一定关系的数据 xff0c 的数据集合叫数组 其中存储的变量是数组元素 a span class token punctuatio
  • Linux基础与C高级w3d4:linux的文件管理(续)、了解shell编程

    管道 作用 xff1a 把一个命令的结果作为另一个命令的输入参数 符号 xff1a 用法 xff1a ls grep test 用户管理 切换用户 xff1a su 用户名 修改用户密码 xff1a sudo passwd 用户 注册用户