【Linux】Linux基本操作指令

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

这部分的学习就像在Linux系统里我教你双击右键怎么用滚轮怎么管理文件blabla小边默默戴上了她的痛苦面具哈哈开玩笑其实在这里我是重拾了初学C语言的乐趣的。本文所有指令我都会演示展示它们的作用。小边要多敲才能更熟悉。

正文开始@呀小边同学

其它的登陆方式

ssh name@[ip]

1. ls指令

ls默认显示当前目录下的文件列表文件名


它可以带很多选项 ——

ls [选项] [目录或文件]

我们重点介绍-l-a-d选项其余暂时只做了解用时再查阅。

list形式显示文件更多属性 ——

ls -l 

列出目录下所有文件包括隐藏文件

ls -a

查看目录本身属性

ls -d 

了解用数字的UID,GID代替名称。把用户名所属组对应的用户ID组ID显示以后详谈

ls -n

注意

ll是什么

这要先引入一个指令用于查看特定指令系统路径。要知道指令本质也是Linux上的一些程序相当于.exe 可执行程序

which 

我们发现 ——

因此

其他选项 ——

-d 将目录象文件一样显示而不是显示其下的文件。 如ls –d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-F 在每个文件名后附上一个字符以说明该文件的类型“*”表示可执行的普通文件“/”表示目录“@”表示符号链接“|”表示FIFOs“=”表示套接字(sockets)。目录类型识别
-r 对目录反向排序。
-t 以时间排序。
-s 在l文件名后输出该文件的大小。大小排序如何找到目录下最大的文件
-R 列出所有子目录下的文件.(递归) 
-1 一行只输出一个文件。

2. pwd指令

显示当前所在目录路径

pwd

3. cd指令

路径切换 change director

上文我们提到.表示当前路径..表示上级路径

cd .. 返回上级目录

这就引出了大部分的操作系统组织文件的基本结构是一棵多叉树

为什么我们可以采用“路径”的方式来定位文件

这是因为每个叶子节点都只有父节点从当前位置到根节点有唯一路径是绝对路径

相对路径是以当前路径为准进行索引不以/开头不具备唯一性不能唯一标识一个文件。

我们可以通过绝对路径相对路径来进行路径切换

cd /home/bts/2022_code/lesson01/a.out 绝对路径.(可能与配置文件有关遇到再聊)
cd ../lesson1/  相对路径

记录了最近从哪里来的路径用于两个高频路径进行切换

cd - 返回最近访问目录

进入用户对应的工作目录

cd ~ 进入用户家目录

4. 创建之类

4.1 touch指令

touch [选项] 文件

1. 创建普通文件

2. 更新文件最近创建时间、修改时间

默认更改所有时间也可以部分改。

选项 ——

-a   或--time=atime或--time=access或--time=use只更改存取时间。
-c   或--no-create  不建立任何文档。
-d  使用指定的日期时间而非现在的时间。
-f  此参数将忽略不予处理仅负责解决BSD版本touch指令的兼容性问题。
-m   或--time=mtime或--time=modify  只更改变动时间。
-r  把指定文档或目录的日期时间统统设成和参考文档或目录的日期时间相同。
-t  使用指定的日期时间而非现在的时间

4.2 mkdir指令重要

mkdir [选项] dirname

1. 默认创建空目录 [make director]

2. 可以带选项递归创建多级目录

mkdir -p p1/p2/p3/p4  递归创建多级目录


在这里插入图片描述

5. 删除之类

5.1 rmdir和rm指令重要

5.1.1 rmdir指令

rmdir就是mkdir的完美对应。

1. 通常删除空目录

rmdir dirname

2. 递归删除多级目录

rmdir -p p1/p2/p3/p4

5.1.2 rm指令

常用。删除文件或目录。

递归删除目录

rmdir -r dirname 删除目录及其下所有文件

强制删除[force] 会忽略询问

rmdir -rf

注注意不能有误操作不要删除重要路径不然你就是从删库到跑路了

5.2 mv指令重要

move的缩写用来移动文件或将文件改名是Linux系统下常用命令经常用来备份文件或目录。

mv [选项] 源文件/目录 目标文件/目录

根据mv命令中第二个参数类型是目标文件还是目标目录mv命令将文件重命名或将其移至一个新的目录中。

  • 当第二个参数是已存在的目录名称时源文件/目录参数可以有多个mv命令将各参数指定的源文件均移至目标目录中。
  • 当第二个参数类型是文件时mv命令完成文件重命名。此时源文件只能有一个也可以是源目录名它将所给的源文件或目录重命名为给定的目标文件名。

常用选项

-f  force 强制的意思如果目标文件已经存在不会询问而直接覆盖
-i  若目标文件. (destination) 已经存在时就会询问是否覆盖

1. 类似剪切功能剪切到任意你想要的路径下 —— 目录、普通文件

2. 重命名 —— 目录、普通文件

Linux没有回收站rm没有回收站就直接干掉了下面是一段简单的shell脚本把rm改造成mv

vim ~/.bashrc #修改这个文件
mkdir -p ~/.trash
alias rm=trash
alias ur=undelfile
undelfile() {
 mv -i ~/.trash/\$@ ./
}
trash() {
 mv $@ ~/.trash/
}

但是现在不建议修改。

6. man指令重要

Linux的命令有很多参数我们不可能全记住我们可以通过查看联机手册获取帮助。

yum install -y man-pages  下载

问这个男人哈哈。

当然man也是指令我们问问他是谁

man man


可以看到对应内容按q退出在此不做展示。

7. cp指令重要

1. 拷贝普通文件

cp [选项] src dst

也可以拷贝到特定路径

可以不指定文件名

2. 拷贝普通目录

cp -r srcdir dstdir 递归处理

系统可能会不断有询问信息可以强制拷贝

cp -rf srcdir dstdir 递归处理

8. cat指令

查看文件内容

常用选项

-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行

9. 文件查看

为了做测试这里写一段命令行脚本从1打印到1000制作一个大文件方便演示。

count=0; while [ $count -le 1000 ]; do echo "hello ${count}"; let count++; done > file.txt

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TWmY6JFx-1643189682462)(C:\Users\13136\AppData\Roaming\Typora\typora-user-images\image-20220126105349774.png)]

对于短小文件我们cat test.c直接看了如果查看大文件不想打开它我们用more/less
发生在以下场景——

  • 日志系统中存在各种日志就是一些保存软件运行过程中对应的运行数据的
  • 别人写好的代码

9.1.1 more指令

对文件进行分批查看只能从上往下看不常用按回车显示后续内容。按q退出

more file.txt

more -n file.txt 显示n行

跳跃至附近

9.1.2 less指令(重要)

可以上下翻推荐使用more不推荐

less [参数] 文件

less 工具也是对文件或其它输出进行分页显示的工具应该说是linux正统查看文件内容的工具功能极其强大。

less 的用法比起 more 更加的有弹性。在more的时候我们并没有办法向前面翻 只能往后面看。但若使用了 less 时就可以使用 pageuppagedown 等按键的功能来往前往后翻看文件更容易用来查看一个文件的内容

除此之外在 less 里可以拥有更多的搜索功能不止可以向下搜也可以向上搜

选项 ——

-i  忽略搜索时的大小写
-N  显示每行的行号
/ 	字符串向下搜索“字符串”的功能
?	字符串向上搜索“字符串”的功能
n	重复前一个搜索与 /? 有关
N 	反向重复前一个搜索与 /? 有关
q	quit

9.2 文本文件的局部查看

9.2.1 head指令

从文件开头查看命令行默认打印相应文件前10行

head [参数] 文件

9.2.2 tail指令

从文件尾查看命令行

9.3 如何查看文件中间区域

如何查看文件中间区域内容呢:
purple_heart: 我们先来点题外话简单介绍一下重定向管道

echo 

把输出字符串显示到标准输出上

输出重定向

echo "hello stranger" > log.txt

这句指令的意思是把原本应该显示在显示器标准输出的内容重定向写入目标文件。若目标文件不存在则自动创建。[以后会从编码角度讲重定向的本质]

再~

这说明输出重定向会清空原始文件内容然后重新写入。那我们可以 追加重定向本质也是写入。


如果我们不带文件名默认从键盘标准输入读取内容。

cat 

[ctrl+d]退出。

输入重定向

cat < log.txt

把文件内容作为原始数据内容传输给对应程序让该程序处理该数据。

回到最开始的问题如何查看文件中间区域的内容呢比如[100, 120]行

初级方案是 ——

 	head -120 file.txt > tmp.txt
	tail -20 tmp.txt

如果我不想创建这个文件呢

head -120 log.txt | tail -20

用竖划线级联多条命令进行数据的批量化处理这像是一条流水线上的工作

这些我们目前会操作即可。

10. 时间相关指令

显示日期

可以格式化输出 ——

%H  小时.(00..23) 
%M  分钟.(00..59) 
%S  秒.(00..61) 
%X  相当于 %H:%M:%S

%Y  完整年份. (0000..9999) 
%m  月份. (01..12) 
%d  日. (01..31) 
%F  相当于 %Y-%m-%d

时间戳

Unix时间戳Unix epoch, Unix time, POSIX timeUnix timestamp是从1970年1月1日0时0分0秒UTC/GMT的午夜开始累计到现在秒数不考虑闰秒。

1. 将时间转化为时间戳

date +%s

2. 将时间戳转化为时间

date -d @时间戳

11. cal指令

查看日历信息本身没有太大价值

默认显示当前月、前一个月、后一个月的日历信息

12. find指令很重要

查找指定文件

man find 

可以看到它的选项很多且复杂。我就不贴图片了

常用选项 按照文件名查找文件

find pathname -name filename

第一次的查找会相对慢一些因为它会访问这颗多叉树、访问磁盘第二三次会快一些。

13. grep指令

行过滤工具

grep [选项] 搜寻字符串 文件

常用选项

grep -v 反向匹配

grep -i 忽略大小写的不同
grep -n 输出行号

14. 打包压缩解压之类

在Linux下打包压缩的指令很多遇到不知道的压缩格式复制后缀名现查现学即可。

14.1 zip/unzip指令

介绍它因为它够简单并且和windows下zip采用的是相同的压缩算法。

zip file.zip file   压缩
unzip file.zip      解压

1. 对普通文件可以直接压缩且压缩效率很高

2. 对目录无法直接压缩需要递归处理

那怎么办呢其实学了这么多了就知道要递归处理

zip -r dir.zip dir/

3. 如何解压到特定路径

unzip file.zip -d unzippath/

14.2 tar指令

有关tar的选项那也是非常多不过我们重点掌握一对儿指令就行。

1. 压缩

tar czf file.tgz file

  • 后缀名tar.gz常简写为tgz
  • -写不写取决于你的环境我试了一下我的写不写都行。

有关当中的选项 ——

-c 	建立一个压缩文件的参数指令.(create 的意思)
-z 	是否同时具有gzip的属性亦即是否需要用gzip压缩没错你可以只打包不压缩
-f 	指明特定文件注意后面紧跟新文档名称不要再加参数

有时你会看到-v选项这会显示压缩过程你怎么招都行

tar czvf file.tgz file
tar cvzf file.tgz file

2. 解压缩

这个.tgz文件我挪不动所以在演示解压之前我先把这个lesson2干掉再来

tar xzf file.tgz

相关选项

-x  解开一个压缩文件的参数指令

3. 解压指定路径

tar xzf file.tgz -C path

15. bc指令

有趣无趣的命令Linux中的计算器quit退出。

bc配合管道

16. uname指令

本身意义不大查看属性信息

选项

-a  查看详细信息.(all)

这里有两个要注意的小点

服务器上的操作系统选择经典的版本。

17. 热键

[Tab] 命令补全

[history] 显示历史命令


会记录历史命令所以你[ctrl + r]才记录的到啊。

[ctrl + R] 根据你的记忆碎片搜索历史指令

[ctrl + c] 退出程序

[ctrl + d] ①退出腾讯云 ②退出xshell

18. 关机

注意了啊云服务器不要关机下面这些你想试上虚拟机上试去~

shutdown [选项]
-h  将系统的服务停掉后立即关机。
-r  在将系统的服务停掉之后就重新启动
-t sec  -t 后面加秒数亦即『过几秒后关机』的意思

19. 扩展命令

以后慢慢学习~

◆ 安装和登录命令login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last 
◆ 文件处理命令file、mkdir、grep、dd、find、mv、ls、diff、cat、ln 
◆ 系统管理相关命令df、top、free、quota、at、lp、adduser、groupadd、kill、crontab 
◆ 网络操作命令ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup 
◆ 系统安全相关命令passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who 
◆ 其它命令tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode


持续更新@边通书

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: linux