根据直播讲义整理的内容,从第四课开始。前三课的内容若后面有精力会一并整理进来。

文件的基本操作(上)

  1. 创建、删除、复制、移动和重命名

touch命令创建文件
语法
>$ touch file0 [file1 file2 ...]
>$ touch file{0..9}.txt

touch命令可以创建空文件,将文件名作为参数即可。传递多个文件名可同时创建多个文件。

若使用 file{0..9} 作为参数,将自动创建10个空文件,名字分别为file0.txtfile1.txt、...、file9.txt

若传递给touch的文件已存在于磁盘上,则不会创建此文件,但会更新该文件的时间戳。

mkdir命令创建目录
语法
>$ mkdir [-p] dir1 [dir2 dir3 ...]
>$ mkdir [-p] dir1{0..9}

mkdir命令可以创建目录,将目录名作为参数即可。

传递多个目录名可同时创建多个目录。

若想同时创建子目录,则需要使用-p参数,否则只能创建空目录。

示例
# 在当面目录下创建名为 dir1 的空目录。
>$ mkdir dir1
# 在当前目录的子目录 dir1 内创建子目录 dir2。
>$ mkdir dir1/dir2
# 错误:dir3 不存在,创建多级子目录应使用 -p 参数。
>$ mkdir dir3/dir4
# 同时创建 dir3 目录及其子目录 dir4。
>$ mkdir -p dir3/dir4
# 创建 3 个目录,名字分为为 dir5、dir6、dir7。
>$ mkdir dir{1..3}
rm命令删除文件或目录
语法
>$ rm [-rf] dir1/file1 [dir2/file2 ...]

rm 命令可以删除文件或目录。

-r参数表示要删除一个目录。

-f参数表示强制删除,且静默删除,不会询问用户,被删除的文件不存在也不会报错。

注意:此命令较危险,被删除的文件几乎无法恢复,使用时需谨慎。

cp命令复制目录或文件
语法
>$ cp [-rfv] src dest

cp命令将src参数所指定的文件或目录复制到dest参数所指定的位置。

-r参数用于递归复制目录中的文件,若复制目录时未使用此参数,则仅复制目录本身,目录中的文件及子目录不会被复制。

-f参数表示强制复制。

-v参数表示打印复制的过程。

mv命令移动或重命名文件及目录
语法
>$ mv [-fv] src dest

mv命令有两个作用,当src参数所指定的文件或目录与dest参数所指定的路径为同一个目录时,相当于做重命名,否则相当于将src移动到dest

-f参数表示强制移动或重命名。

-v参数表示打印移动的过程。

示例
# 当前目录 dir 与文件 file1 在相同的目录中。
>$ tree
.
├── dir
└── file1 1 directory, 1 file # 将 file1 重命名为 file2。
>$ mv file1 file2
>$ tree
.
├── dir
└── file2 1 directory, 1 file # 将 file2 移动到 dir 目录下。
>$ mv file2 dir
>$ tree
.
└── dir
└── file2 1 directory, 1 file

  1. 文件读写

echo命令输出字符串
语法
echo [-n] "string"

使用echo命令可以将string参数的字符串打印到控制台上。

-n参数表示不要输出换行符\n

实际上echo命令是将string参数的字符串写入到其标准输出流stdout中了,但由于默认的情况下stdout就是控制台,所以看上去echo命令就是向控制台打印了字符串。

Shell重定向运算符>>>

通过Shell的重定向运算符>>>可以将标准输出流(stdout)本来应该打印到控制台的内容写入(重定向)到文件中去。

语法
>$ echo "abc" > file1.txt
>$ echo "def" >> file1.txt

>重定向运算符将echo命令向标准输出流(stdout)打印的字符串abc写入到文件file1.txt中,此处file1.txt的内容为abc\n

其中\nLinux系统的换行符。

file1.txt不存在则由重定向运算符自动创建。

>>重定向运算符将echo命令向标准输出流(stdout)打印的字符串def追加写入到文件file1.txt的末尾,此处file1.txt的内容为abc\ndef\n

cat命令查看文件全部内容
语法
>$ cat [-n] file1 [file2 ...]

cat命令将文件fileN的内容从头至尾读取出来,并打印到控制台(实际上是打印到标准输出stdout中)。

-n参数表示打印行号。

示例
>$ cat file1.txt
abc
def

file1.txt为空文件,则cat命令无任何输出。

head查看文件开头部分
语法
>$ head [-n N] file

head命令会从文件file的第1行开始读取数据,共读取10行,打印到控制台。

-n参数可以要求head命令读取N行数据,N默认为10。

tail查看文件末尾部分
语法
>$ tail [-n N] [-f] file.log

tail命令与head命令恰恰相反,从文件的末尾第N行开始读取数据,并打印到控制台,N默认为10行,同样可以通过-n参数来指定。

-f参数非常有用,若file.log文件中不断有内容写入,则tail命令可以监听到这种变化,并不断的将最新的内容打印到控制台上。通常查看日志的时候会用到此参数。

more命令按页查看文件
语法
>$ more file.txt

当要查看的文件file.txt的内容特别长的时候,使用cat命令查看并不方便,而more命令刚好可以满足这种需求。

more命令会从头读取file.txt文件的内容,刚好读满整个屏幕的数据作为一页显示。当我们按下回车键(Enter)时,滚动显示下一行的内容;当我们按下空格键(Space)时,滚动显示下一页的内容。直到到达文件file.txt的末尾时more命令才会退出。

more命令适合浏览长文件时使用或在纯Shell(非模拟终端)场景使用。

less命令更灵活的按页查看文件
语法
>$ less file.txt

less命令与more命令非常相似,可以看做是加强版的more命令。

less命令不仅支持与more命令相同的分页显示、回车键空格键向后读取文件,还支持使用光标控制键(上下箭头)vim光标控制键(j、k)Emacs光标控制键(C-n、C-p)向后向前读取文件。使用户可以用更加灵活的方式查看文件。

Linux零基础入门第四课的更多相关文章

  1. Linux零基础入门第五课

    文件的基本操作(下) 文件属性 file命令 语法 >$ file file0 [file1 file2 ...] file命令用于确认文件的类型. 在Linux下,通常并不会严格按照文件扩展名 ...

  2. Android零基础入门第14节:使用高速Genymotion,跨入火箭时代

    原文:Android零基础入门第14节:使用高速Genymotion,跨入火箭时代 无论是使用Eclipse,还是Android Studio,使用自带的Android模拟器,不仅很费电脑内存,模拟器 ...

  3. Android零基础入门第10节:开发IDE大升级,终于迎来了Android Studio

    原文:Android零基础入门第10节:开发IDE大升级,终于迎来了Android Studio 通过前面几期的学习,我们知道了Android的前世今生,也了解了Android的系统架构和应用组件,也 ...

  4. Android零基础入门第1节:Android的前世今生

    原文:Android零基础入门第1节:Android的前世今生 现在网上有很多各色Android资料了,但相对来说还是比较零散,Android覆盖的范围极广,最近刚好有机会全部拉通整理一遍,也保存起来 ...

  5. Android零基础入门第2节:Android 系统架构和应用组件那些事

    原文:Android零基础入门第2节:Android 系统架构和应用组件那些事 继上一期浅谈了Android的前世今生,这一期一起来大致回顾一下Android 系统架构和应用组件. 一.Android ...

  6. Android零基础入门第30节:两分钟掌握FrameLayout帧布局

    原文:Android零基础入门第30节:两分钟掌握FrameLayout帧布局 前面学习了线性布局.相对布局.表格布局,那么本期来学习第四种布局--FrameLayout帧布局. 一.认识FrameL ...

  7. Android零基础入门第25节:最简单最常用的LinearLayout线性布局

    原文:Android零基础入门第25节:最简单最常用的LinearLayout线性布局 良好的布局设计对于UI界面至关重要,在前面也简单介绍过,目前Android中的布局主要有6种,创建的布局文件默认 ...

  8. Android零基础入门第18节:EditText的属性和使用方法

    原文:Android零基础入门第18节:EditText的属性和使用方法 EditText与TextView非常相似,它甚至与TextView 共用了绝大部分XML属性和方法.EditText与Tex ...

  9. Android零基础入门第11节:简单几步带你飞,运行Android Studio工程

    原文:Android零基础入门第11节:简单几步带你飞,运行Android Studio工程 之前讲过Eclipse环境下的Android虚拟设备的创建和使用,现在既然升级了Android Studi ...

随机推荐

  1. 8. Rotate String

    8. Rotate String Description Given a string and an offset, rotate string by offset. (rotate from lef ...

  2. 洛谷P1880 石子合并(区间DP)(环形DP)

    To 洛谷.1880 石子合并 题目描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1 ...

  3. 通过Obfuscated ssh避免时不时ssh连接不畅的问题【转】

    众所周知的原因,为了能流畅的使用google.使用某些“不存在”的网站,我们一般都是需要通过某些不方便光明正大说明使用用途的技术.比如通过ssh tunnel,这是最简单的,也是用得最多的. 不过,这 ...

  4. Eclipse Maven pom.xml 警告No grammar constraints (DTD or XML schema)

    消除警告方案: <?xml version="1.0" encoding="UTF-8" standalone="no"?> & ...

  5. Mac下hadoop运行word count的坑

    Mac下hadoop运行word count的坑 Word count体现了Map Reduce的经典思想,是分布式计算中中的hello world.然而博主很幸运地遇到了Mac下特有的问题Mkdir ...

  6. Redis开启AOF导致的删库事件

    事件背景 Redis主从开启AOF,错误操作导致数据被清空. Redis主要作用:缓存.队列. 事故过程 Redis搭建了主从,持久化方式为RDB,RDB没有定时备份,且AOF都没有开启. 考虑到开启 ...

  7. C#_02.13_基础三_.NET类基础

    C#_02.13_基础三_.NET类基础 一.类概述: 类是一个能存储数据和功能并执行代码的数据结构,包含数据成员和函数成员.(有什么和能够干什么) 运行中的程序是一组相互作用的对象的集合. 二.为类 ...

  8. React进阶之高阶组件

    前言 本文代码浅显易懂,思想深入实用.此属于react进阶用法,如果你还不了解react,建议从文档开始看起. 我们都知道高阶函数是什么, 高阶组件其实是差不多的用法,只不过传入的参数变成了react ...

  9. .NET Core中使用IHostedService结合队列执行定时任务

    最近遇到了这样的场景:每隔一段时间,需要在后台使用队列对一批数据进行业务处理. Quartz.NET是一种选择,在 .NET Core中,可以使用IHostedService执行后台定时任务.在本篇中 ...

  10. HIVE开发总结

    基本数据类型 查看所有函数 搜索函数 搜索表 查看函数使用方法 关键字补全 显示表头 SET环境变量 查看建表语句.数据文件置 执行外部命令 NVL CONCAT IF CASE TRIM SUBST ...