Linux基础指令【下】
注:前期学习指令可能会比较枯燥,但是真的很重要。那就想象自己是一个计算机大神,在黑框框哐哐哐敲代码。最后,一定要记住,不要死记硬背、不要死记硬背、不要死记硬背!孰能生巧,了解为主!!!
一、man 指令
Linux 的命令有很多参数,我们不可能全部都记住,可以通过查看联机手册获取帮助
语法 : man [选项] 命令
如果想要退出帮助手册 --> 按 一下 'q' 即可!
1.1. printf
但是此时如果我们想查找的不是 指令 printf , 而是函数 printf ,该如何呢?
在此之前 ,先了解 man手册分为9章(不同系统可能有所差异)
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么
头文件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
4 略
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有⼀些变量,比如像environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
9 略
所以可以使用 : man 3 printf 指令来查找 printf库函数
有些同学的云服务器,在输入 man 3 printf 会出现下面的报错:
这是因为,云服务器是一个线上环境(生成环境) , 是专门给项目部署的服务器 。 而这种环境不会给我们提供太多功能 , 会给我们暂时去掉。因为已经有能把项目部署到服务器的能力了,再放太多东西,会比较占空间 。所以会把一些man 的功能会去掉 , 但是不一定所有的服务器的man是残缺,具体的还需要看服务器所提供的产商。
yum install -y man man-pages //centos 安装 man
apt install -y man man-pages //ubuntu 安装 man
二、cp 指令
在介绍这个指令之前,我先输出一个知识点 : Linux 下 一切皆文件
2.1 echo 指令
1) echo 命令可以把后面的内容写在显示器文件里。
2) echo 默认向显示器文件写入 , 如果加了 > (输出重定向) , 就可以指定文件进行写入。
3) 输出重定向写入某文件:
如果文件不存在,则先创建文件。再进行写入
如果文件存在,先清空,再写入。
4)如果直接 >某个普通文件 可以有清空文件的功效 ;如果文件不存在,可以有创建文件的功效。
5)追加重定向 >> : 向指定文件进行数据追加
6) < (输入重定向) : 默认是从键盘上读 , 有了 < , 就可以指定从某一个文件上读
7)小知识 : 其实在 Linux 下, 单引号或者双引号都可以表示字符串
1. > 某个文件 :
1)文件存在 --> 清空
2) 文件不存在 --> 创建
2. 任何具有输出功能的指令都可以使用输出重定向来指定写入的文件:
3. 追加重定向 >> : 向指定文件追加内容
4. 输入重定向< : 在指定文件中读取数据,默认是在键盘里读取数据
2.2 cp 指令
1. 语法 : cp [选项] 源文件或目录 目标文件或目录2. 功能: 复制文件或目录3. 常用选项:1) -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在2) -r 递归处理, 将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符 号链接,则⼀律视为普通文件处理
# cp普通⽂件
cp myfile.txt myfile-backup.txt# 将多个⽂件拷⻉到指定路径下
# *表⽰通配符,匹配所有.txt结尾的⽂件名
cp *.txt dir # 拷⻉前询问
cp -i myfile.txt myfile-backup.txt# 递归强制拷⻉整个⽬录
cp -rf test test-backup
2.3 指令
注意:
通常不建议把自己写的 a.out 命令放在 usr/bin目录下 , 因为会污染别人的指令池。
2.4 ll 指令
1. Linux 命令行允许我们通过 alias 命令来给特定的指令取别名 。
2 .
2)所以 ll 就是 ls -l 的别名 。
注意 , 一般不建议太过于频繁的加别名,因为会有记忆成本 , 时间一长可能会忘记。
三、mv 指令
mv命令是move的缩写,可以⽤来移动文件或者将文件改名(move (rename) files , 经常用来备份文件或者目录语法: mv [选项] 源文件或目录 目标文件或目录
1) 剪切文件 :
mv a.out ..
2) 剪切文件夹:
四、cat
1)功能 : 打印目标文件内容
2)语法 : cat [选项][文件]
3)选项:
tac 目标文件 --> 倒置的作用
五、日志
1) 形象说明一下:日志就是记录我们的每一个操作 , 作用是 , 下次电脑"生病"时,工程师就像医生翻看病历本一样查看日志,快速找到"咳嗽(错误)"是什么时候开始的 , 这样可以帮助程序员很快的定位出Bug !
2) 如何查看日志?
cat 只能一次打印出文本内容 , 不能上下翻阅 ,可以用于 小文件的查询 。
但是对于大文件 , cat 命令就不太方便了,不能上下翻阅 , 也不能查询 ,
这里推荐使用 less
5.1 more
1. 语法: more [选项]2. 功能:more命令,功能类似 cat3. 常用选项:1)-n 输出指定行数2)q 退出more
# 命令⾏输出多⾏⽂本[root@hcss-ecs-b52b lesson2]# cnt=0; while [ $cnt -le 10000 ]; do echo "hello bite $cnt"; let cnt++; done > temp.txt# -n 指定输出⾏数
[root@hcss-ecs-b52b lesson2]# more -10 temp.txt
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
--More--(0%)
5.2 less 指令
1. less 工具也是对文件或其它输出进行分页显示的⼯具,应该说是linux正统查看文件内容的工具, 功能极其强大2. less 的用法比起 more 更加的有弹性,在 more 的时候,我们并没有办法向前面翻, 只能往后面看3. 但若使用了 less 时,就可以使用 [pageup] [pagedown] 等按键的功能来往前往后翻看文件,更容易用来查看⼀个文件的内容4. 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
1)语法: less [参数] 文件
5.3 head 指令
//默认显示前10行
head file//从头开始,显示指定行数的内容
head -n file
5.4 tail 指令
//默认显示后10行
tail file//从尾部开始,显示指定行数的内容
tail -n file
思考:如果向查看大文件任意区间的文本内容呢?
[2000,2020]?
上面的 | 是管道的意思 , 把 head -2021 temp.txt 的结果喂给 tail -21 , 让它进行加工!
管道:可以处理级联的多个操作(命令) , 可以批量化 、 流水线化对文本文件进行加工
//tac 逆置
head -2021 temp.txt | tail 21 | tac//w -> word 、c-> count 、l->line 可以统计行数
head -2021 temp.txt | tail 21 | tac | wc -l
六、时间相关指令
6.1 date
1. 在显示方面,可以设定自定义显示的格式,格式设定为⼀个加号后接数个标记,其中常用的标记列表如下:1) %H :小时2)%M : 分钟3)%S : 秒4) %X : 相当于 %H:%M:%S5) %d : 日6)%m : 月份7)%Y : 完整年份8)%F : 相当于 %Y-%m-%d
[root@hcss-ecs-b52b lesson2]# date[root@hcss-ecs-b52b lesson2]# date +%Y-%m-%d_%H:%M:%s
6.2 时间戳
# 显⽰常规时间
datedate +%Y/%m/%ddate +%Y/%m/%d-%H:%M:%S# 显⽰时间戳
date +%s# 时间戳转成可视时间
date +%Y/%m/%d-%H:%M:%S -d @0
date +%Y/%m/%d-%H:%M:%S -d @100000
date +%Y/%m/%d-%H:%M:%S -d @1000000000
6.3 cal
命令格式: cal 参数 [年份]功能:用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份 和年份
1)cal : 显示当前月份的日历
2)cal -3 : 显示当前月的前一个月 + 当前月 + 当前月的下一个月
3) cal 年 : 年的全部月份的日历
任何操作系统都有提供日历,在我们windows 下,日历在右下角
七、find
1) 语法: find pathname -options2) 功能 : 用于在文件树中查找文件,并作出相应的处理(可能访问磁盘)3)常用选项:
- -name 按照文件名查找文件
- 其他选项需要再查 , 这个命令其实比较复杂
# 在指定路径下搜索执⾏名称的⽂件
find ~ -name test.c
find 和 which 有什么区别?
八、grep
1)是什么 ?
是一个行文本过滤工具
2)语法: grep [选项] 搜寻字符串 文件
3)功能:在文件中搜索字符串,将找到的行打印出来
4)常用选项:
# ⽂件内容
cat temp.txt#基本查找
grep "abcd" temp.txt# 忽略⼤⼩写的不同,所以⼤⼩写视为相同
grep -i "abcd" temp.txt# 顺便输出⾏号
grep -n "abcd" temp.txt# 反向选择,亦即显⽰出没有 '搜寻字符串' 内容的那⼀⾏
grep -v "abcd" temp.txtgrep -vn "abcd" temp.txtgrep -vni "abcd" temp.txt
注:Linux 不区分单引号或双引号
grep 对大小写敏感!
九、重要的几个热键
1. 【Tab】按键 : 具有 命令补全 和 档案补齐 的功能。
2. 【Ctrl + c 】 : 让当前的程序停掉(中断) --> 多用于程序异常的情况。
3. 【Ctrl + d 】 : 通常代表着 -> 键盘输入结束(End Of File , EOF 或 End Oflnput) 的意思 ; 另外,也可以用来取代 exit
4. 【上下键】 : 可以上下翻阅历史命令
5. 【Ctrl + r 】 :搜素历史命令