【Linux学习笔记】Linux基本指令及其发展史分析

【Linux学习笔记】Linux基本指令及其发展史分析

🔥个人主页大白的编程日记

🔥专栏Linux学习笔记


文章目录

  • 【Linux学习笔记】Linux基本指令及其发展史分析
    • 前言
    • 一. Linux发展史
      • 1.1 UNIX发展的历史
      • 1.2 Linux发展历史
      • 1.3 开源
      • 1.4 Linux的应用
    • 二. Linux基本指令
      • 2.1 ls 指令
      • 2.2 pwd 命令
      • 2.3 cd 指令
      • 2.4 touch 指令
      • 2.5 mkdir 指令
      • 2.6 rmdir 指令 && rm 指令
      • 2.7 man 指令
      • 2.8 cp 指令
    • 后言

前言

哈喽,各位小伙伴大家好!C++篇章的知识我们已全部讲解完毕。今天开始我们开启全新的篇章——Linux操作系统 今天我们讲的是Linux基本指令及其分析。话不多说,我们进入正题!向大厂冲锋
在这里插入图片描述

一. Linux发展史

我们先来聊一下操作系统的发展历史

1.1 UNIX发展的历史

UNIX是现代操作系统的重要奠基者之一 。
现在的Linux系统 安卓系统 鸿蒙系统 ios系统都受到UNIX系统的影响。

  • 1968年,⼀些来自通用电器公司、贝尔实验室和麻省理工学院的研究人员开发了⼀个名叫Multics的特殊操作系统。Multics在多任务文件管理和用户连接中综合了许多新概念。
  • 1969−1970年,AT&T的贝尔实验室研究人员Ken Tompson和Dennis Ritchie,在采用很多Multics特点的基础上开发了UINX系统。它运行在小型机上,满足了系统对科研环境的要求。从产生开始,UNIX就是⼀个有价值的、高效的、多用户和多任务的操作系统。
  • UNIX从满足个人的设计需求开始,逐步成长为由许多不同开发商所支持的标准软件产品。

1.2 Linux发展历史

在Unix的基础上就衍生出了Linux操作系统。

像现在的centos ubuntu 红旗等都是linux的内核。

  • 1991年10月5日,赫尔辛基大学的⼀名研究生Linus Benedict Torvalds在⼀个Usenet新闻组(comp.os.minix)中宣布他编制出了⼀种类似UNIX的⼩操作系统,叫Linux。新的操作系统是受到另⼀个UNIX的小操作系统⸺Minix的启发,该系统是由⼀名叫Andrew S Tanenbaum的教师开发的。读者也许猜想所发布的这个系统应该是Linux的0.01版本,实际上不是这样。真正的Linux 0.01版本并没有被发布,原因是0.01版本不实用。Linus仅仅在第⼀个Linux的FTP站点
    (ftp://nic.funet.fi)上提供过这个版本的的源代码。
  • Torvalds于10月5日发布的这个Linux版本被称为0.02版,它能够运行GNU Bourne AgainShell(bash)和GNU的C编译程序(gcc)以及为数不多的其它语言。Torvalds绝对没有想到他设想的⼀种能够针对高级业余爱好者和黑客们的操作系统已经产生,这就是人们所称的Linux。;
  • Linux发布时的版本是0.02,后来⼜有0.03版,然后又跳到0.10版。因为世界各地越来越多的程序员都开始开发Linux,它已经达到0.95版。这就意味着正式公布1.0版本的时间已经为期不远了。正式的1.0版本是在1994年公布的

1.3 开源

  • Linux是⼀种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布,之后,在加上用户空间的应用程序之后,就成为了Linux操作系统。严格来讲,Linux只是操作系统内核本身,但通常采用“Linux内核”来表达该意思。而Linux则常用来指基于Linux内核的完整操作系统,它包括GUI组件和许多其他实用工具。
  • GNU通用公共许可协议(GNU General Public License,简称GNU GPL或GPL),是⼀个广泛被使用的自由软件许可协议条款,最初由理查德斯托曼为GNU计划而撰写,GPL给予了计算机程序自由软件的定义, 任何基于GPL软件开发衍生的产品在发布时必须采目GPL许可证方式,且必须公开源代码
  • Linux是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。随着Linux操作系统⻜速发展,各种集成在Linux上的开源软件和实用工具也得到了应⽤和普及,因此,Linux也成为了开源软件的代名词。

1.4 Linux的应用

  • Linux在服务器领域的发展
    随着开源软件在世界范围内影响力日益增强,Linux服务器操作系统在整个服务器操作系统市场格局中占据了越来越多的市场份额,已经形成了大规模市场应用的局面。并且保持着快速的增长率。尤其在政府、金融、农业、交通、电信等国家关键领域。此外,考虑到Linux的快速成长性以及国家相关政策的扶持力度,Linux服务器产品⼀定能够冲击更大的服务器市场。据权威部们统计,目前Linux在服务器领域已经占据75%的市场份额,同时,Linux在服务器市场的迅速崛起,已经引起全球IT产业的高度关注,并以强劲的势头成为服务器操作系统领域中的中坚力量。

  • Linux在桌面领域的发展
    近年来,特别在国内市场,Linux桌面操作系统的发展趋势非常迅猛。国内如中标麒麟Linux、红旗Linux、深度Linux等系统软件厂商都推出的Linux桌面操作系统,目前已经在政府、企业、OEM等领域得到了广泛应用。另外SUSE、Ubuntu也相继推出了基于Linux的桌面系统,特别是Ubuntu Linux,已经积累了大量社区用户。但是,从系统的整体功能、性能来看,Linux桌面系统与Windows系列相比还有⼀定的差距,主要表现在系统易用性、系统管理、软硬件兼容性、软件的丰富程度等方面。

  • Linux在移动嵌入式领域的发展
    Linux的低成本、强⼤的定制功能以及良好的移植性能,使得Linux在嵌入式系统方面也得到广泛应用,目前Linux以广泛应用于手机、平板电脑、路由器、电视和电⼦游戏机等领域。在移动设备上广泛使用的Android操作系统就是创建在Linux内核之上的。⽬前,Android已经成为全球最流行的智能手机操作系统,据2015年权威部们最新统计,Android操作系统的全球市场份额已达84.6%。
    此外,思科在网络防火墙和路由器也使用了定制的Linux,阿里云也开发了⼀套基于Linux的操作系统“YunOS”,可用于智能手机、平板电脑和网络电视;常剪的数字视频录像机、舞台灯光控制系统等都在逐渐采用定制版本的Linux来实现,而这⼀切均归功与Linux与开源的力量。

  • Linux在云计算/大数据领域的发展
    互联网产业的迅猛发展,促使云计算、⼤数据产业的形成并快速发展,云计算、大数据作为⼀个基于开源软件的平台,Linux占据了核心优势;据Linux基金会的研究,86%的企业已经使用Linux操作系统进行云计算、⼤数据平台的构建,目前,Linux已开始取代Unix成为最受睐的云计算、大数据平台操作系统。

二. Linux基本指令

同时每个命令有多个选项,我们需要关注常用的选项,其他了解即可。

2.1 ls 指令

语法: ls [选项] [目录或文件]
功能对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:

  • a 列出目录下的所有文件,包括以 . 开头的隐含文件。
  • -d 将目录像文件⼀样显示,而不是显示其下的文件。 如:ls ‒d 指定目录
  • -i 输出文件的 i 节点的索引信息。 如 ls ‒ai 指定文件
  • -k 以 k 字节的形式表示文件的大小。ls ‒alk 指定文件
  • -l 列出文件的详细信息
  • -n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
  • -F 在每个文件名后附上⼀个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
  • -r 对目录反向排序
  • -t 以时间排序
  • -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
  • -R 列出所有子目录下的文件。(递归)
  • -1 ⼀行只输出⼀个文件。
[qcj@bite - alicloud test]$ ls
dir file.txt
[qcj@bite - alicloud test]$ ls - a
. ..dir file.txt
[qcj@bite - alicloud test]$ ls - a - l
total 12
drwxrwxr - x 3 qcj qcj 4096 Jan 11 15:01 .
drwx------ 22 qcj qcj 4096 Jan 11 14 : 21 ..
drwxrwxr - x 2 qcj qcj 4096 Jan 11 14 : 22 dir
- rw - rw - r-- 1 qcj qcj 0 Jan 11 14 : 22 file.txt
[qcj@bite - alicloud test]$ ls - a - l - F
total 12
drwxrwxr - x 3 qcj qcj 4096 Jan 11 15 : 01 . /
drwx------ 22 qcj qcj 4096 Jan 11 14 : 21 .. /
drwxrwxr - x 2 qcj qcj 4096 Jan 11 14 : 22 dir /
-rw - rw - r-- 1 qcj qcj 0 Jan 11 14 : 22 file.txt
[qcj@bite - alicloud test]$ ls - alFn
total 12
drwxrwxr - x 3 1003 1003 4096 Jan 11 15 : 01 . /
drwx------ 22 1003 1003 4096 Jan 11 14 : 21 .. /
drwxrwxr - x 2 1003 1003 4096 Jan 11 14 : 22 dir /
-rw - rw - r-- 1 1003 1003 0 Jan 11 14 : 22 file.txt

2.2 pwd 命令

语法: pwd
功能: 显示用户当前所在的目录
常用选项:

root@hcss-ecs-8ddb:~/Linux指令# pwd
/root/Linux指令

2.3 cd 指令

Linux理论知识:路径的认识

  • Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件
  • 其中普通文件一定是目录树的叶子节点
  • 目录可能是叶子(空目录), 也可能是路上节点
  • 理解路径存在的意义 : 树状组织方式,都是为了保证快速定位查找到指定的文件,而定位文件就需要具有唯一性的方案来进行定位文件。其中任何一个节点,都只有一个父节点,所以,从根目录开始,定位指定文件,路径具有唯一性
  • 绝对路径:一般从 / 开始,不依赖其他目录的定位文件的方式
  • 相对路径:相对于当前用户所处目录,定位文件的路径方式
  • 绝对路径一般不会随着用户的路径变化而丧失唯一性,一般在特定服务的配置文件中经常被使用
  • 相对路径因为它的便捷性,一般在命令行中使用较多


语法: cd 目录名
功能: 改变工作目录。将当前工作目录改变到指定的目录

# 返回上级⽬录
[qcj@bite - alicloud ~]$ pwd
/ home / qcj
[qcj@bite - alicloud ~]$ cd ..
[qcj@bite - alicloud home]$ pwd
/ home
# 绝对路径定位⽬录或者⽂件
[qcj@bite - alicloud home]$ pwd
/ home
[qcj@bite - alicloud home]$ cd / home / qcj / test
[qcj@bite - alicloud test]$ pwd
/ home / qcj / test
# 相对路径定位⽬录或者⽂件
[qcj@bite - alicloud test]$ pwd
/ home / qcj / test
[qcj@bite - alicloud test]$ cd .. / temp /
[qcj@bite - alicloud temp]$ pwd
/ home / qcj / temp
# 每⼀次新建⼀个⽤⼾都会在 / home⽬录下为新⽤⼾创建新的⼯作⽬录,⽬录以新⽤⼾名称命名
# root⽤⼾在安装操作系统的时候,就已经内置了⼯作⽬录: / root
[qcj@bite - alicloud temp]$ ls / home
bss gaobo luojie qcj wudu
# 快速进⼊⾃⼰的家⽬录
[qcj@bite - alicloud test]$ whoami
qcj
[qcj@bite - alicloud test]$ pwd
/ home / qcj / test
[qcj@bite - alicloud test]$ cd ~
[qcj@bite - alicloud ~]$ pwd
/ home / qcj
# 返回到最近访问⽬录
[qcj@bite - alicloud ~]$ pwd # 当前在 / home / qcj⽬录下
/ home / qcj
[qcj@bite - alicloud ~]$ cd / # 进⼊ / ⽬录
[qcj@bite - alicloud / ]$ pwd
/
[qcj@bite - alicloud / ]$ cd - # 直接可以回退到最近⼀次所处的⽬录: / home / qcj
/ home / qcj
[qcj@bite - alicloud ~]$ pwd
/ home / qcj
[qcj@bite - alicloud ~]$ cd - # 直接可以回退到最近⼀次所处的⽬录 : /
/
[qcj@bite - alicloud / ]$ pwd
/
[qcj@bite - alicloud / ]$ cd - # 同上
/ home / qcj
[qcj@bite - alicloud ~]$ pwd
/ home / qcj

2.4 touch 指令

Linux理论知识:文件类型的认识
语法: touch [选项]… 文件…
功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建⼀个不存在的文件。
常用选项:

  • -a : change only the access time
  • -c : change only the modification time
# 创建普通⽂件
[qcj@bite - alicloud test]$ ls
dir file.txt
[qcj@bite - alicloud test]$ touch newFile.txt
[qcj@bite - alicloud test]$ ls
dir file.txt newFile.txt
# 查看⽂件时间
[qcj@bite - alicloud test]$ stat newFile.txt
File : ‘newFile.txt’
Size : 0 Blocks : 0 IO Block : 4096 regular empty
file
Device : fd01h / 64769d Inode : 1844719 Links : 1
Access : (0664 / -rw - rw - r--) Uid : (1003 / qcj) Gid : (1003 / qcj)
Access : 2023 - 01 - 11 15 : 06 : 45.832787572 + 0800
Modify : 2023 - 01 - 11 15 : 06 : 45.832787572 + 0800
Change : 2023 - 01 - 11 15 : 06 : 45.832787572 + 0800
Birth : -
# 修改⽂件access时间
[qcj@bite - alicloud test]$ touch - a newFile.txt
[qcj@bite - alicloud test]$ stat newFile.txt
File : ‘newFile.txt’
Size : 0 Blocks : 0 IO Block : 4096 regular empty
file
Device : fd01h / 64769d Inode : 1844719 Links : 1
Access : (0664 / -rw - rw - r--) Uid : (1003 / qcj) Gid : (1003 / qcj)
Access : 2023 - 01 - 11 15 : 07 : 00.062846804 + 0800
Modify : 2023 - 01 - 11 15 : 06 : 45.832787572 + 0800
Change : 2023 - 01 - 11 15 : 07 : 00.062846804 + 0800 # 该时间为何会变化?
Birth : -
# 修改⽂件Modify时间
[qcj@bite - alicloud test]$ touch - m newFile.txt
[qcj@bite - alicloud test]$ stat newFile.txt
File : ‘newFile.txt’
Size : 0 Blocks : 0 IO Block : 4096 regular empty
file
Device : fd01h / 64769d Inode : 1844719 Links : 1
Access : (0664 / -rw - rw - r--) Uid : (1003 / qcj) Gid : (1003 / qcj)
Access : 2023 - 01 - 11 15 : 07 : 00.062846804 + 0800
Modify : 2023 - 01 - 11 15 : 09 : 19.428426903 + 0800
Change : 2023 - 01 - 11 15 : 09 : 19.428426903 + 0800
Birth : -
# 更多讲解,会在基础IO部分统⼀在说

2.5 mkdir 指令

语法: mkdir [选项] dirname…
功能: 在当前目录下创建⼀个名为 “dirname”的目录
常用选项:
• -p/–parents: 可以是⼀个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即⼀次可以建立多个目录

# 创建普通空⽬录
[qcj@bite - alicloud test]$ ls - l
total 4
drwxrwxr - x 2 qcj qcj 4096 Jan 11 14:22 dir
- rw - rw - r-- 1 qcj qcj 0 Jan 11 14 : 22 file.txt
- rw - rw - r-- 1 qcj qcj 0 Jan 11 15 : 09 newFile.txt
[qcj@bite - alicloud test]$ mkdir mydir
[qcj@bite - alicloud test]$ ls - l
total 8
drwxrwxr - x 2 qcj qcj 4096 Jan 11 14:22 dir
- rw - rw - r-- 1 qcj qcj 0 Jan 11 14 : 22 file.txt
drwxrwxr - x 2 qcj qcj 4096 Jan 11 15 : 15 mydir
- rw - rw - r-- 1 qcj qcj 0 Jan 11 15 : 09 newFile.txt
# 递归建⽴多个⽬录,创建指定路径
[qcj@bite - alicloud test]$ mkdir - p path1 / path2 / path3 / path4
[qcj@bite - alicloud test]$ ls - l
total 12
drwxrwxr - x 2 qcj qcj 4096 Jan 11 14:22 dir
- rw - rw - r-- 1 qcj qcj 0 Jan 11 14 : 22 file.txt
drwxrwxr - x 2 qcj qcj 4096 Jan 11 15 : 15 mydir
- rw - rw - r-- 1 qcj qcj 0 Jan 11 15 : 09 newFile.txt
drwxrwxr - x 3 qcj qcj 4096 Jan 11 15:16 path1
[qcj@bite - alicloud test]$ tree path1
path1
└── path2
└── path3
└── path4
# tree命令是⼀个递归以树状结构显⽰指定⽬录的命令,如果没有安装
# 如果当前⽤⼾是root: yum install - y tree(因为现在开始⽤的都是root,所以推荐这个⽤法)
# 如果当前⽤⼾是普通⽤⼾ : sudo yum install - y tree(后⾯讲讲完vim,⼤家才能将⾃⼰添加到系统信任列表中,暂时普通⽤⼾⽆法使⽤sudo)

2.6 rmdir 指令 && rm 指令

rmdir是⼀个与mkdir相对应的命令,mkdir是建立目录,而rmdir是删除命令
语法: rmdir [-p] [dirName]
适用对象: 具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:

  • p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录⼀起删除。
# 删除空⽬录
[qcj@bite - alicloud test]$ ll
total 12
drwxrwxr - x 2 qcj qcj 4096 Jan 11 14:22 dir
- rw - rw - r-- 1 qcj qcj 0 Jan 11 14 : 22 file.txt
drwxrwxr - x 2 qcj qcj 4096 Jan 11 15 : 15 mydir
- rw - rw - r-- 1 qcj qcj 0 Jan 11 15 : 09 newFile.txt
drwxrwxr - x 3 qcj qcj 4096 Jan 11 15:16 path1
[qcj@bite - alicloud test]$ tree mydir /
mydir /
0 directories, 0 files
[qcj@bite - alicloud test]$ rmdir mydir
[qcj@bite - alicloud test]$ ll
total 8
drwxrwxr - x 2 qcj qcj 4096 Jan 11 14:22 dir
- rw - rw - r-- 1 qcj qcj 0 Jan 11 14 : 22 file.txt
- rw - rw - r-- 1 qcj qcj 0 Jan 11 15 : 09 newFile.txt
drwxrwxr - x 3 qcj qcj 4096 Jan 11 15:16 path1
# 删除路径
[qcj@bite - alicloud test]$ tree path1
path1
└── path2
└── path3
└── path4
3 directories, 0 files
[qcj@bite - alicloud test]$ rmdir - p path1 / path2 / path3 / path4
[qcj@bite - alicloud test]$ ll
total 4
drwxrwxr - x 2 qcj qcj 4096 Jan 11 14:22 dir
- rw - rw - r-- 1 qcj qcj 0 Jan 11 14 : 22 file.txt
- rw - rw - r-- 1 qcj qcj 0 Jan 11 15 : 09 newFile.txt
# 指定路径中有不为空的路径,便⽆法删除
[qcj@bite - alicloud test]$ rmdir - p path1 / path2 / path3
rmdir : failed to remove ‘path1 / path2 / path3’ : Directory not empty
[qcj@bite - alicloud test]$ touch path1 / myfile.txt
[qcj@bite - alicloud test]$ touch path1 / path2 / myfile.txt
[qcj@bite - alicloud test]$ tree path1 /
path1 /
├── myfile.txt
└── path2
├── myfile.txt
└── path3
└── path4
3 directories, 2 files
[qcj@bite - alicloud test]$ rmdir - p path1 / path2 / path3 / path4
rmdir : failed to remove directory ‘path1 / path2’ : Directory not empty

rm 命令可以同时删除文件或目录
语法: rm [-f-i-r-v] [dirName/dir]
适用对象: 所有使用者
功能: 删除文件或目录
常用选项:
• -f 即使文件属性为只读(即写保护),亦直接删除
• -i 删除前逐⼀询问确认
• -r 删除目录及其下所有文件


# 删除普通⽂件
[qcj@bite - alicloud test]$ ll
total 8
drwxrwxr - x 2 qcj qcj 4096 Jan 11 14:22 dir
- rw - rw - r-- 1 qcj qcj 0 Jan 11 14 : 22 file.txt
- rw - rw - r-- 1 qcj qcj 0 Jan 11 15 : 09 newFile.txt
drwxrwxr - x 3 qcj qcj 4096 Jan 11 15:26 path1
[qcj@bite - alicloud test]$ rm file.txt
[qcj@bite - alicloud test]$ ll
total 8
drwxrwxr - x 2 qcj qcj 4096 Jan 11 14 : 22 dir
- rw - rw - r-- 1 qcj qcj 0 Jan 11 15 : 09 newFile.txt
drwxrwxr - x 3 qcj qcj 4096 Jan 11 15:26 path1
# 删除⽬录⽂件
[qcj@bite - alicloud test]$ ll
total 8
drwxrwxr - x 2 qcj qcj 4096 Jan 11 14:22 dir
- rw - rw - r-- 1 qcj qcj 0 Jan 11 15 : 09 newFile.txt
drwxrwxr - x 3 qcj qcj 4096 Jan 11 15:26 path1
[qcj@bite - alicloud test]$ rm dir
rm : cannot remove ‘dir’ : Is a directory
[qcj@bite - alicloud test]$ rm - r dir
[qcj@bite - alicloud test]$ ll
total 4
- rw - rw - r-- 1 qcj qcj 0 Jan 11 15 : 09 newFile.txt
drwxrwxr - x 3 qcj qcj 4096 Jan 11 15:26 path1
# 删除普通⽂件前询问
[qcj@bite - alicloud test]$ ll
total 4
- rw - rw - r-- 1 qcj qcj 0 Jan 11 15:09 newFile.txt
drwxrwxr - x 3 qcj qcj 4096 Jan 11 15:26 path1
[qcj@bite - alicloud test]$ rm - i newFile.txt
rm : remove regular empty file ‘newFile.txt’ ? y
[qcj@bite - alicloud test]$ ll
total 4
drwxrwxr - x 3 qcj qcj 4096 Jan 11 15 : 26 path1
[qcj@bite - alicloud test]$ ll
total 4
drwxrwxr - x 3 qcj qcj 4096 Jan 11 15 : 26 path1
# 删除⽬录前询问
[qcj@bite - alicloud test]$ mkdir - p d / d / d / d
[qcj@bite - alicloud test]$ tree d
d
└── d
└── d
└── d
3 directories, 0 files
[qcj@bite - alicloud test]$ rm - ri d
rm : descend into directory ‘d’ ? y
rm : descend into directory ‘d / d’ ? y
rm : descend into directory ‘d / d / d’ ? y
rm : remove directory ‘d / d / d / d’ ? y
rm : remove directory ‘d / d / d’ ? y
rm : remove directory ‘d / d’ ? y
rm : remove directory ‘d’ ? y
[qcj@bite - alicloud test]$ ll
total 0
# 递归强制删除⾮空⽬录
[qcj@bite - alicloud test]$ tree path1 /
path1 /
├── myfile.txt
└── path2
└── myfile.txt
1 directory, 2 files
[qcj@bite - alicloud test]$ rm - f path1
rm : cannot remove ‘path1’ : Is a directory
[qcj@bite - alicloud test]$ rm - rf path1
[qcj@bite - alicloud test]$ ll
total 0

2.7 man 指令

Linux的命令有很多参数,我们不可能全记住,可以通过查看联机手册获取帮助
语法 : man[选项] 命令
常用选项

  • -k 根据关键字搜索联机帮助
  • num 只在第num章节查找
  • -a 将所有章节的都显示出来,比如 man printf 它缺省从第⼀章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕
    解释⼀下:man手册分为9章(不同系统可能会有差别)
  1. 是普通的命令
  2. 是系统调用, 如open, write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么 头⽂件)
  3. 是库函数, 如printf, fread4是特殊文件, 也就是 / dev下的各种设备⽂件
  4. 是指文件的格式, 比如passwd, 就会说明这个文件中各个字段的含义
  5. 是给游戏留的, 由各个游戏自己定义
  6. 是附件还有⼀些变量, 比如像environ这种全局变量在这里就有说明
  7. 是系统管理⽤的命令, 这些命令只能由root使用, 如ifconfig
[qcj@bite - alicloud test]$ man printf # 查看printf指令(没错,printf也是⼀个指令)
qcj@bite - alicloud test]$ man fork # 查看系统调⽤,默认没有这个指令,man就⾃动
去2号⼿册查找
[qcj@bite - alicloud test]$ man 2 frok # 查看系统调⽤
[qcj@bite - alicloud test]$ man 3 printf # 查看C库函数
[qcj@bite - alicloud test]$ man 7 signal # 查看变量
[qcj@bite - alicloud test]$ man 7 environ
[qcj@bite - alicloud test]$ man man # 查看man⼿册⾃⼰

2.8 cp 指令

语法: cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
说明:

  • cp指令用于复制文件或目录
  • 如同时指定两个以上的文件或目录,且最后的目的地是⼀个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中
    常用选项
  • -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
  • -i 或 --interactive 覆盖文件之前先询问用户
  • -r 递归处理,将指定⽬录下的文件与子目录录⼀并处理。若源文件或目录的形态,不属于目录或符号链接,则⼀律视为普通文件处理
# cp普通⽂件
[qcj@bite - alicloud test]$ echo "你好世界" > myfile.txt
[qcj@bite - alicloud test]$ cat myfile.txt
你好世界
[qcj@bite - alicloud test]$ ll
total 4
- rw - rw - r-- 1 qcj qcj 22 Jan 11 15:47 myfile.txt
[qcj@bite - alicloud test]$ cp myfile.txt myfile - backup.txt
[qcj@bite - alicloud test]$ ll
total 8
- rw - rw - r-- 1 qcj qcj 22 Jan 11 15 : 47 myfile - backup.txt
- rw - rw - r-- 1 qcj qcj 22 Jan 11 15 : 47 myfile.txt
[qcj@bite - alicloud test]$ cat myfile - backup.txt
你好世界
# 将多个⽂件拷⻉到指定路径下
[qcj@bite - alicloud test]$ ll
total 8
- rw - rw - r-- 1 qcj qcj 22 Jan 11 15:47 myfile - backup.txt
- rw - rw - r-- 1 qcj qcj 22 Jan 11 15 : 47 myfile.txt
[qcj@bite - alicloud test]$ mkdir dir
[qcj@bite - alicloud test]$ ll
total 12
drwxrwxr - x 2 qcj qcj 4096 Jan 11 15 : 48 dir
- rw - rw - r-- 1 qcj qcj 22 Jan 11 15 : 47 myfile - backup.txt
- rw - rw - r-- 1 qcj qcj 22 Jan 11 15 : 47 myfile.txt
[qcj@bite - alicloud test]$ cp * .txt dir #  * 表⽰通配符,匹配所有.txt结尾的⽂件名
[qcj@bite - alicloud test]$ ll
total 12
drwxrwxr - x 2 qcj qcj 4096 Jan 11 15 : 48 dir
- rw - rw - r-- 1 qcj qcj 22 Jan 11 15 : 47 myfile - backup.txt
- rw - rw - r-- 1 qcj qcj 22 Jan 11 15 : 47 myfile.txt
[qcj@bite - alicloud test]$ tree dir
dir
├── myfile - backup.txt
└── myfile.txt
# cp如果⽬标⽂件存在,就覆盖
[qcj@bite - alicloud test]$ echo "hello bite tech" > myfile.txt
[qcj@bite - alicloud test]$ cat myfile.txt
hello bite tech
[qcj@bite - alicloud test]$ cp myfile.txt myfile - backup.txt
[qcj@bite - alicloud test]$ cat myfile - backup.txt
hello bite tech
# 拷⻉前询问
[qcj@bite - alicloud test]$ cp - i myfile.txt myfile - backup.txt
cp : overwrite ‘myfile - backup.txt’ ? y
# 递归强制拷⻉整个⽬录
[qcj@bite - alicloud ~]$ tree test
test
├── dir
│ ├── myfile - backup.txt
│ └── myfile.txt
├── myfile - backup.txt
└── myfile.txt
1 directory, 4 files
[qcj@bite - alicloud ~]$ cp - rf test test - backup
[qcj@bite - alicloud ~]$ tree test - backup
test - backup
├── dir
│ ├── myfile - backup.txt
│ └── myfile.txt
├── myfile - backup.txt
└── myfile.txt
1 directory, 4 files

后言

这就是Linux基本指令及其分析。大家自己好好消化!今天就分享到这!
感谢各位的耐心垂阅!咱们下期见!拜拜~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/27411.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gradle libs.versions.toml文件

1.libs.versions.toml介绍2.创建libs.versions.toml文件3.libraries5.versions6.plugins7.bundles 1.libs.versions.toml介绍 下图是官网介绍 意思就是说项目所有插件和库的依赖版本都统一在这个文件配置。 文件中有以下四个部分 versions, 申明要使用的插件和库的版本号的…

【Git】Ubuntu 安装 Git Large File Storage(LFS)以及使用 Git LFS 下载

【Git】Ubuntu 安装 Git Large File Storage(LFS)以及使用 Git LFS 下载 1 安装1.1 使用脚本安装1.2 使用 packagecloud 安装 2 使用2.1 下载 1 安装 1.1 使用脚本安装 参考文档: Link 下载安装包: Link 解压安装包 tar -xzvf git-lfs-linux-amd64-v3.…

c++进阶--多态

大家好,今天我们来学习c进阶的第二课:多态。c的三大特性就是封装,继承和多态。那么今天我们就来学习一下多态。 目录 1. 多态的概念 2. 多态的定义及实现 2.1 多态的构成条件 2.1.1 实现多态还有两个必须重要条件 2.2 虚函数 2.3 虚函…

2月28日,三极管测量,水利-51单片机

众所周知,三极管(BJT)有三个管脚,基极(B)、集电极(C)、发射极(E),在实际应用中,不可避免地会遇到引脚辨别的问题。接下来就讲下三极管…

解决git clone下载慢或者超时问题

在网上找了很多办法,直接最简单的使用镜像网站下载。 国内可用的镜像网站有: https://github.com.cnpmjs.org # 服务器位于香港https://gitclone.com # 服务器位于杭州https://doc.fastgit.org # 服务器位于香港 例如:将 git clone https:…

SQL 全面指南:从基础语法到高级查询与权限控制

SQL:全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了一套操作关系型数据库统一标准 。 一、SQL通用语法 在学习具体的SQL语句之前,先来了解一下SQL语言的同于语法。 1). SQL语句可以单行或多…

【AD】4-8 AD集成库的创建与安装

集成库:集成好元件信息、元件原理图库、PCB封装库、3D模型等的元件库,直接调用器件不可修改。 AD集成库创建 1.文件—新的—库,选择库工程,右键保存 2.将原理图库和PCB封装库复制到创建的集成库文件夹,并右键单击库工…

【大模型学习笔记】0基础本地部署dify教程

目录 一、准备工作1、安装包下载1.1 安装git1.2 安装docker(1)默认安装(2)自定义路径安装(推荐)1.3 验证docker1.4 切换镜像源 二、下载dify源码三、启动dify1、在docker目录下启动dify2、验证3、浏览器中输入 一、准备工作 本地…

unity pico开发 五 UI交互

文章目录 添加画布添加交互组件取消传送射线对UI的控制解决按扳机键会传送的冲突按下按键呼出菜单,并让菜单出现在头的前方 添加画布 创建一个新画布,添加一个Button,将画布改为world space,然后缩放改为0.001,调整到…

上海公共数据授权运营实践详解(政策制度、运营模式、运营平台、运营成果、场景案例)

近期,国家公共数据资源登记平台正式上线,将进一步推动公共数据授权运营加速推动。本期分享:上海市公共数据授权运营实践,上海公共数据授权运营为统一集中授权,上海数据集团作为上海公共数据授权运营的唯一单位&#xf…

HTTP超文本传输协议

HTTP超文本传输协议 HTTP的基本原理HTTP请求的组成HTTP响应的组成HTTP请求方法HTTP状态码HTTP的无状态性和持久连接HTTPS(HTTP Secure)Cookie 和 SessionCookieSession对比 总结 HTTP(超文本传输协议)是一种用于从Web服务器传输超…

android TabLayout设置tab的时候文字默认居中,选中文字加粗

1、前言如题 TabLayout设置tab的时候文字默认居中,在TabLayout布局增加以上代码。 tab选中文字加粗,需要重写TabLayout的customview进行设置。 app:tabMaxWidth"0dp" app:tabGravity"fill" app:tabMode"fixed"

二叉树专题练习 ——基于罗勇军老师的《蓝桥杯算法入门C/C++》

目录 一、B3642 二叉树的遍历 - 洛谷 算法代码: 1. 代码结构 头文件和命名空间: 常量定义: 结构体定义: 前序遍历函数: 中序遍历函数: 后序遍历函数: 主函数: 2. 代码思路…

健康饮食,健康早餐

营养早餐最好包含4大类食物:谷薯类;碳水;蛋白质;膳食纤维。 1.优质碳水 作用:提供持久的能量,避免血糖大幅波动等 例如:全麦面包、红薯🍠、玉米🌽、土豆🥔、…

使用Linux服务器搭建。

前言: 本文将简述如何使用vmware模拟Linux搭建服务器环境。并配置相关安全措施。 本文工具: Centos Stream 9 图文详细安装记录_centos9安装教程详解-CSDN博客 xshell,服务器远程连接工具。 https://old.xp.cn/linux.html#install-show …

Artec Leo+Ray II 三维扫描仪成功为VR展数字化30吨重设备-沪敖3D

挑战:在贸易展上展示重达30吨的机械设备,同时克服设备搬运和展示的难题,减轻物流负担。。 解决方案:Artec Leo、Artec Ray II、Artec Studio、Blender、Unity、Microsoft HoloLens、HTC VIVE PRO 效果:在虚拟展厅中&am…

期权帮|如何判断股指期货市场是否值得做空呢?

锦鲤三三每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 如何判断股指期货市场是否值得做空呢? 如果你觉得市场下跌的可能性较大,那么就可以考虑做空股指期货。但记住,做空有风险,操作需…

qt实践教学(编写一个代码生成工具)持续更新至完成———

前言: 我的想法是搭建一个和STM32cubemux类似的图形化代码生成工具,可以把我平时用到的代码整合一下全部放入这个软件中,做一个我自己专门的代码生成工具,我初步的想法是在下拉选框中拉取需要配置的功能,然后就弹出对…

操作系统:计算机架构里的幕后指挥官

Linxu系列 文章目录 Linxu系列前言一、操作系统的概念二、操作系统的工作原理三、操作系统对软硬件资源的管理总结 前言 在上篇博客中,我们介绍了冯诺依曼体系,,但是冯诺依曼体系结构出现的都是硬件设备,难道需要用户去操作、管理…

DNS 详细过程 与 ICMP

🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 目录 一:🔥 DNS (Domain Name System) 快速了解🦋 DNS 背景🦋 域名简介🦋 真实地址查询 —— DNS🎀 域名的层级关系&am…