【Linux系统】基本指令(上) {用户相关操作、查看和切换文件目录、创建删除文件或路径、构建Linux回收机制、查看文件}


2.6 输入输出

echo指令 && printf指令

echo指令——与C语言中的puts类似

  • 语法: echo [OPTION]… [STRING]…
  • 功能: 将一行文本输出到指定流(默认stdout),文本末尾自动换行。
  • 举例:

printf指令——与C语言中的printf类似

  • 语法: printf FORMAT [ARGUMENT]
  • 功能: 格式化输出到指定流(默认stdout)
  • 用法: 与C语言中的printf类似,C语言中的格式控制符和转义字符在此命令中通用。
  • 举例:

重定向——改变数据的流向

所谓重定向,就是改变数据的来源(输入)或流向(输出)。

  • 重定向符:

    • 输出重定向符:>
    • 追加重定向符:>>
    • 输入重定向符:<
  • 输出重定向: 本应输出到显示器的内容,重定向写入到目标文件中。若目标文件不存在,会自动创建。若存在会清空原始内容,重新写入。

    • 举例:echo -n hello > log.txt
  • 追加重定向: 本应输出到显示器的内容,重定向写入到目标文件中。若目标文件不存在,会自动创建。若存在会将内容追加到原始内容之后。

    • 举例:echo linux! >> log.txt
  • 输入重定向: 本应由键盘输入的内容,重定向到由指定文件输入。若指定文件不存在,则错误。

    • 举例:cat < log.txt (注意cat指令默认从stdin获取输入)

管道——进行流水线数据处理

  • 管道允许用户将经过处理的文件内容传给下一条指令继续处理。
  • 管道符:|
  • 举例: 我们知道head用来输出文件的前N行而tail输出文件的后N行,那么中间的内容如何输出呢?

    这里就用到了管道:

    • head指令先将test1中的前15行截取出来
    • 再将处理过的内容交给tail,将前15行的后5行截取并输出到stdout
    • 这样我们就看到了最终结果
    • 由此我们可以看出使用管道的时候,隐式的发生了重定向。

2.7 时间相关的指令

date指令——显示日期

date 指定格式显示时间: date +%Y:%m:%d
date 用法: date [OPTION]… [+FORMAT]

1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下

  • %H : 小时(00…23)
  • %M : 分钟(00…59)
  • %S : 秒(00…61)
  • %X : 相当于 %H:%M:%S
  • %d : 日 (01…31)
  • %m : 月份 (01…12)
  • %Y : 完整年份 (0000…9999)
  • %F : 相当于 %Y-%m-%d

2.在设定时间方面

  • date -s //设置当前时间,只有root权限才能设置,其他只能查看。
  • date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
  • date -s 01:01:01 //设置具体时间,不会对日期做更改
  • date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
  • date -s “01:01:01 20080523″ //这样可以设置全部时间
  • date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
  • date -s “20080523 01:01:01″ //这样可以设置全部时间

3.时间戳

  • 时间->时间戳:date +%s
  • 时间戳->时间:date -d@1508749502
  • Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。

Cal指令——显示日历

cal命令可以用来显示公历(阳历)日历。公历是现在国际通用的历法,又称格列历,通称阳历。“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”。

  • 命令格式: cal [参数][月份][年份]
  • 功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份
  • 常用选项:
  • -3 显示系统前一个月,当前月,下一个月的月历
  • -j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)
  • -y 显示当前年份的日历

举例: 显示2018年全年日历

Cal –y 2018

2.8 打包和压缩

zip/unzip指令——压缩/解压

zip

  • 语法: zip [-options] file[.zip] [dir/file]
  • 功能: 将目录或文件压缩成zip格式
  • 常用选项:
  • zip -r 递归处理,将指定目录下的所有文件和子目录一并处理
  • 举例:

    • 将test2目录压缩:
zip -r test2.zip test2

unzip

  • 语法: unzip file[.zip] [-d exdir]
  • 功能: 将.zip格式的压缩包解压
  • 常用选项:
  • [-d exdir] 指明解压路径,若不加选项指明,默认解压到当前路径。
  • 举例:

    • 将test2解压到tmp目录:
unzip test2.zip -d /tmp

tar指令——打包/解包

  • 语法: tar [option] [newfile] [target]
  • 常用选项:
  • -c :建立一个压缩文件的参数指令(打包选项);
  • -x :解开一个压缩文件的参数指令!
  • -t :查看 tarfile 里面的文件!
  • -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?
  • -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?
  • -v :压缩的过程中显示文件;常看文件时显示详细信息;
  • -f :使用档名(指定路径),请留意,在 f 之后要立即接档名喔!不要再加参数!
  • -C : 解压到指定目录
  • 举例:
  • 范例一: 将整个 /etc 目录下的文件全部打包成为 /tmp/etc.tar
[root@linux ~]# tar -cvf /tmp/etc.tar /etc<==仅打包,不压缩!
[root@linux ~]# tar -czvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
[root@linux ~]# tar -cjvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
  1. 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
  2. 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
  3. 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~

上述指令在执行的时候,会显示一个警告讯息:
tar: Removing leading /" from member names`』那是关於绝对路径的特殊设定。


  • 范例二: 查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?
[root@linux ~]# tar -ztvf /tmp/etc.tar.gz

由於我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,就得要加上 z 这个参数了!这很重要的!加上v选项可以显示包内文件的详细信息。


  • 范例三: 将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下
//在当前目录下解压
[root@linux ~]# cd /usr/local/src
[root@linux src]# tar -xzvf /tmp/etc.tar.gz
//在指定目录下解压
[root@linux src]# tar -xzvf /tmp/etc.tar.gz -C /usr/local/src
  1. 在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说,
  2. 我先将工作目录变换到 /usr/local/src 底下,并且解开 /tmp/etc.tar.gz ,
  3. 则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入 /usr/local/src/etc则会发现,该目录下的文件属性与 /etc/(原文件)可能会有所不同喔!
  4. 如果要在指定目录下解压文件,则要在指定目录前带-C选项。

  • 范例四: 在 /tmp 底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd

我可以透过 tar -ztvf 来查阅 tarfile 内的文件名称,如果单只要一个文件,
就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 / 是被拿掉了!


  • 范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!
[root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc

这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!


  • 范例六:在 /home 当中,比 2005/06/01 新的文件才备份
[root@linux ~]# tar -N "2005/06/01" -zcvf home.tar.gz /home

  • 范例七:我要备份 /home, /etc ,但不要 /home/dmtsai
[root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc

  • 范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件!
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -cvf - /etc | tar -xvf -

这个动作有点像是 cp -r /etc /tmp 啦~依旧是有其有用途的!
要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~
这分别代表 standard output, standard input 与管线命令啦!


打包vs压缩

打包是指将一大堆文件或目录什么的变成一个总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件。为什么要区分这 两个概念呢?其实这源于Linux中的很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你就得先借助另外的工具将这一大堆文件先打 成一个包,然后再就原来的压缩程序进行压缩。

包和文件的区别

1、包是一种特殊的文件夹,不仅可以储存文件而且可以显示文件的状态。而文件夹仅仅能够储存文件。

2、功能不同:包的数据是可以实时更新及备份的而普通文件办不到

3、隶属关系不同:包中的文件来自于其它文件夹,而文件夹内的文件就是自身的

4、权限不同:包可以在不同的电脑或者硬盘与移动盘、U盘之间同步更新文件,而文件夹可以复制粘贴,但是不能方便更新

5、来源不同:文件夹无法追溯内部文件的来源,包可以显示内部文件是否可以链接到主计算机的原始文件,或者某个文件是否为“孤立文件|”

总的来说,包其实是文件的一种,但是文件夹下还可以填充很多层文件,而包只有一层。另外就是包可以在不同的电脑或移动盘中实时更新而文件不行。


【Linux系统】基本指令(下) {其他指令,扩展指令,热键}

【Linux系统】基本指令(中) {输入输出,重定向,管道;显示时间和日期;打包和压缩,包和文件的区别}相关推荐

  1. linux过滤输出内容,Linux内容整理--过滤器、输入输出及管道

    Linux内容整理--过滤器.输入输出及管道1.过滤器 Linux中的应用工具分为三种: 1.交互工具 2.过滤器 3.编辑器 能够接受数据,过滤再输出的工具,称为过滤器. 对过滤器和进程,存在着输入 ...

  2. linux无法运行病毒,{转}为什么linux系统不容易中病毒?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 为什么linux系统不容易中病毒 可能不少人持这样一种观点,认为 Linux 病毒少是因为Linux不像Windows那么普及,其实这种观点很早已经被人批 ...

  3. linux系统python截图不显示中文_Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题...

    本文主要向大家介绍了Linux运维知识之解决linux系统下python中的matplotlib模块内的pyplot输出图片不能显示中文的问题,通过具体的内容向大家展现,希望对大家学习Linux运维知 ...

  4. LINUX系统vim指令提示command not found问题解决

    LINUX系统vim指令提示command not found问题解决 我们在安装完Centos后,它默认的是安装了VI编辑器,VIM是没有安装的,所以我们在使用vim test.txt时会提示: v ...

  5. Linux系统Shell脚本中的echo命令

    Linux系统Shell脚本中的echo命令 echo的作用       输出字符串 格式                  echo  "字符串内容" 一,显示转义字符 转义字符 ...

  6. 微信小程序中苹果iOS手机显示时间格式NaN不正确的问题

    项目场景: 实现安卓Android和苹果iOS中微信小程序显示订单时间信息 问题描述 微信小程序中苹果iOS手机显示时间格式NaN不正确的问题 原因分析: 安卓微信小程序显示正常,苹果按格式YYYY- ...

  7. Linux系统学习: 进程、重定向和管道指令:xargs 指令的作用是

    进程 为了弄清楚这节课程的内容,也就是管道,我们先来讨论一下进程. 我们知道,应用的可执行文件是放在文件系统里,把可执行文件启动,就会在操作系统里(具体来说是内存中)形成一个应用的副本,这个副本就是进 ...

  8. linux系统找运行指令,Linux系统常用指令总结

    一,系统的运行级别 0:关机 1:单用户模式(可以找回丢失的密码) 2:多用户状态没有网络服务 3:多用户状态有网络服务 4:系统未使用保留给用户 5:图形界面 6:系统重启 注意:在/etc/ini ...

  9. 十个效果酷炫的Linux系统操作指令(像黑客帝国般的效果~)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 想想电影黑客帝国中的画面,估计会令很多人都叹为观止,其实最简单的只 ...

最新文章

  1. 一次图文并茂的***完整测试二
  2. 市面上不成熟的系统Java_回顾java基础知识
  3. 网络规划设计师论文考察要点
  4. Thin的DateChooser代码学习(getScrollPosition)(原创,转载请声明)
  5. Spring Aware接口注入
  6. 1008 - Fibsieve`s Fantabulous Birthday
  7. 编译原理完整学习笔记(六):语义分析和中间代码生成
  8. oracle的备份恢复命令,Oracle RMAN的备份与恢复命令详解
  9. office下载哪个版本比较好
  10. 如何撰写商业计划书(精简)
  11. 异形图片自动排版之装箱算法
  12. SQL Server Reporting Services
  13. 传统研发团队的敏捷转型实践之路
  14. k8s ingress and egress
  15. 明星讲师心石闪耀ArchSummit大会 | 手机淘宝构架演化实践
  16. 关于Zoom连不了,明明别人可以连接,却提示会议号不存在
  17. 怎么把录音转文字?快把这些方法收好
  18. 骨牌问题(DP+矩阵快速幂)
  19. linux内核如何读写ddr,linux内核解压详解.doc
  20. Vue路由的动态添加和缓存

热门文章

  1. js创建对象的方法总结
  2. 如何使用 IDEA 打 jar 包
  3. 为什么用计算机题库打开的是用WPS,一级计算机考试WPS试题及答案
  4. 做3D建模师工资到底如何?
  5. 连接共享打印机输入用户名和密码——解决办法
  6. 区块链开发编程语言整合
  7. 物联网竞赛NB-IoT模块开发——计数器系统(Flash存储)
  8. Go入门-Effective-Go
  9. 武汉体育学院计算机设计大赛,首届“经管杯”创业设计大赛顺利落幕
  10. openssl:undefined reference to symbol 'EVP_EncryptUpdate@@libcrypto.so.10'