# Linux **Repository Path**: javawcj/Linux ## Basic Information - **Project Name**: Linux - **Description**: 包含Linux 操作系统的基础知识,Linux 的安装和配置、文件系统管理、用户和权限管理、网络配置和管理、进程管理等内容,并提供了大量的命令和实践练习,方便学习和掌握 Linux 操作系统的使用方法。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2023-05-05 - **Last Updated**: 2025-01-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Linux ## Linux使用在哪些地方 Linux被广泛用于服务器、超级计算机、嵌入式系统、移动设备和个人电脑等多个领域。 - 服务器:大型企业和互联网公司使用Linux来运行Web服务器、数据库服务器、邮件服务器和文件服务器等服务。 - 超级计算机:Linux是世界上最强大的超级计算机的操作系统之一。 - 嵌入式系统:Linux在智能手机、智能电视、数字相机、路由器、智能家居等嵌入式设备中得到广泛应用。 - 移动设备:许多智能手机和平板电脑都使用Android,它是一个基于Linux内核的开源操作系统。 - 个人电脑:虽然Windows和macOS是主流桌面操作系统,但许多人也喜欢使用Linux作为他们的桌面操作系统。 ## Linux介绍 Linux是一种自由和开放源代码的操作系统,最初是由芬兰的林纳斯·托瓦兹(Linus Torvalds)在1991年开发并发布的。Linux基于Unix操作系统,具有高度的可定制性、稳定性和安全性。它被广泛用于服务器、嵌入式设备和个人电脑等各种领域,同时也是许多其他开源软件项目的基础。因为其开放源代码的特性,用户可以任意修改和分发Linux操作系统,使其成为一个受欢迎的选择。 ## Linux和Unix关系 Linux和Unix有密切的关系。Linux最初是由林纳斯·托瓦兹基于Unix操作系统的思想和设计而开发的。它采用了很多Unix的概念和工具,例如文件系统、进程管理等。同时,它也吸收了其他操作系统的一些特性,如BSD和Minix等。因此,Linux可以被认为是一个类Unix的操作系统,它继承了Unix的优良传统,并在其中添加了一些自己的特点。 ### Unix怎么来的 Unix是由肯·汤普逊和丹尼斯·里奇在贝尔实验室开发的操作系统。起初,他们为DEC PDP-7计算机编写了一个叫做“Unics”的操作系统,后来改名为“Unix”。Unix最初是作为一种供内部使用的工具而开发的,但很快就获得了广泛的认可,并成为现代计算机操作系统的先驱之一。Unix的设计理念包括模块化、可重用性和通用性,这些思想对当今的计算机科学发展产生了深远的影响。 ### Linux是什么来的 Linux是由芬兰程序员Linus Torvalds在1991年开发的一种类Unix操作系统内核。Torvalds最初是为了创建一个能够在自己的个人电脑上运行的操作系统而开始开发Linux。他将它称为“自由的Minix”,并在互联网上公开发布,让其他开发者可以参与进来共同开发。由于Linux采用GNU通用公共许可证(GPL),因此可以免费、自由地使用和分发。随着时间的推移,Linux逐渐成长为一款功能强大且广泛使用的操作系统,并得到了全球开发者社区的支持和贡献。今天,Linux已经成为业界标准的服务器操作系统,也被广泛应用于个人计算机、移动设备、嵌入式系统等各种领域。 ## Linux的操作系统 Linux 是一种自由和开放源代码的操作系统,由林纳斯·托瓦兹在1991年创建。它基于 UNIX 操作系统,并且目前广泛应用于服务器、超级计算机、移动设备和嵌入式系统等领域。Linux 具有高度的稳定性、安全性、灵活性和可定制性,拥有庞大的社区支持和生态系统。常见的 Linux 发行版包括 Ubuntu、Debian、CentOS、Red Hat 等。 ## VM和CentOS安装 ### VM介绍 VM 一般指虚拟机(Virtual Machine)或者是虚拟内存(Virtual Memory),具体解释如下: - 虚拟机:是一种通过软件模拟硬件环境的技术,使得操作系统和应用程序可以在一个虚拟的计算机平台上运行。虚拟机可以实现多个操作系统共存、资源隔离、软件兼容性等功能,广泛应用于服务器虚拟化、开发测试、云计算等领域。 - 虚拟内存:是一种计算机操作系统中的内存管理技术,它将物理内存和磁盘空间组合起来,提供给应用程序使用。虚拟内存可以扩展应用程序的可用内存空间,同时也可以实现内存保护、进程隔离等功能。常见的虚拟内存技术包括分页式内存管理、页面置换算法等。 ### 安装VM - 首先,下载并安装VM虚拟机软件,如VirtualBox或者VMware Fusion等。 - 安装完成后,打开虚拟机软件,并创建一个新的虚拟机。 - 在创建虚拟机时,需要选择操作系统类型和版本,以及设置虚拟机的配置参数,如内存大小、硬盘容量等。 - 完成虚拟机的设置后,可以开始安装操作系统了。如果已经有安装媒介,可以将其插入虚拟机的光驱中,然后启动虚拟机并按照提示进行安装。如果没有安装媒介,可以从网络上下载ISO文件,并在虚拟机中挂载该文件进行安装。 - 安装完成后,就可以在虚拟机中运行所需的软件了。需要注意的是,在虚拟机中运行软件可能会影响性能,因此建议在Mac中关闭不必要的程序和服务,以便释放资源。 ### 安装CentOS - 下载CentOS镜像文件(ISO)并将其保存到您的计算机上。 - 创建一个新的虚拟机,选择操作系统类型为“Linux”,版本为“CentOS”。 - 为虚拟机分配足够的内存和磁盘空间,并指定CentOS镜像文件作为虚拟光驱中的介质。 - 启动虚拟机并按照屏幕上的提示进行安装。在安装过程中,您需要选择安装类型、分区布局和网络设置等选项。 - 完成安装后,重新启动虚拟机并登录到CentOS操作系统。 ## 虚拟机快照 虚拟机快照是虚拟机软件提供的一种功能,它允许您在某个时间点上记录虚拟机整个状态的副本。创建快照后,您可以在需要时还原虚拟机到该时间点的状态,或者在还原后继续基于该状态进行操作。 快照通常用于以下情况: 1. 在进行重要更改之前,备份虚拟机状态以防止配置错误或其他问题。 2. 测试新软件或应用程序时,保存当前状态以便后续回滚。 3. 便于恢复虚拟机到固定的“干净”状态。 注意,虚拟机快照可能对性能和存储资源产生影响,并且不应将其视为替代正式备份策略。 ### 使用VM快照 - 在虚拟机管理界面中选择要创建快照的虚拟机。 - 点击“创建快照”或类似的按钮。 - 输入所需的快照名称和描述信息。 - 可选:在创建快照之前暂停虚拟机以确保一致性。 - 创建快照后,您可以开始进行更改和测试。 - 如果需要还原至快照状态,可以选择相应的快照并点击还原操作。 注意,使用快照可能会增加磁盘空间的使用量,并且频繁地创建快照可能会导致性能下降。因此,建议仅在必要时使用快照。 ## 虚拟机迁移和删除 虚拟机迁移可以通过以下几种方式进行操作: - 虚拟机迁移工具:使用虚拟化平台提供的迁移工具,例如VMware vMotion和Microsoft Hyper-V Live Migration等。 - 复制和粘贴:将虚拟机的磁盘文件复制到目标主机上,并在目标主机上创建新的虚拟机,然后将原始虚拟机的配置信息复制到新建的虚拟机中。 - 导出和导入:将虚拟机导出为一个虚拟机映像文件,然后将该文件导入到目标主机上,并在目标主机上创建新的虚拟机。 虚拟机删除可以通过以下步骤进行操作: - 关闭虚拟机:确保虚拟机已关闭并停止运行。 - 删除虚拟机文件:删除虚拟机所属的所有文件,包括磁盘映像、配置文件和快照。 - 从虚拟化平台中删除虚拟机:从虚拟化平台管理界面中选择要删除的虚拟机,然后执行删除操作。 ## 安装vmtools VMware Tools是一组软件程序,用于增强VMware虚拟机的性能和功能。它包括驱动程序、系统服务和应用程序,可改善虚拟机的网络连接、显卡性能、文件共享、时间同步等方面。VMware Tools还提供了与主机操作系统的更好集成,以及对虚拟机进行管理和维护的便利工具。虽然VMware Tools已经预装在某些操作系统中,但用户也可以手动安装或更新它们。 安装: - 在虚拟机上选择VMware菜单栏中的“虚拟机”->“安装VMware Tools”。 - 将VMware Tools安装介质挂载到虚拟机中(如果没有自动挂载的话)。 - 在虚拟机中打开终端窗口或控制台,以管理员权限运行VMware Tools安装程序。 - 根据提示进行安装,一般情况下可以使用默认选项即可。 - 安装完成后,重新启动虚拟机。 需要注意的是,不同的操作系统可能需要执行额外的步骤或配置才能使VMware Tools正常工作。在安装之前,最好查看VMware官方文档或社区论坛,了解针对特定操作系统和VMware产品的详细安装指南。 ### 设置共享文件夹 - 在虚拟机软件中打开虚拟机,进入虚拟机系统。 - 在虚拟机菜单栏中选择“设备”或“虚拟机”选项,然后选择“共享文件夹”选项。 - 点击“添加共享文件夹”的图标,选择要共享的文件夹,并设置共享名称和路径。 - 在虚拟机系统中,打开文件管理器,找到“网络”或“我的电脑”,查看是否有名为“sf_共享名称”的文件夹。如果没有,请重启虚拟机并再次尝试。 - 单击该文件夹,即可访问主机操作系统中共享的文件夹。 注意:不同的虚拟机软件设置方式可能略有不同,在实际开发中,文件的上传下载是使用远程的方式完成的。 ## Linux目录结构 Linux目录结构是一种层次结构,它根据功能将文件系统的内容组织到一系列目录中。Linux目录结构的根目录是“/”,其子目录包括bin、etc、home、lib、media、mnt、opt、root、sbin、tmp、usr和var等目录。其中,bin目录包含二进制可执行文件,etc目录存放系统配置文件,home目录保存用户的主目录,lib目录存放共享库,sbin目录包含系统管理员使用的二进制文件,tmp目录用于存储临时文件,usr目录包含大多数用户程序和数据,var目录包含变量数据文件。 ### 具体的目录结构 - /bin: 存放系统启动和运行时必须的基本系统命令。 - /boot: 存放Linux内核和启动管理程序(如GRUB)等文件。 - /dev: 存放设备文件,包括硬件设备、外部设备、网络设备等。 - /etc: 存放系统配置文件,包括用户账号、网络、服务、安全等。 - /home: 存放用户的主目录,每个用户都有一个自己的子目录。 - /lib: 存放系统启动时需要的共享库和内核模块。 - /media: 存放可移动介质的挂载点,如光盘、USB等。 - /mnt: 存放临时文件系统的挂载点,如NFS挂载、Windows分区挂载等。 - /opt: 存放第三方应用程序的安装目录。 - /proc: 特殊文件系统,提供内核信息和进程相关信息的读取接口。 - /root: root用户的主目录。 - /run: 运行时文件系统,存放系统启动后的临时文件。 - /sbin: 存放系统管理员使用的二进制文件,如系统管理命令等。 - /srv: 存放服务相关的数据。 - /sys: 特殊文件系统,提供内核信息的读取接口,也是udev设备管理的重要目录。 - /tmp: 存放临时文件的目录,所有用户都可以访问。 - /usr: 存放大部分用户程序和数据,包括系统命令 - /var: 通常用于存储变量数据,例如日志文件、缓存和其他应用程序生成的动态数据。/var目录上的var结构是一个文件系统结构,它在Linux系统启动时被挂载并分配空间。 ## 远程登录到Linux服务器 ### 为什么需要远程登录 因为它通常作为服务器操作系统来使用,这些服务器可能分布在不同的地理位置上。通过远程登录,管理员和用户可以从远程地方访问服务器,而不必亲自到达服务器所在的物理位置。这使得维护、管理和配置服务器变得更加方便和高效。此外,远程登录还可以帮助多个用户同时共享服务器资源,以及提供更好的灵活性和可扩展性。 ### 远程登录(FinalShell) 下载完成后,配置虚拟系统对应的ip地址连接成功后即可远程操作、上传文件等 ## Vi和Vim编辑器 vi和vim都是常用的文本编辑器,通常在Unix,Linux和MacOS等操作系统中使用。vi是最早的版本,而vim则是vi的改进版。 vi编辑器使用的是命令模式和编辑模式,命令模式用于执行命令(如复制、粘贴、搜索、替换等),而编辑模式用于输入和修改文本内容。要切换到编辑模式,可以按下i键或a键,从编辑模式返回到命令模式,可以按下Esc键。 vim除了继承了vi的功能之外,还增加了许多新功能。它支持语法高亮、分屏编辑、多级撤销、宏录制等高级功能。vim编辑器同样也有命令模式和编辑模式,并且提供了多种命令模式下的快捷键,方便用户进行编辑操作。 总的来说,vi和vim都是非常强大的文本编辑器,尤其适合于在终端界面下进行文件编辑和编程开发。 ### Vi和Vim常用三种模式 命令模式、插入模式和可视模式。 - 命令模式下可以进行文件编辑相关的操作,如移动光标、删除字符等; - 插入模式下可以输入文本; - 可视模式下可以选中一段文本用于复制、剪切或者其他操作。 ### Vi和Vim基本使用 vi和vim是UNIX和Linux下的文本编辑器, - 打开文件:vi/vim 文件名 - 命令模式下: - 光标移动:h(左)、j(下)、k(上)、l(右) - 删除字符:x - 撤销操作:u - 复制、剪切、粘贴:yy(复制)、dd(剪切)、p(粘贴) - 保存退出::wq - 插入模式下: - 进入插入模式:i(在光标前插入)、a(在光标后插入) - 退出插入模式:Esc键 - 可视模式下: - 进入可视模式:v - 选中文本:移动光标来选中文本 - 复制、剪切、粘贴:y(复制)、d(剪切)、p(粘贴) ### 不同模式的相互切换 - 从命令模式(Command mode) 切换到插入模式(Insert mode):按下字母键 i、I、a、A、o 或 O(大小写有区别),或者是按下 Ctrl+o 进入插入-普通模式(Insert Normal mode)。 - 从插入模式(Insert mode) 切换回命令模式(Command mode):按下 Esc 键即可。 - 从命令模式(Command mode) 切换到末行模式(Last Line mode):按下冒号键 :。 - 在末行模式(Last Line mode) 下执行完命令后,返回命令模式(Command mode):按下 Enter 键。 - 在命令模式(Command mode) 下进入可视模式(Visual mode):按下 v、V 或者 Ctrl+v 键。 - 在可视模式(Visual mode) 下返回命令模式(Command mode):按下 Esc 键。 ### Vi和VIm快捷键 普通模式下的快捷键: - i:进入插入模式 - x:删除光标所在位置的字符 - :wq:保存并退出 - :q!:放弃修改并退出 - yy:复制当前行 - p:粘贴已复制的文本 插入模式下的快捷键: - ESC:退出插入模式,回到普通模式 - Ctrl + c:同样可以退出插入模式,回到普通模式 可视模式下的快捷键: - v:进入可视模式,按字符选择 - V:进入可视模式,按行选择 - y:复制选择内容 - d:剪切选择内容 vim还有很多其他的快捷键和命令,可以使用 :help 来查看更多详情。 ![](img/vim.png) ### Vi和Vim案例 假设我们有一个名为test.txt的文本文件,其中包含以下内容: ``` This is a test file. It contains multiple lines of text. We will use vi and vim to edit this file. ``` - 使用vi编辑器打开test.txt文件 在终端中输入以下命令: ``` vi test.txt ``` 将打开test.txt文件并进入vi编辑器。 - 在vi中编辑文件 在vi编辑器中,可以使用键盘上的各种命令来编辑文件。例如,要将光标移动到文件的第二行,可以按下以下命令: ``` 2G ``` 将把光标移动到第二行。然后可以按“i”键开始插入文本,并键入以下文本: ``` This is a modified test file. ``` - 保存文件并退出vi 按下Esc键回到命令模式,并键入以下命令: ``` :wq ``` 将保存更改并退出vi编辑器。 Vim和Vi编辑方式一样 ## 关机和用户登录注销 ### 关机重启命令 立刻关机: ``` shutdown -h now ``` 设置时间后关机(一分钟后关机): ``` shudown -h 1 ``` 现在重启计算机: ``` shutdown -r now ``` 关机,和以上作用一样: ``` halt ``` 现在重启计算机: ``` reboot ``` 把内存的数据同步到磁盘: ``` sync ``` ### 注意细节 - 重启或关机时系统时,先运行sync命令,把内存的数据写到磁盘上 - 目前shutdown/reboot/halt等命令均已在关机前进行了syne ### 用户登录和注销 Linux 是一种多用户操作系统,它允许多个用户在同一时间使用计算机资源并进行不同的操作。在 Linux 中,每个用户都有自己的用户名和密码,以便在登录时进行身份验证。 Linux 用户登录通常是通过 SSH 协议远程连接到计算机上,可以使用以下命令: ``` ssh username@ip_address ``` 其中 username 是要登录的用户名,ip_address 是目标计算机的 IP 地址。在输入该命令后,系统会提示输入用户的密码进行身份验证,并提供一个新的终端窗口供用户使用。 当用户完成他们的工作后,应该注销并结束会话以确保安全性和资源可用性。在 Linux 中,注销当前用户的命令是: ``` logout ``` 使用该命令将会结束当前用户的会话,并返回到登录界面或者关闭终端窗口。这样其他用户就可以登录并使用计算机资源了(运行级别“3”之下有效)。 ## 用户管理 LInux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以账号的身份进入系统 ### 添加用户 ``` useradd 用户名 ``` 示例:添加一个用户milan,默认该用户的家目录在home/milan ``` useradd milan ``` ### 细节说明 - 当创建用户成功后,会自动的创建和用户同名的家目录 - 也可以通过useradd -d 指定目录 新的用户名,给新创建的用户指定家目录 ### 指定/修改密码 ``` passwd 用户名 ``` 示例:给milan指定密码 ``` passwd milan ``` ### 删除用户 ``` userdel 用户名 ``` 案例:删除用户milan,但保留家目录 ``` userdel milan ``` 案例:删除用户以及用户主目录 ``` userdel -r milan ``` 注意:一般情况下建议保留家目录 ### 查询用户信息 ``` id 用户名 ``` 案例:查询root信息 ``` id root ``` 注意:当用户不存在时,返回无此用户信息 ### 切换用户 在linux中,如果当前用户1权限不够,可以通过 su - 指令,切换到高权限的用户 ``` su - 切换用户名 ``` 案例:创建一个用户jack,指定密码,然后切换到root ``` useradd jack passwd jack su - root ``` 注意: - 从高权限的用户切换到低权限的用户不需要输入密码,反之需要 - 当需要返回原来用户时,使用exit/logout指令 ### 查看登录用户 ``` whoami/ who am I ``` ### 用户组 类似于角色,系统可以对有共性/权限的多个用户进行统一管理 #### 新增组 ``` groupadd 组名 ``` #### 删除组 ``` groupdel 组名 ``` #### 修改用户的组 ``` usermod –g 用户组 用户名 ``` ### 用户和组相关文件 - /etc/passwd 文件 用户(user)的配置文件,记录用户的各种信息 每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录 Shell - /etc/shadow 文件 口令的配置文件 每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志 - /etc/group 文件 组(group)的配置文件,记录 Linux 包含的组的信息 每行含义:组名:口令:组标识号:组内用户列表 ## Linux实用指令 ### 指定运行级别 Linux运行级别是一种系统状态,它决定了哪些服务和进程在启动时会自动运行。Linux操作系统默认有7个运行级别,每个级别有不同的服务和进程配置。以下是对每个级别的基本介绍: 0 - 关机 1 - 单用户模式(救援模式,只有最少的服务和进程运行) 2 - 多用户模式,没有网络支持 3 - 多用户模式,带网络支持 4 - 保留,未被使用 5 - 图形界面模式(多用户模式,带图形界面) 6 - 重启 在Linux中,可以通过修改运行级别来控制启动时哪些服务和进程自动运行。通常情况下,可以使用命令"init N"(N为运行级别编号)来切换运行级别,或者在"/etc/inittab"配置文件中进行设置。 #### CentOS7 后运行级别说明 在 centos7 以前, /etc/inittab 文件中 . 进行了简化 ,如下: multi-user.target: analogous to runlevel 3 graphical.target: analogous to runlevel 5 \# To view current default target, run: systemctl get-default \# To set a default target, run: systemctl set-default TARGET.target ### 找回 root 密码 - 重启计算机,在 GRUB 引导界面按下 "e" 键进入编辑模式。 - 找到以 "linux /boot/vmlinuz..." 开头的行,并在该行尾部添加 "init=/bin/sh"。然后按下 F10 键或 Ctrl-X 来启动系统。 - 系统将进入单用户模式,将直接进入 root 用户的命令行界面。 - 运行以下命令来挂载文件系统并以读写模式重新加载 root 分区: ``` mount -o remount,rw / ``` - 运行以下命令来更改 root 用户的密码: ``` passwd root ``` - 输入新的密码并确认,然后运行以下命令退出单用户模式并重新启动系统: ``` sync && reboot -f ``` - 计算机将重新启动,现在可以使用新的密码登录 root 用户了。 ### 帮助指令 - man 获得帮助信息 - 获取特定命令的帮助信息:man (例如,man ls 将会显示关于ls命令的帮助信息。) - 搜索帮助手册:man -k 或 apropos (例如,man -k network 将会列出所有与“network”相关的命令的帮助信息。) - 浏览帮助手册的不同部分:man
(例如,man 5 passwd 将会显示有关/etc/passwd文件格式的帮助信息。) - 查看man页面的源代码:man -w (例如,man -w ls 将会显示ls命令的man页面的位置。) 以上命令中的尖括号(< >)应该被替换为实际的命令或参数。 ### help 指令 help命令是用来获取有关系统中可用命令的简要帮助信息。 - 显示所有命令的简要帮助信息: ``` help ``` - 显示特定命令的简要帮助信息: ``` help command_name ``` 其中,command_name是要查看帮助信息的命令名称。 - 将帮助信息输出到文件中: ``` help command_name > filename ``` 其中,command_name是要查看帮助信息的命令名称,filename是要将帮助信息输出到的文件名。 - 在帮助信息中搜索关键字: ``` help | grep keyword ``` 其中,keyword是要搜索的关键字。这将列出所有包含关键字的命令的帮助信息。 ## 文件目录类 ### pwd 指令 pwd指令用于显示当前工作目录的完整路径。 ``` $ pwd /home/user/Documents ``` 此输出表示当前用户位于名为“Documents”的文件夹中,该文件夹位于“/home/user”路径下。 ### ls 指令 ls指令用于列出当前目录中的文件和子目录。 - 列出当前目录中的所有文件和子目录: ``` $ ls ``` - 列出当前目录中的所有文件和子目录,并显示它们的详细信息(如权限、所有者等): ``` $ ls -l ``` - 列出当前目录及其子目录中的所有文件和子目录: ``` $ ls -R ``` - 列出当前目录中以“txt”为扩展名的所有文件: ``` $ ls *.txt ``` - 列出当前目录中以“doc”或“txt”为扩展名的所有文件: ``` $ ls *.{doc,txt} ``` 以上是一些常见的ls指令的使用案例。更多的选项和参数可以通过输入“man ls”命令来查看手册页。 ### cd 指令 cd指令是用于在命令行界面中更改当前工作目录的命令。它代表"change directory",可以使用绝对路径或相对路径。 例如要进入名为“Documents”的文件夹,可以输入以下命令: ``` cd /home/username/Documents ``` 其中,“/home/username”是绝对路径,“Documents”是子目录的名称。 如果当前目录下有一个名为“Documents”的子目录,则可以使用相对路径输入以下命令: ``` cd Documents ``` 这将更改当前工作目录为“Documents”子目录。 补充: - cd ~ 或者cd :回到自己的家目录, 比如 你是root , cd ~ 到 /root - cd .. 回到当前目录的上一级目录 ### mkdir 指令 mkdir指令是用于在命令行界面中创建一个新目录的命令。它代表"make directory",可以使用绝对路径或相对路径。 例如要在当前工作目录下创建名为“new_folder”的新目录,可以输入以下命令: ``` mkdir new_folder ``` 如果想要在上一级目录中创建该目录,可以使用相对路径输入以下命令: ``` mkdir ../new_folder ``` 其中".."表示上一级目录。 如果要在绝对路径中创建新目录,则可以输入类似以下命令: ``` mkdir /home/username/new_folder ``` 这将在绝对路径"/home/username/"下创建名为"new_folder"的新目录。 ### rmdir 指令删除空目录 rmdir指令是用于在命令行界面中删除一个空目录的命令。它代表"remove directory",可以使用绝对路径或相对路径。 例如要删除当前工作目录下名为“old_folder”的空目录,可以输入以下命令: ``` rmdir old_folder ``` 如果想要在上一级目录中删除该目录,可以使用相对路径输入以下命令: ``` rmdir ../old_folder ``` 其中".."表示上一级目录。 如果要在绝对路径中删除目录,则可以输入类似以下命令: ``` rmdir /home/username/old_folder ``` 这将删除绝对路径"/home/username/old_folder"下的空目录。注意,rmdir只能删除空目录。如需删除非空目录,请使用rm -r命令。 ### touch 指令 touch是一个命令行工具,用于创建空文件或更改现有文件的访问和修改时间戳。可以使用以下方式调用: ``` touch [选项] 文件名 ``` 其中文件名是要创建或更改时间戳的文件的名称。常见的选项包括: - -a:仅更改访问时间戳。 - -m:仅更改修改时间戳。 - -c:如果文件不存在,则不创建文件。 - -t:使用指定的日期和时间设置文件的时间戳。 ### cp 指令 cp是一个命令行工具,用于复制文件或目录。它可以使用以下方式调用: ``` cp [选项] 源文件 目标文件 ``` 其中源文件是要复制的文件或目录的名称,而目标文件是复制后的文件或目录的名称。常见的选项包括: - -r:复制目录及其内容。 - -i:在复制前提示用户确认操作。 - -v:显示正在复制的文件名。 - -u:仅在源文件比目标文件新时才复制文件。 - -p:保留源文件的权限设置、所有者和时间戳等属性。 ### rm 指令 rm是一个命令行工具,用于删除文件或目录。它可以使用以下方式调用: ``` rm [选项] 文件 ``` 其中文件是要删除的文件或目录的名称。常见的选项包括: - -r:递归地删除目录及其内容。 - -f:强制删除,不提示用户确认操作。 - -i:在删除前提示用户确认操作。 - -v:显示正在删除的文件名。 ### mv 指令 mv是一个命令行工具,用于移动或重命名文件或目录。它可以使用以下方式调用: ``` mv [选项] 源文件 目标文件 ``` 其中源文件是要移动或重命名的文件或目录的名称,目标文件是文件或目录的新名称或位置。如果目标文件已经存在,则源文件将被覆盖。常见的选项包括: - -i:在移动或重命名前提示用户确认操作。 - -v:显示正在移动或重命名的文件名。 ### cat 指令 cat是一个命令行工具,用于查看文件内容或将多个文件合并。它可以使用以下方式调用: ``` cat [选项] 文件名 ``` 其中文件名是要查看或合并的文件的名称。如果指定了多个文件名,则它们将按顺序合并。常见的选项包括: - -n:显示每一行的行号。 - -b:只在行首非空格字符后面标识行号。 - -s:将相邻的空白行合并为一个空白行。 - -v:显示不可打印字符的转义序列。 ### more 指令 more是一个命令行工具,用于逐页查看文件内容。它可以使用以下方式调用: ``` more [选项] 文件名 ``` 其中文件名是要查看的文件的名称。常见的选项包括: - -n:显示每一行的行号。 - -p:从指定的正则表达式模式匹配的行开始查看。 - -f:在显示页面时不清空屏幕。 - -s:将相邻的空白行合并为一个空白行。 在使用more时,可以通过按下空格键查看下一页内容,按下回车键查看下一行内容,按下q键退出查看。 ### less 指令 less是一个命令行工具,用于逐页查看文件内容,与more相似但功能更强大。它可以使用以下方式调用: ``` less [选项] 文件名 ``` 其中文件名是要查看的文件的名称。常见的选项包括: - -N:显示每一行的行号。 - -p pattern:从指定的正则表达式模式匹配的行开始查看。 - -F:在只有一页内容时不进入分屏模式。 - -S:将长行截断以适应终端窗口宽度。 - -i:搜索时忽略大小写区别。 在使用less时,可以通过按下空格键查看下一页内容,按下b键查看前一页内容,按下/键进行搜索,按下q键退出查看。 ### echo 指令 echo指令可以用于多种场景 - 显示文本信息: ``` echo "Hello World" ``` - 输出环境变量值: ``` echo $PATH ``` - 将文本输出到文件中: ``` echo "Hello World" > output.txt ``` - 在脚本中输出调试信息: ``` DEBUG=true if [ "$DEBUG" = true ]; then echo "Debug information" fi ``` - 在终端中显示特殊字符或控制字符: ``` echo -e "This is a\ttab character." ``` ### head 指令 head指令可以用于显示文件的头部内容,默认情况下它会显示文件的前10行。以下是head指令常用的选项和使用案例: - 显示文件的前n行(n为数字): ``` head -n 5 file.txt ``` - 显示文件的前n个字节(n为数字): ``` head -c 100 file.txt ``` - 显示多个文件的头部内容: ``` head file1.txt file2.txt ``` - 在输出中显示文件名: ``` head -v file.txt ``` - 显示文件的所有内容,直到遇到某个特定字符或字符串: ``` head -n -1 file.txt ``` 这个命令将显示除了最后一行以外的所有行。 - 以二进制方式显示文件头部: ``` head -c 20 -b file.txt ``` 这个命令将显示文件的前20个字节的二进制表示形式。