大家好,今天我们继续学习Linux的基础命令
mv命令
mv命令是move的缩写,可以用来移动文件或者将文件改名 move(rename) files,经常⽤来备份⽂件或者目录
语法: mv [ 选项 ] 源⽂件或目录 目标⽂件或目录
mv src[文件、目录] dst[路径、文件]
mv src文件-->重命名 mv hello.txt world.txt -> hello.txt -> world.txt
mv src路径-->剪切 mv hello.txt/new ../ ->移动文件,达到剪切效果
也可以移动位置并重命名 mv hello.txt ../name.txt
功能:
- 视mv命令中第⼆个参数类型的不同(是⽬标⽂件还是⽬标⽬录),mv命令将⽂件重命名或将其 移⾄⼀个新的⽬录中。
- 当第⼆个参数类型是⽂件时,mv命令完成⽂件重命名,此时,源⽂件只能有⼀个(也可以是源⽬ 录名),它将所给的源⽂件或⽬录重命名为给定的⽬标⽂件名。
- 当第⼆个参数是已存在的⽬录名称时,源⽂件或⽬录参数可以有多个,mv命令将各参数指定的源 ⽂件均移⾄⽬标⽬录中。
常用选项:
- -f:force强制的意思,如果⽬标⽂件已经存在,不会询问⽽直接覆盖
- -i:若⽬标⽂件(destination)已经存在时,就会询问是否覆盖!
举例:
# 更改名称[whb@bite-alicloud test]$ touch myfile.txt
[whb@bite-alicloud test]$ ll
total 0-rw-rw-r-- 1 whb whb 0 Jan 11 15:56 myfile.txt
[whb@bite-alicloud test]$ mv myfile.txt yourfile.txt
[whb@bite-alicloud test]$ ll
total 0-rw-rw-r-- 1 whb whb 0 Jan 11 15:56 yourfile.txt# 如果当前路径存在同名⽂件,改名即覆盖
[whb@bite-alicloud test]$ touch myfile.txt
[whb@bite-alicloud test]$ ll
total 0-rw-rw-r-- 1 whb whb 0 Jan 11 15:58 myfile.txt
-rw-rw-r-- 1 whb whb 0 Jan 11 15:57 yourfile.txt
[whb@bite-alicloud test]$ mv yourfile.txt myfile.txt
[whb@bite-alicloud test]$ ll
total 0
-rw-rw-r-- 1 whb whb 0 Jan 11 15:57 myfile.txt# 如果当前路径存在同名⽂件,改名前可以添加i选项,让系统提出警告供⽤⼾做选择
[whb@bite-alicloud test]$ touch yourfile.txt
[whb@bite-alicloud test]$ ll
total 0-rw-rw-r-- 1 whb whb 0 Jan 11 15:57 myfile.txt
-rw-rw-r-- 1 whb whb 0 Jan 11 15:59 yourfile.txt
[whb@bite-alicloud test]$ mv -i yourfile.txt myfile.txt
mv: overwrite ‘myfile.txt’? y
[whb@bite-alicloud test]$ ll
total 0
-rw-rw-r-- 1 whb whb 0 Jan 11 15:59 myfile.txt# mv整个⽬录
[whb@bite-alicloud test]$ touch myfile.txt
[whb@bite-alicloud test]$ mkdir temp
[whb@bite-alicloud test]$ ll
total 4-rw-rw-r-- 1 whb whb
0 Jan 11 17:56 myfile.txt
drwxrwxr-x 2 whb whb 4096 Jan 11 17:56 temp
[whb@bite-alicloud test]$ mv myfile.txt temp
[whb@bite-alicloud test]$ ls
temp
[whb@bite-alicloud test]$ mv temp ../
[whb@bite-alicloud test]$ ls
[whb@bite-alicloud test]$ ls -d ../temp
../temp
cat命令
语法:cat [选项] [文件]
功能:查看目标文件的内容
常用选项:
- -b对⾮空输出⾏编号
- -n对输出的所有⾏编号
- -s不输出多⾏空⾏
cat 后面什么都不跟,默认从键盘读取内容,ctrl+C结束进程
cat < test.txt 读取指定文件中的内容
输入重定向,本来默认从键盘读取数据,现在更改为从指定文件读取数据
cat 正序打印,tac 逆序打印
cat命令一般只针对短文件,长文件会刷屏
举例:
# 命令⾏构建多⾏⽂本
[whb@bite-alicloud test]$ cnt=0; while [ $cnt -le 20 ]; do echo "hello bite";
let cnt++; done > temp.txt# 测试cat基本命令[whb@bite-alicloud test]$ cat temp.txt
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
# cat 输出携带⾏号[whb@bite-alicloud test]$ cat -b temp.txt 1 hello bite2 hello bite3 hello bite4 hello bite5 hello bite6 hello bite7 hello bite...
# 修改temp.txt,使其携带多⾏空⾏
[whb@bite-alicloud test]$ vim temp.txt# 测试 -b 对⾮空输出⾏编号
[whb@bite-alicloud test]$ cat -b temp.txt 1 hello bite2 hello bite3 hello bite4 hello bite5 hello bite6 hello bite7 hello bite...# 测试-n 对输出的所有⾏编号
[whb@bite-alicloud test]$ cat -n temp.txt 1 hello bite2 hello bite3 hello bite4 5 6 7 hello bite8 hello bite9 10 hello bite11 hello bite...
#
测试-s
不输出多⾏空⾏,多⾏空⾏压缩成为⼀⾏[whb@bite-alicloud test]$ cat -s temp.txt
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
hello bite
...
echo命令
echo 默认从键盘读入数据,写入显示器,echo每次写入都会有换行符,不想带换行符,可以使用printf 进行写入
echo “hello world” ->向显示器文件写入hello world
echo "hello world">test.txt 向指定文件(test.txt)写入hello world(如果指定文件不存在,就新建文件)
> 输出重定向(显示器转到指定文件)每一次都是全新的写入,写入时会清空原来的内容,再写入新的内容。
> new.txt 文件不存在可以新建空文件(和touch一样),文件存在则可以清空文件(重定向)
echo "aaaa" >> test.txt 在 test.txt 中继续写入“aaaa”
>>追加重定向,则不会重定向,会继续写入数据。本质也是写入文件
ctrl+R 查找历史命令,只需输入片段
more命令
语法:more [选项]
功能:more命令,功能类似cat
常用选项:
- -n指定输出行数
- q退出more
more也是查看命令,区别于cat,more大文件时不会一直刷屏,打满一屏会自动停止。
举例:
#命令行输出多行文本
[whb@bite-alicloud test]$ cnt=0; while [ $cnt -le 2000 ]; do echo "hello
bite"; let cnt++; done > temp.txt
# -n 指定输出⾏数[whb@bite-alicloud test]$ 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%)
less命令
- less工具也是对文件或其它输出进行分页显示的⼯具,应该说是linux正统查看文件内容的工具, 功能极其强大
- less的用法比起more更加的有弹性,在more的时候,我们并没有办法向前面翻,只能往后面看
- 但若使用了less时,就可以使用[pageup][pagedown]等按键的功能来往前往后翻看文件,更容易用来查看⼀个文件的内容
- 除此之外,在less里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。可以上下翻页,滑动,搜索
语法:less [参数] 文件
功能:less与more类似,但是用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
选项:
- -i 忽略搜索时的⼤⼩写
- -N 显⽰每⾏的⾏号
- /字符串:向下搜索“字符串”的功能
- ?字符串:向上搜索“字符串”的功能
- n:重复前⼀个搜索(与/或?有关)
- N:反向重复前⼀个搜索(与/或?有关)
- q:quit
举例:
# 命令⾏输出多⾏⽂本[whb@bite-alicloud test]$ cnt=0; while [ $cnt -le 2000 ]; do echo "hello
$cnt"; let cnt++; done > temp.txt# 测试搜索和-N等功能
[whb@bite-alicloud test]$ less -N temp.txt 1 hello 02 hello 13 hello 24 hello 35 hello 46 hello 57 hello 68 hello 79 hello 810 hello 911 hello 1012 hello 1113 hello 1214 hello 13...
# 其他选项也可以直接测试
head命令
head与tail就像它的名字⼀样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head⽤用来显示档案的开头至标准输出中,而tail想当然就是看档案的结尾。
语法:head [参数]...[文件]...
功能:head用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
选项:
-n <行数> 显示的行数
举例:
[whb@bite-alicloud test]$ head temp.txt hello 0hello 1hello 2hello 3hello 4hello 5hello 6hello 7hello 8hello 9
[whb@bite-alicloud test]$ head -5 temp.txt hello 0hello 1hello 2hello 3hello 4
tail命令
tail 命令从指定点开始将⽂件写到标准输出.使⽤tail命令的-f选项可以⽅便的查阅正在改变的⽇志⽂ 件,tail-f filename会把filename⾥最尾部的内容显⽰在屏幕上,并且不断刷新,使你看到最新的⽂件内容
语法:tail 必要参数 [文件]
功能:⽤于显⽰指定⽂件末尾内容,不指定⽂件时,作为输⼊信息进⾏处理。常⽤查看⽇志⽂件。
选项:
- -f 循环读取
- -n <行数> 显示行数
举例:(简单讲解重定向和管道)
# 基本功能演⽰
[whb@bite-alicloud test]$ tail temp.txt
hello 1991
hello 1992
hello 1993
hello 1994
hello 1995
hello 1996
hello 1997
hello 1998
hello 1999
hello 2000
[whb@bite-alicloud test]$ tail -3 temp.txt
hello 1998
hello 1999
hello 2000
模拟动态日志查看功能
# 综合问题
# 如何显⽰⽂件的[180,200]⾏的内容[whb@bite-alicloud test]$ head -200 temp.txt | tail -20hello 180hello 181hello 182hello 183hello 184hello 185hello 186hello 187hello 188hello 189hello 190hello 191hello 192hello 193hello 194hello 195hello 196hello 197hello 198hello 199
| 管道命令 左指令 | 右指令 左指令执行的结果,右指令紧接着执行
head -5020 log.txt | tail -21 取5000到5020的数据
head -5020 log.txt | tail -21 | cat | tac |wc -l 管道可以级联多个命令
date指令
指定格式显⽰时间: date +%Y:%m:%d
⽤法: date [OPTION]... [+FORMAT]
1. 在显⽰⽅⾯,使⽤者可以设定欲显⽰的格式,格式设定为⼀个加号后接数个标记,其中常⽤的标记列表如下
- %H:⼩时(00..23)
- %M:分钟(00..59)
- %S:秒(00..61)
- %X:相当于%H:%M:%S
- %d:⽇(01..31)
- %m:⽉份(01..12)
- %Y:完整年份(0000..9999)
- %F:相当于%Y-%m-%d
2.在设定时间⽅⾯
- date-s//设置当前时间,只有root权限才能设置,其他只能查看。
- date-s20080523//设置成20080523,这样会把具体时间设置成空00:00:00
- date-s01:01:01//设置具体时间,不会对⽇期做更改
- date-s“01:01:012008-05-23″//这样可以设置全部时间
- date-s“01:01:0120080523″//这样可以设置全部时间
- date-s“2008-05-2301:01:01″//这样可以设置全部时间
- date-s“2008052301:01:01″//这样可以设置全部时间
3. 时间戳
- 时间->时间戳:date+%s
- 时间戳->时间:date-d@1508749502
- Unix时间戳(英⽂为Unixepoch,Unixtime,POSIXtime或Unixtimestamp)是从1970年1⽉1 ⽇(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒
4.举例
# 显⽰常规时间[whb@bite-alicloud test]$ date
Wed Jan 11 18:22:50 CST 2023
[whb@bite-alicloud test]$ date +%Y/%m/%d
2023/01/11
[whb@bite-alicloud test]$ date +%Y/%m/%d-%H:%M:%S
2023/01/11-18:23:20# 显⽰时间戳
[whb@bite-alicloud test]$ date +%s
1673432636# 时间戳转成可视时间[whb@bite-alicloud test]$ date +%Y/%m/%d-%H:%M:%S -d @0
1970/01/01-08:00:00
[whb@bite-alicloud test]$ date +%Y/%m/%d-%H:%M:%S -d @100000
1970/01/02-11:46:40
[whb@bite-alicloud test]$ date +%Y/%m/%d-%H:%M:%S -d @1000000000
2001/09/09-09:46:40
cal指令
cal命令可以⽤来显⽰公历(阳历)⽇历。公历是现在国际通⽤的历法,⼜称格列历,通称阳历。“阳 历”⼜名“太阳历”,系以地球绕⾏太阳⼀周为⼀年,为西⽅各国所通⽤,故⼜名“西历”。
命令格式: cal 参数 [ 年份 ]
功能:⽤于查看⽇历等时间信息,如只有⼀个参数,则表⽰年份(1-9999),如有两个参数,则表⽰⽉份 和年份
常⽤选项:
- -3显⽰系统前⼀个⽉,当前⽉,下⼀个⽉的⽉历
- -j 显⽰在当年中的第⼏天(⼀年⽇期按天算,从1⽉1号算起,默认显⽰当前⽉在⼀年中的天数)
- -y 显⽰当前年份的⽇历
#
常规样例[whb@bite-alicloud test]$ calJanuary 2023
Su Mo Tu We Th Fr Sa1 2 3 4 5 6 78 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
[whb@bite-alicloud test]$ cal 19491949 January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa1 1 2 3 4 5 1 2 3 4 52 3 4 5 6 7 8 6 7 8 9 10 11 12 6 7 8 9 10 11 129 10 11 12 13 14 15 13 14 15 16 17 18 19 13 14 15 16 17 18 1916 17 18 19 20 21 22 20 21 22 23 24 25 26 20 21 22 23 24 25 2623 24 25 26 27 28 29 27 28 27 28 29 30 31
...[whb@bite-alicloud test]$ cal -3December 2022 January 2023 February 2023
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa1 2 3 1 2 3 4 5 6 7 1 2 3 44 5 6 7 8 9 10 8 9 10 11 12 13 14 5 6 7 8 9 10 11
11 12 13 14 15 16 17 15 16 17 18 19 20 21 12 13 14 15 16 17 18
18 19 20 21 22 23 24 22 23 24 25 26 27 28 19 20 21 22 23 24 25
25 26 27 28 29 30 31 29 30 31 26 27 28
find指令
- Linux下find命令在⽬录结构中搜索⽂件,并执⾏指定的操作。
- Linux下find命令提供了相当多的查找条件,功能很强⼤。由于find具有强⼤的功能,所以它的选 项也很多,其中⼤部分选项都值得我们花时间来了解⼀下。
- 即使系统中含有⽹络⽂件系统(NFS),find命令在该⽂件系统中同样有效,只你具有相应的权限。
- 在运⾏⼀个⾮常消耗资源的find命令时,很多⼈都倾向于把它放在后台执⾏,因为遍历⼀个⼤的 ⽂件系统可能会花费很⻓的时间(这⾥是指30G字节以上的⽂件系统)。
语法: find pathname -options
功能:⽤于在⽂件树中查找⽂件,并作出相应的处理(可能访问磁盘)
常用选项
- -name 按照⽂件名查找⽂件
- 其他选项需要在查,这个命令其实⽐较复杂
# 在指定路径下搜索执⾏名称的⽂件
[whb@bite-alicloud test]$ find ~ -name test.c
/home/whb/test_code/old_code/test.c
/home/whb/test_code/test.c
...
find 路径 -name 文件名
find 路径 -name 文件名1 -o -name 文件名2 查找文件1或者文件2
-a and
which命令
功能:在Linux中搜索指定指令
举例:
[whb@bite-alicloud test]$ which ls
alias ls='ls --color=auto'
/usr/bin/ls
[whb@bite-alicloud test]$ which pwd
/usr/bin/pwd
少年没有乌托邦,心向远方自明朗!
如果这个博客对你有帮助,给博主一个免费的点赞就是最大的帮助❤
欢迎各位点赞,收藏和关注哦❤
如果有疑问或有不同见解,欢迎在评论区留言❤
后续会继续更新大连理工大学相关课程和有关Linux的内容和示例
点赞加关注,学习不迷路,好,本次的学习就到这里啦!!!