Linux基本指令(二)+https://developer.aliyun.com/article/1425469
39. echo + 字符串 > 文件名 :将字符串内容写入普通文件中
echo 字符串 > 文件名
如果该文件存在且已有内容,则删除其内容后输入字符串;如果该文件不存在,则新建文件输入字符串
例如,code.c文件中已有内容 hello linux ,删除其内容存放字符串12345
例如,test.c 文件不存在,新建test.c 文件存放字符串 hello linux
40. 输出重定向 > :创建文件
> 新创建的文件名
利用 > file.txt :创建文件
41. 输出重定向 > :清空文件
> 需要清空的文件名
根据输出重定向的特性,每一次重定向都会先清空文件,再存储数据,因此可以直接利用输出重定向清空文件
42. Linux系统中,一切皆文件
相比于Windows系统不仅有软件等文件,还有许多硬件,如键盘、显示器、鼠标……
Linux系统中,一切皆文件。
例如键盘是文件,可以从键盘中读数据就叫读文件,但是不可以向键盘中写数据,所以写数据的时候就是空文件
例如显示器是文件,可以写数据到显示器上就叫写文件,但是不可以从显示器上读数据,所以读据的时候显示器就是空文件
因此 输出重定向 > 将原本要写入到显示器的数据,写入到了普通文件中,所以 > 叫输出重定向
43. >> 追加重定向: 不清空文件,在文件的末尾追加写入数据
echo 字符串 >> 文件名
44. cat :从键盘中读取数据
cat
直接使用 cat 指令,其后不加文件名,默认从键盘中读取数据,再写入到显示器文件中
45. < 输入重定向
cat < 文件名
例如,使用 cat < code.c ,将原本从键盘中读取数据重定向为从code.c文件中读取数据
46. more :逐行查看文件(用于阅读大文件)
more 文件名
不同于cat,使用cat查看较大的文件会覆盖整个屏幕
而使用more查看文件,文件内容覆盖完屏幕后不会继续显示内容,需要使用回车键逐行阅读,还可以使用 q 键退出阅读,还可以使用 /关键字 进行关键字检索
但是,more命令有个致命缺点,就是不能进行向上阅读,因此更推荐使用 less 指令
如下,先创建一个大文件big.txt,然后使用more进行查看文件
47. less : 逐行查看文件(通常用于查看大文件)
less 文件名
less指令 和 more指令有着相同的功能,也可以逐行查看文件,也可以进行关键字检索
但是最重要的是 less指令可以使用上下箭头键进行上下翻阅文件,这是 more指令不曾有的
因此在查看大文件时,更加推荐使用 less指令
48. head :查看文件的前n行(默认为前10行)
head 文件名
例如,查看 big.txt 前十行
查看 big.txt 前5行
49. tail :查看文件的倒数n行(默认为倒数十行)
tail 文件名
例如,查看big.txt 文件的倒数十行
查看big.txt 文件的倒数5行
50. 如何查看文件中间部分?
例如,要查看大文件big.txt 的中间部分第491-500 行
先将查看前500行,并输出重定向到tmp.txt文件中,再查看tmp.txt的倒数十行,即可查看到大文件big.txt 的中间部分第491-500 行
51. 管道 |
和生活中的管道一样,都是用来输送资源的。计算机的资源就是数据,因此该管道是用来输送数据的。
我们可以将数据输送到管道中,再从管道中输出。
例如查看大文件的中间部分第491-500 行(无需再创建临时文件),先将big.txt 文件中的前500行输送到管道中,再从管道中查看数据倒数十行
再例如,想爱你将大文件big.txt的前500行输送到管道中,再从管道中读取倒数十行的数据,在输送到另一个管道中,最后从该管道中逆序读取数据
52. wc -l :统计文件行数
例如,先将big.txt文件中的前500行数据输送到管道中,再从该管道中提取倒数十行输送到另一个管道中,再统计该管道中数据行数
53. date :显示时间
date
直接输入date,显示时间(但是该时间不符合日常习惯,因此可以格式化显示时间)
date +%Y:年 date +%m:月 date +%d:日 date +%H:时 date +%M:分 date +%S:秒
date +%F:相当于%Y-%m-%d date +%X:相当于%H:%M:%S
54. 时间戳
时间戳是记录从1970年1月1日0时到目前为止的秒数
利用date +%F_%X -d x秒数可以显示从1970年1月1日0时开始计时x秒后的时间
将x改为0时,显示的时间是1970年1月1日8时,因为我们所在时区是东八区
55. cal :查看日历
cal 年份
cal + 年份 :查看该年份12个月的日历
cal -3 :查看当前年份当前月份,以及前后一个月的日历
56. find 路径 -name 文件名:查找指定路径下的文件
find 路径 -name 文件名
查找根目录下 big.txt 文件
查找根目录下以 .c 结尾的文件
57.grep :行文本过滤工具,过滤出包含关键字的所有行
grep 关键字 文件名
grep 关键字 文件名(关键字需要用单引号或双引号包含)
例如,查找code.c文件中包含关键字bit的行
grep -n 关键字 文件名
还可以使用 -n 带上行号:grep -n
58.grep -v :行文本逆向过滤,过滤出不包含关键字的行
grep -v 关键字 文件名
显示不包含关键字的行
同样,也可以带上 -n,显示行号:grep -nv
59.grep -i :忽略大小写,过滤出关键字的行
n、v、i 可以自由组合
忽略大小写,查看包含关键字bit的行
59. zip -r :打包并压缩目录文件
zip -r 新压缩包名 需要打包压缩的文件目录 (只能打包一个目录文件)
将目录文件linux打包压缩为 压缩包 linux.zip
zip -r 新压缩包名 * (打包全部目录、文件)
打包dir1目录中的 目录a、文件file1、文件file2 、文件file3 ,形成压缩包test.zip
zip -r 新压缩包名 多个指定目录名、文件名 (打包压缩指定的几个目录和文件)
打包压缩目录a和文件file1,形成压缩包test2.zip
60. unzip :解压压缩包文件
unzip 压缩包文件 (默认解压到当前目录)
为了便于测试,我们新建一个目录文件test,将压缩包linux.zip剪切到该目录下,然后解压
unzip 压缩包文件 -d 指定目录
将dir1.zip解压到dir3目录中
61. tar -cvzf :打包并压缩目录文件
tar -cvzf 新压缩包名.tgz 要打包压缩的文件目录(形成.tgz后缀的压缩包)
-v的含义是压缩过程中显示文件,可用可不用
将目录文件dir1打包压缩,形成dir1.tgz压缩包
62. tar -xvzf:解压压缩包文件
tar -xvzf 压缩包文件(默认解压到当前目录)
-v的含义是压缩过程中显示文件,可用可不用
解压压缩包dir1.tgz
tar -xvzf 压缩包文件 -C 指定目录(解压到指定目录)
将压缩包dir1.tgz解压到目录dir2中
63. sz :将Linux系统中的压缩包文件传输到Windows系统中
sz 文件
将dir1.tgz压缩包文件传输到Windows系统上
64. rz :将Windows系统中压缩包文件传输到Linux系统中
rz + 回车
65. scp :两台Linux系统的压缩包文件互传
scp 压缩包文件 用户名@另一台Linux机器的IP地址:需要拷贝到的路径
将当前Linux机器中的压缩包文件dir.tgz 以root用户的身份传输到另一台IP地址为43.138.218.218.166的机器中
66. bc :Linux系统的计算器
bc + 回车
使用Linux系统的计算器计算87/10和6+9
退出计算器使用 quit + 回车
67. uname :查看Linux操作系统的软硬件信息
uname -r :查看操作系统内核版本和机器架构
查看我的Linux系统版本3.10.0-1160.99.1.el7 机器架构为x86_64
(el7表示为CentOS7系统)