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//保存到记事本
12.了解指令
12.1bc
bc是Linux系统中一个非常有用的精度计算工具,可以用于处理浮点数和高精度数学运算。通过bc命令,我们可以进行各种数学运算,实现复杂的计算任务。在bash脚本中,bc命令可以帮助我们解决bash本身只支持整数计算的限制,为脚本提供更强大的计算能力。
以下是bc命令的一些使用方法:
- 简单的数学运算
echo "2+3" | bc # 输出:5
echo "5-2" | bc # 输出:3
echo "2*3" | bc # 输出:6
echo "10/3" | bc # 输出:3
echo "10%3" | bc # 输出:1
- 浮点数运算
echo "scale=2; 10/3" | bc # 输出:3.33
echo "scale=4; sqrt(2)" | bc # 输出:1.4142
- 高精度运算
echo "10^10" | bc # 输出:10000000000
echo "factorial(5)" | bc # 输出:120
- 使用变量
a=10
b=3
echo "$a+$b" | bc # 输出:13
如果当前系统不支持bc命令,可以通过以下命令进行安装:
yum -y install bc # 适用于CentOS系统
12.2stat
Linux的stat命令用于显示文件的状态信息,包括文件的访问、修改和更改时间,文件的权限和所有者等信息。与ls命令相比,stat命令提供了更详细的文件信息。以下是一些常用的stat命令选项:
- 显示文件的所有状态信息
stat file.txt
- 以简洁形式显示文件的状态信息
stat -c "%n %a %A %s %b %f %u %g %t %T %x %y %z" file.txt
- 以易读形式显示文件的状态信息
stat -c "File: %n\nSize: %s\tBlocks: %b\tIO Block: %o\nType: %F\t\t\t\tAccess: %A\nUid: (%u/%U)\t\tGid: (%g/%G)\nAccess: %x\nModify: %y\nChange: %z" file.txt
- 显示软连接原始文件状态信息
stat -L file.txt
12.3ping
Linux系统中的ping命令是用来测试与目标主机的连通性的常用网络命令。它通过发送ICMP ECHO_REQUEST数据包到网络主机,并显示响应情况,从而可以确定目标主机是否可访问。以下是ping命令的基本用法和参数:
-
基本用法:ping [目标主机地址或域名]
-
参数:
-c:指定要求完成的回应次数,例如ping -c 5 www.baidu.com表示向www.baidu.com发送5个数据包。
-i:指定发送数据包的时间间隔,例如ping -i 0.2 www.baidu.com表示每隔0.2秒向www.baidu.com发送一个数据包。
-s:指定发送数据包的大小,例如ping -s 1024 www.baidu.com表示向www.baidu.com发送大小为1024字节的数据包。
-t:设置数据包的TTL值,例如ping -t 64 www.baidu.com表示将数据包的TTL值设置为64。
-v:详细显示ping命令的执行过程。
例如,要ping百度的IP地址,可以使用以下命令:
ping 220.181.38.148
如果要ping百度的域名,可以使用以下命令:文章来源:https://www.toymoban.com/news/detail-727031.html
ping www.baidu.com
如果要ping百度的域名,并且要求完成5次回应,可以使用以下命令:文章来源地址https://www.toymoban.com/news/detail-727031.html
ping -c 5 www.baidu.com
到了这里,关于Linux基础指令[下]的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!