Linux16--文件管理之:上传下载、输出与重定向、字符处理、日期时间

1 上传下载

### 上传
  lrzsz软件进行上传下载  rz     
  
  rz  # 运行该命令会弹出一个文件选择窗口,从本地选择文件上传到服务器
      # 如果文件已经存,则上传失败,可以用-E选项解决
      
  rz -E  # 如果目标文件名已经存在,则重命名传入文件。新文件名将添加一个点和一个数字(0..999)



### 下载

# 1 wget  是用来下载文件的    
  wget -O 本地路径 远程包链接地址   # 将远程包下载到本地
    -O :指定下载文件的路径 

  # ps:如果wget下载提示无法建立SSL连接,则加上选项--no-check-certificate  不验证证书
  wget --no-check-certificate -O 本地路径 远程包链接地址

  # wget 需要安装:
    yum install wget 
    rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm 



# 2 curl  是用来访问链接的  # 访问下载链接,其实也就是下载文件
  curl -o 本地路径 访问链接地址
    -o : 指定保存文件的路径 

  # ps: 如果遇到下载提示无法建立SSL链接,使用-k选项或者--insecure
  curl -k -o 123.png https://www.xxx.com/img/hello.png



# 3 lrzsz软件进行上传下载   sz  
  # 注:
    1.系统默认没有该命令,需要下载: yum install lrzsz -y
    2.通过图形化的形式进行上传与下载   前提:必须于有xshell
  
    rz :上传  
    sz : 下载 
    
  # 缺点:
    lrzsz 一次只能进行单个文件的传输
    进行大文件传输时,容易掉线
    空文件也传输不了

  # eg:将服务器上选定的文件下载/发送到本机
  sz bak.tar.gz

2 输出与重定向

### 输入输出
  输出即把相关对象通过输出设备(显示器等)显示出来
  输出又分正确输出和错误输出 
  一般情况下标准输出设备为显示器,标准输入设备为键盘
  
  设备    设备文件名    文件描述符   类型
  键盘    /dev/stdin     0      标准输入
  显示器  /dev/stdout    1      标准正确输出
  显示器  /dev/stderr    2      标准错误输出

## 输入
read  选项 参数  变量    # 将屏幕输入的字符 赋值给变量

  -p   # 后面跟提示信息  即在输入前打印提示信息

  -n   # 后跟一个数字   即定义输入文本的长度

  -s   # 安静模式      即在输入字符时不再屏幕上显示,eg: login时输入密码

  -t   # 后面跟秒数    即定义输入字符的等待时间

  # eg: read -n 2 -p "请随便输入两个字符: " any


## 输出
echo  选项  字符串

  -n   # 表示不换行输出

  -e   # 表示输出转义字符
  



### 重定向

# 1 输出重定向   > 代表覆盖  >> 代表追加
  正常输出是把内容输出到显示器上
  而输出重定向是把内容输出到文件中  
  
# 1.1 标准输出重定向     描述符 1 可以省略
  命令  >文件      # 覆盖写入 
  命令  >>文件      # 追加写入
  
# 1.2 标准错误输出重定向  描述符 2 不可以省略
  命令  2>文件
  命令  2>>文件
  
  # 注:错误输出重定向  描述符2 与 >、>>之间 不要加空格
  
# 1.3 标准输出与错误输出 同时重定向

  # 都保存到同一个文件
    命令 &>文件       # 覆盖 常用 ***
    命令 >文件 2>&1  

    命令 &>>文件      # 追加  常用 ***
    命令 >>文件 2>&1

  # 分别保存到不同文件
    命令 >文件1  2>文件2     # 覆盖
    命令 >>文件1 2>>文件2    # 追加
    
  # eg: 只执行命令,不显示执行结果
    ls &>/dev/null  # 正确输出或错误输出结果都不要 (null可以理解为黑洞或垃圾站)

# tee 命令  
date | tee date.txt  # 命令执行会输出至屏幕,同时也会保存一份至date.txt文件中
    
    
    
# 2 输入重定向   
   < 文件   # 从文件输入获取
   
   << EOF  # 从屏幕输入获取  EOF可以换其他任意字符,但是不见名知意
     > 111
     > 222
     > EOF 

# eg:  
1.从/etc/passwd  过滤出 root
grep 'root' < /etc/passwd
    root:x:0:0:root:/root:/bin/bash

2.从/etc/passwd  写入到 a.txt
cat >a.txt < /etc/passwd


3.dd命令  读取、转换并输出数据
dd if=/dev/zero of=/file1.txt bs=1M count=20
    if    : infile缩写  表示指定源文件
    of    : outfile缩写 表示指定目的文件
    bs    : 同时设置读入/输出的块大小 为bytes个字节
    count : 仅拷贝块大小的次数

dd </dev/zero >/file2.txt bs=1M count=20


4. mysql如何恢复备份  # 了解即可,不用关注
mysql -uroot -p123 < bbs.sql

3 字符处理

sort 排序

用于将文件内容加以排序

# 格式
sort [选项] 文件  # 默认是以每行的字符串字母比较 升序


# 选项
  -n # 依照数值的大小排序  默认升序
  -r # 以相反的顺序来排序
  -k # 以某列进行排序
  -t # 指定分割符,默认是以空格为分隔符
  
  
# eg:
准备文件,写入一段无序的内容
cat >> file.txt <<EOF
b:3
c:2
a:4
e:5
d:1
f:11
EOF

# 以数字列 升序排列
sort -t ":" -n -k 2 file.txt
    d:1
    c:2
    b:3
    a:4
    e:5
    f:11

uniq 去重

用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用

# 格式
uniq [选项] 文件

| uniq [选项]   # 支持管道


# 选项
  -c # 在每列旁边显示该行重复出现的次数
  -d # 仅显示重复出现的行列
  -u # 仅显示出一次的行列
  
  
# eg:
cat >> file.txt <<EOF
hello
123
hello
123
func
EOF

sort file.txt | uniq
    123
    func
    hello

sort file.txt | uniq -c
    2 123
    1 func
    2 hello

sort file.txt | uniq -d
    123
    hello

cut 修剪

用来显示行中的指定部分,删除文件中指定字段

# 格式
cut [选项] 文件

| cut [选项]   # 支持管道


# 选项
  -d # 指定字段的分隔符,默认的字段分隔符为"TAB"
  -f # 显示指定字段的内容
  
# eg:
head -1 /etc/passwd 
    root:x:0:0:root:/root:/bin/bash
    
head -1 /etc/passwd | cut -d : -f 1-3   # 1到3段
    root:x:0
    
head -1 /etc/passwd | cut -d : -f 1,3,4,6
    root:0:0:/root

tr 替换/删除

用于替换或删除字符

# 格式
tr [选项] 原字符 [新字符]

| tr [选项]  原字符 [新字符]  # 支持管道


# 选项
  -d  # 删除字符
  
  
# eg:
head -1 /etc/passwd 
    root:x:0:0:root:/root:/bin/bash
    
head -1 /etc/passwd | tr "root" "ROOT"
    ROOT:x:0:0:ROOT:/ROOT:/bin/bash
    
head -1 /etc/passwd | tr -d "root"
    :x:0:0::/:/bin/bash

wc 统计

用于统计,计算数字


# 格式
wc  [选项] 文件

| wc  [选项]   # 支持管道


# 选项
  -c # 统计文件的Bytes数
  -l # 统计文件的行数
  -w # 统计文件中单词的个数,默认以空白字符做为分隔符
  
# eg:
# 统计文件的大小(bytes数)
cat file.txt 
    hello
    123
    hello
    123
    func

ll file.txt 
    -rw-r--r--. 1 root root 25 8月  12 20:09 file.txt
    
wc -c file.txt 
    25 file.txt
    
wc -l file.txt 
    5 file.txt
    
wc -w file.txt 
    5 file.txt

4 日期时间

# 1 格式
  date  [选项]  [格式化参数]
  
  
# 2 选项
  -d  # 根据你的描述显示日期

  -s  # 修改日期


# 3 格式化参数
  %T  # 显示时间,24小时制  hh:mm:ss
  %F  # 显示日期           %Y-%m-%d 
  
  %Y  # 年  实际
  %y  # 年的最后两个数字  1999则是99
  %m  # 月 01~12
  %d  # 日 01~31
  
  %H  # 小时,24小时制 00~23
  %M  # 分钟  00~59
  %S  # 秒   00~59


  %j  # 一年的第几天(001~366)
  %w  # 一个星期的第几天(0代表星期天)
  %W  # 一年的第几个星期(00~53,星期一为第一天)
  %s  # 从1970年1月1日00:00:00到目前经历的秒数


# 4 案例  常用
  1.显示当前日期和时间    
    date "+%F %T"
      2023-06-29 00:06:29
      
    date "+%Y_%m_%d_%H_%M_%S"
      2023_06_29_00_06_29
      
  2.根据描述显示日期
    date -d "1 month" +%F   # 加1月
    date -d "+1 month" +%F     
      2023-07-29
      
    date -d "3 years" +%F   # 加3年
    
    date -d "-3 hours" "+%F %T"  # 减3小时
      2023-06-28 21:12:50

  3.修改时间
    date -s "20201111 11:11:11"
posted @   Edmond辉仔  阅读(40)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2022-06-26 20--面向对象02:封装、隐藏属性、property装饰器
点击右上角即可分享
微信分享提示