当前位置: 首页 > news >正文

Linux--基础命令3

大家好,今天我们继续学习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

功能:

  1. 视mv命令中第⼆个参数类型的不同(是⽬标⽂件还是⽬标⽬录),mv命令将⽂件重命名或将其 移⾄⼀个新的⽬录中。
  2. 当第⼆个参数类型是⽂件时,mv命令完成⽂件重命名,此时,源⽂件只能有⼀个(也可以是源⽬ 录名),它将所给的源⽂件或⽬录重命名为给定的⽬标⽂件名。
  3.  当第⼆个参数是已存在的⽬录名称时,源⽂件或⽬录参数可以有多个,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 bite
    2        hello bite
    3        hello bite
    4        hello bite
    5        hello bite
    6        hello bite
    7        hello bite
    ...
# 修改temp.txt,使其携带多⾏空⾏
[whb@bite-alicloud test]$ vim temp.txt

# 测试 -b 对⾮空输出⾏编号
[whb@bite-alicloud test]$ cat -b temp.txt 
    1        hello bite
    2        hello bite
    3        hello bite


    
    4        hello bite
    5        hello bite
    
    6        hello bite
    7        hello bite
    ...

# 测试-n 对输出的所有⾏编号
[whb@bite-alicloud test]$ cat -n temp.txt 
    1        hello bite
    2        hello bite
    3        hello bite
    4        
    5        
    6         
    7        hello bite
    8        hello bite
    9        
    10       hello bite
    11       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 0
     2 hello 1
     3 hello 2
     4 hello 3
     5 hello 4
     6 hello 5
     7 hello 6
     8 hello 7
     9 hello 8
    10 hello 9
    11 hello 10
    12 hello 11
    13 hello 12
    14 hello 13
 ...
# 其他选项也可以直接测试

head命令

head与tail就像它的名字⼀样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head⽤用来显示档案的开头至标准输出中,而tail想当然就是看档案的结尾。

语法:head [参数]...[文件]...

功能:head用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。

选项:

-n <行数> 显示的行数

举例:

[whb@bite-alicloud test]$ head temp.txt 
 hello 0
 hello 1
 hello 2
 hello 3
 hello 4
 hello 5
 hello 6
 hello 7
 hello 8
 hello 9
[whb@bite-alicloud test]$ head -5 temp.txt 
 hello 0
 hello 1
 hello 2
 hello 3
 hello 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 -20
 hello 180
 hello 181
 hello 182
 hello 183
 hello 184
 hello 185
 hello 186
 hello 187
 hello 188
 hello 189
 hello 190
 hello 191
 hello 192
 hello 193
 hello 194
 hello 195
 hello 196
 hello 197
 hello 198
 hello 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]$ cal
    January 2023    
Su Mo Tu We Th Fr Sa
 1  2  3  4  5  6  7
 8  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 1949
                               1949        
        January               February                 March       
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
                   1          1  2  3  4  5          1  2  3  4  5
 2  3  4  5  6  7  8    6  7  8  9 10 11 12    6  7  8  9 10 11 12
 9 10 11 12 13 14 15   13 14 15 16 17 18 19   13 14 15 16 17 18 19
 16 17 18 19 20 21 22  20 21 22 23 24 25 26   20 21 22 23 24 25 26
 23 24 25 26 27 28 29   27 28                  27 28 29 30 31
...
 [whb@bite-alicloud test]$ cal -3
 December 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 Sa
            1  2  3   1  2  3  4  5  6  7            1  2  3  4
 4  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的内容和示例
点赞加关注,学习不迷路,好,本次的学习就到这里啦!!!

相关文章:

  • 解决docker认证问题 failed to authorize: failed to fetch oauth token
  • 【Office-Word】如何自动生成中英文目录
  • 决策树(Decision Tree):机器学习中的经典算法
  • 用vscode开发微信云函数一键打包cloudfunctions(vite创建)
  • for循环相关(循环的过程中对数据进行删除会踩坑)
  • wxWidgets长图浏览控件实现,不区分图片类型加载
  • 低空监视-无人机专用ADS-B应答机
  • CSS设置文字渐变色样式(附带动画效果)
  • Vue.js事件处理
  • 利用python开发自己的小工具
  • c++线程池的实现
  • 计算机毕业设计SpringBoot+Vue.js客户关系管理系统CRM(源码+文档+PPT+讲解)
  • 【区块链 + 绿色低碳】郑州数据交易中心双碳数据服务专区 | FISCO BCOS 应用案例
  • HashMap 的底层结构详解:原理、put和get示例
  • PMP项目管理—资源管理篇—3.获取资源
  • 文本处理Bert面试内容整理-BERT的基本原理是什么?
  • 03.购物单
  • IO进程思维导图和练习题
  • 防火墙虚拟系统
  • DeepSeek:大模型领域的创新力量
  • 怎样做影视网站不侵权/珠海网站建设制作
  • 建德建设局官方网站/外链工具xg
  • 外贸公司网站建站/长沙seo行者seo09
  • 做文字图片的网站/网络营销有哪些模式
  • 数码公司网站建设的意义/网站怎么才能被百度收录
  • css网站导航模板/百度投诉中心热线