文章目录
- 0.英语单词
- 3.Linux的重要指令[下]
- 1. 输入/输出重定向
- 1.1echo和输出重定向
- 1.2cat和输入重定向
- 1.3Linux文件理念
- 2.长文本逐行查看
- 2.1more的介绍
- 2.2建议使用less
- 2.3more/less的选项
- 3.head&&tail显示头尾
- 对head&&tail的认识
- 练习head和tail
- 4.时间指令
- 4.1显示时间
- 4.2date +%s
- 4.3cal: 显示日历
- 6.find 以及对exe程序的理解
- find指令
- 对exe程序的理解
- 7.which&&whereis&&alias
- 7.1which:
- 7.2whereis:
- 7.3alias:取别名
- 8.grep【行文本过滤工具】和 wc
- grep
- wc: word count
- 9.xargs【xarguement】
- 10.打包和压缩
- 10.1认识
- 10.2作用
- 10.3方式
- 11.趣味小指令
- 11.1bc【Basic Calculator】
- 11.2问题:
- 11.3热键
- 11.4关机
- 11.5history
0.英语单词
3.Linux的重要指令[下]
1. 输入/输出重定向
1.1echo和输出重定向
Linux-xshell
echo "hello"
hello//输出到显示器上
echo "hello" > file.txt //没有文件 创建新文件
cat file.txt
hello //输出重定向
echo "hello world" > file.txt
cat file.txt
hello world //覆盖式写入
echo "hello linux" >> file.txt
cat file.txt
hello world
hello linux //追加重定向(追加式写入)
cat
//待输入 hello
hello //cat + \n :输入什么输出什么
1.echo:打印内容到显示器
echo “hello”
2.echo “hello” > file.txt:> 输出重定向覆盖式
没有文件创建新文件,有文件直接将内容写入目标文件,每次写入时清空文件原有内容。
3.echo “hello” >> file.txt : >> 追加重定向追加式
没有文件创建新文件,有文件直接将内容写入目标文件,每次写入时在原有内容基础上追加。
1.2cat和输入重定向
- 对于文件:
cat file.txt
从文件中读取输入
输出到显示器上
- 对于换行符:
cat \n
从键盘输入
从键盘输入缓冲区读取
打印到显示器上
cat < file.txt
输入重定向:从文件读取内容
形象理解:将原来指向键盘输入缓冲区的指针重定向到文件(没有执行打开文件的操作)
cat file.txt
类似于C语言中fopen函数 打开文件后可以使用fread等函数操作
一下操作使得bak/bak1的文件内容均和file一样
cat file.txt > bak.txt
打开文件 把本应输出到屏幕上的内容 输出到bak文件 [没有的话就新建]
cat < file.txt > bak1.txt
将file文件内容读到程序 输出到bak1
1.3Linux文件理念
Linux是采用C语言 + 一部分汇编
一般涉及到输入输出 有三个组件 显示器 键盘 普通文件
而Linux视其皆为文件
怎么做到把他们都当作文件来看待呢?
struct inout
{
//函数指针
int (*pread)();
int (*pwrite)();
}
struct file Keyboard,Display,regular file;
//此时在上层看来 这三个东西皆为文件 每个组件均有相应的读写函数
为什么这样设计捏?
以统一的方式 处理一类具有相似或相同属性/行为的事物==》为了更简单的处理事物–>人为了偷懒创造工具
2.长文本逐行查看
2.1more的介绍
当file.txt文件行数很多(1000000)
cat file.txt:直接刷屏 当想查看某一行时需要翻很久
==》
more file.txt:打印满一屏幕自动停下来 按回车打印新的一行
more -5 file.txt
:打印前五行
缺点:只能向下翻 不能查看已经翻过去的内容
2.2建议使用less
类似于more 打印满一屏幕停止 回车继续但是他可以上下翻阅
按回车往下 上键往上
2.3more/less的选项
在使用more/less显示文件时,输入
/521
:显示521行
n:向前搜索含521的行 1521 2521…
g:回到开头
3.head&&tail显示头尾
对head&&tail的认识
head file.txt:显示前十行
head -5 file.txt:显示前5行
问题:如何获取中间一段?[999, 1009]
法一:利用临时变量tmp
head -1010 file.txt > tmp.txt
tail -11 tmp.txt
法二:利用管道|
管道是什么?
- 连接命令/传导数据/批量化流水化处理命令
- 管道是用来传导数据的
- 管道可视为管道文件:内存级的文件 没有在磁盘上
- 把本应输出到显示器的内容传给–管道–tail本应从显示器接收内容 现在从管道另一端接收
head -1010 file.txt | tail -11
练习head和tail
显示666到670
4.时间指令
4.1显示时间
4.2date +%s
时间戳:从1970/01/01 08:00:00【北京时间】开始到现在的秒数[单向递增,具有唯一性]
获得时间戳
时间戳转换年月日
4.3cal: 显示日历
cal 2023:显示本年日历
cal -1:显示当月日历
cal -3:显示前一个月 本月 后一个月日历
只有-1 -3两个选项
.
6.find 以及对exe程序的理解
find指令
在文件树中查找文件并作出相应处理(可能访问磁盘)
对exe程序的理解
认识:
Linux下的各种命令/工具/指令 本质上就是可执行程序
程序员所编写的C/C++代码 编译器编译之后 形成了可执行程序
使用操作系统时经常会安装软件(Linux、Win)— 实际上就是
拷贝一份可执行程序
运行一个程序:
1.寻找 2.运行
7.which&&whereis&&alias
7.1which:
在系统路径中 查找特定指令所在的路径
7.2whereis:
whereis test.c:将包含文件名的路径显示
例如:找到test就显示路径[不是完全匹配]
7.3alias:取别名
起别名(
自己起别名只在本次使用xshell时有效
)
alias ovo=‘ls -al’
ovo code【与执行ls -al的结果相同】
which ls的输出结果
执行ls
–执行ls --color=auto
8.grep【行文本过滤工具】和 wc
grep
找到file.txt文件中含888的行 并显示[相比more/less更好用]
显示行号
除了521都显示
只显示printf
只显示PRINTF
大小写都显示
wc: word count
Linux系统中的wc命令是用来统计文件文本的字节数、单词数、行数等并显示输出的命令。
wc [选项] [文件名]
- 选项
-l 统计行数
-w 统计单词数
-c 统计字节数
-m 统计字符数
-L 打印最长行的长度
- 文件名
文件名表示要统计的文件名,可以同时指定多个文件名,用空格隔开。如果不指定文件名,则默认从标准输入读取数据进行统计。
统计文件test.txt的行数、单词数和字节数
wc -l -w -c test.txt
该命令会输出test.txt文件的行数、单词数和字节数
9.xargs【xarguement】
将管道的输出结果作为命令行参数交给后面的程序
ls原来是不会读字符串中的内容的
ls -l -a -i
//显示全部文件属性信息 + incode编码
echo "-l -a -i" | ls
//只输出ls指令的结果即子目录/文件
通过xargs将字符串作为参数选项通过管道给ls
echo "-l -a -i" | xargs ls [将管道的输出结果 作为命令行参数 交给后面的程序]
//显示全部文件属性信息 + incode编码
C语言main()函数的参数
10.打包和压缩
archive:存档
zip:压缩
inflation:解压
phase:阶段
10.1认识
打包:将东西放在一起
压缩:采用某种压缩算法 压缩他的存储空间
10.2作用
便于传输/归档
10.3方式
- zip
压缩失败
压缩成功
压缩至指定目录
总结zip和unzip
- tar命令
-j :是否同时具有 bzip2 的属性?是否需要用 bzip2 压缩?
tar -czvf proj.tgz project [tar.gz == tgz: 打包并压缩]
-c :(create)建立一个压缩文件
-z :是否同时具有 gzip 的属性?是否需要用 gzip 压缩?z:zip压缩
-v :压缩的过程中显示文件!不建议用在背景执行过程! v:visualize可视化–显示压缩过程[可选 – 可不写]
-f :使用档名,在 f 之后要立即接档名!不要再加参数!f:file表示要创建一个文件
解压: tar -xzvf project.tgz -x :解开一个压缩文件
解压至特定目录: tar -xzvf project.tgz -C /root/code
-C : 解压到指定目录
形成后缀为tar的文件即只打包不压缩 tgz: tar.gz: 打包并压缩
tar -cf test.tar test //打包不压缩
tar -xf test.tar //解包
tar -tf test.tar //查看 -t :查看 tarfile 里面的文件
tar和gz
tar:将文件备份到磁带上(tape archive)
gz:GZ是UNIX系统中的压缩文件,ZIP的Gnu版本
11.趣味小指令
11.1bc【Basic Calculator】
echo "1+2+3"
1+2+3
echo "1+2+3" | bc
6
11.2问题:
如何在Linux下查看Linux的体系结构,以及内核版本!
uname的作用
uname用来获取电脑和操作系统的相关信息
uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息
-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
11.3热键
Tab — 命令补全/档案补齐
[Ctrl]-c — 让当前的程序停掉
[Ctrl]-d —键盘输入结束(End Of File, EOF 或 End Of Input)的意思;可以取代exit
[Ctrl]-r:搜索
11.4关机
关机:云服务器一般不关机
- shutdown
-h : 停掉系统服务后立即关机。
-r : 停掉系统服务后重新启动
-t + 秒数:『过几秒后关机』 - halt:
开机:
reboot
11.5history
上下箭头可以上下翻之前使用过的指令
history: 显示所使用过的命令
.
history > cmd.txt//保存到记事本