Linux 操作系统常用命令与操作指南

前言

本文将为大家介绍Linux操作系统中的常用命令和操作。这些命令对于初学者和Linux用户都非常重要,掌握它们将大大提高在Linux环境下的工作效率。


一、Linux是什么?

Linux是一款开源的类Unix操作系统,其具有高度的可定制性和灵活性,适用于各种计算机和设备,从个人计算机到大型服务器和嵌入式系统。由于其安全性、稳定性和丰富的软件资源,Linux已成为企业和组织的首选操作系统,同时也是科研和学术界的热门选择。Linux的开放源代码促进了全球协作和创新,形成了一个不断发展和进步的生态系统。

二、Linux 常用命令

1.特殊符号

在Linux系统中,有一些特殊符号用于表示特定的路径或目录,通过使用这些特殊符号,我们可以方便地引用和导航到不同的目录和文件。

  • . :当目录或文件名以 .开始时,表示它是一个隐藏的文件;路径以 .开始时,表示当前路径
  • .. :表示当前目录的上一级目录,即父目录
  • ~ :表示当前用户的home目录,也就是用户的个人主目录
  • / :表示根目录,它是整个文件系统的起始点

2.快捷方式

在Linux终端中,有一些快捷方式可以提高命令行的效率和便利性。

  • Tab键:自动补全和提示。按下Tab键可以自动补全命令或文件路径,如果输入的命令或路径是唯一的,按下Tab键会自动补全整个命令或路径。如果有多个匹配项,按下Tab键会显示可能的补全选项,方便选择。
  • history命令 :显示历史执行记录。通过输入history命令,可以显示当前终端会话中执行过的历史命令记录。这对于回顾之前执行过的命令或者查找某个特定命令非常有用,可以使用上下方向键在历史命令中进行浏览,并使用回车键重新执行选中的命令。

3.常用操作命令

(1) 显示目录内容:ls(list files)命令

ls(list files)命令用于显示目录中的文件和子目录。以下是几个常用的选项:

  • ls:显示目录中的文件和子目录
  • ls -a:显示所有文件及目录,包括隐藏文件(以.开头的文件和目录)
  • ls -l:以长格式显示文件信息,包括文件名称、文件类型、权限、拥有者、文件大小等。可以使用ll命令作为ls -l的别名

(2) 切换目录:cd(change directory)命令

cd(change directory)命令用于在终端中切换目录。以下是几个常用的目录引用符号:

  • ~ :表示用户的home目录,即个人主目录
  • . :表示目前所在目录,也就是当前工作目录
  • .. :表示目前目录位置的上一层目录,即父目录

使用cd命令时,可以加上目录路径来切换到指定的目录。例如,cd /path/directory会将当前工作目录切换为/path/directory。如果只输入cd命令而不加目录路径,会将当前工作目录切换至用户的home目录。

(3) 创建、删除:

mkdir(make directory)命令、touch命令和rm(remove)命令用于在终端中进行文件和目录的创建、删除操作。

  • mkdir(make directory)命令:用于创建目录

    • mkdir -p:确保父目录名称存在,不存在则创建
  • touch命令:创建一个空文件

  • rm(remove)命令:用于删除一个文件或目录

    • rm -f:强制直接删除,无需用户确认
    • rm -r:将目录及以下所有递归逐一删除

(4) 复制、移动:

mv(move file)命令和cp(copy file)命令用于在终端中进行文件和目录的复制、移动操作。

  • mv(move file)命令:用于文件或目录改名,或将文件或目录移入其它位置

  • cp(copy file)命令:用于复制文件或目录

    • cp -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件

(5) 文件内容查看:

cat(concatenate)命令、more命令和tail命令用于在终端中查看文件内容。在查看文件内容时,要根据文件大小和内容选择合适的命令和选项,以便高效地获取所需信息。

  • cat(concatenate)命令:用于连接文件并打印到标准输出设备上(适合小文件内容查看)

  • more命令:类似cat命令,会以一页一页的形式显示,翻页结束自动退出(适合大文件查看),按space键翻下一页,按b往回上一页

  • tail命令:用于查看文件的结尾部分内容

    • tail -n:用于显示行数,默认为10,即显示10行的内容
    • tail -f:用于实时显示文件动态追加的内容。会把文件里的最尾部的内容显示在屏幕上,并不断刷新,只要文件有更新,就可以看到最新的文件内容

(6) 打包与解包命令:

打包与解包: 在Linux系统中,我们经常需要对文件进行打包和解包操作。这时,我们可以使用tar命令来完成这些任务。tar命令是一个强大的工具程序,常用于备份文件,并允许用户加入或解开备份文件内的文件。

  • tar命令的基本语法如下:

    • tar [选项] [文件...]
  • 常用的选项包括:

    • -c 或 --create:用于建立新的备份文件
    • -x 或 --extract 或 --get:用于从备份文件中还原文件
    • -v 或 --verbose:用于显示指令执行过程,方便查看打包或解包的进度和结果
    • -f <备份文件> 或 --file=<备份文件>:用于指定备份文件的名称

示例(这个命令会将file1、file2和file3打包成一个名为archive.tar的备份文件,并显示打包的过程):

bash 复制代码
tar -cvf archive.tar file1 file2 file3

打包压缩与解包解压缩: 在打包备份或解包的过程中,还可以通过指定压缩算法对打包的文件进行压缩,以节省存储空间。同样地,在解压的时候也需要指定相应的算法来解压文件。

  • tar命令支持多种压缩算法,其中常用的包括gzip算法。要使用gzip算法进行压缩或解压,可以添加以下选项:

    • -z 或 --gzip 或 --ungzip:通过gzip指令处理备份文件。

示例(这个命令会将file1、file2和file3打包成一个名为archive.tar的备份文件,并使用gzip算法进行压缩,生成archive.tar.gz文件,并显示打包压缩的过程):

bash 复制代码
tar -czvf archive.tar.gz file1 file2 file3

(7) 其他:

  • | 管道命令:将前一个命令执行的结果作为内容交给下一个命令处理,可以形成多级管道操作。例如,命令1 | 命令2:将命令1的结果通过命令2做进一步的处理。
  • echo命令:用于内容的输出,将内容输出到console控制台上。
  • > 输出重定向(覆盖)命令 :command > file :执行command然后将输出的内容存入file,file内已经存在的内容将被新内容覆盖替换。
  • >> 输出重定向(追加)命令 :command >> file :执行command然后将输出的内容存入file,新内容追加在文件末尾。

4.常用系统命令

(1) 时间、日期查看:

  • date命令:用来显示或设定系统的日期与时间,格式设定为一个加号后接数个标记
  • cal(calendar)命令:用于显示当前或指定日期的公历

(2) 内存、磁盘使用率查看:

  • free命令:用于显示内存状态。会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等
  • df(disk free)命令:用于显示目前在linux系统上的文件系统磁盘使用情况统计

(3) 进程查看:

  • ps(process status)命令:用于显示当前进程的状态
  • jps命令:JDK自带的命令,用于查看本机运行的Java进程情况

5.vi / vim 文本编辑器

vi/vim是一款功能强大的文本编辑器,广泛应用于Unix和类Unix操作系统,也支持Windows等其他平台。它采用命令行界面,拥有插入模式、命令模式和可视模式三种主要模式。vi/vim具备搜索替换、语法高亮、自动缩进等强大编辑功能,同时允许用户定制快捷键和行为。

(1) 打开与新建文件:

  • vim / path / file

    • 如果文件不存在,则新建文件,编辑器左下角提示 new file
    • 如果文件存在,则打开文件,进入命令模式

(2) vim编辑器3种工作模式:

  • 命令模式(Command mode):

    • 所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能
    • 不能自由进行文本编辑
  • 输入模式(Insert mode):

    • 编辑模式、插入模式
    • 可以对文件内容进行自由编辑
  • 底线命令模式(Last line mode):

    • 以 : 开始,通常用于文件的保存、退出

(3) 命令模式<- ->输入模式:

  • i :进入到编辑输入模式后,定位到当前光标前面
  • o :进入到编辑输入模式后,在当前行的后面添加一行空行
  • 输入模式下按ESC退回到命令模式

(4) 命令模式<- ->底线命令模式:

  • 在命令模式下,输入 : 进入底线命令模式

  • 常用的底线命令:

    • : q 退出
    • : w 保存
    • : wq 保存退出
    • : wq! 强制保存退出
  • 命令模式下按shift + zz ,可以实现快速的保存退出

(5) vim基本操作命令:

  • 光标移动:

    • 方向键控制移动
    • 翻页 pageup pagedown
    • 行首(home 或 0) 行尾(end 或 $)
    • 跳到文件最后一行 G
    • 跳到文件第一行 gg
  • 复制粘贴:

    • 复制:

      • yy:复制光标当前所在行内容
      • nyy:复制当前行往下 n 行
    • 粘贴:

      • p:当前行的下一行粘贴
      • P:当前行的上一行粘贴
  • 删除、撤销:

    • 删除:

      • dd:删除光标所在当前行内容
      • ndd:删除当前行往下 n 行
    • 撤销、反撤销:

      • u:撤销上一步的操作
      • ctrl + r:反撤销

6.权限管理命令

在Linux系统中,权限管理是一项至关重要的任务。为了有效地控制文件和目录的访问权限,以下是一些常用的权限管理命令:

  • chmod(change mode)命令:用于修改文件或目录的权限设置。例如,chmod 755 file:设置文件所有者为可读/可写/可执行权限,同组用户和其他用户为可读/可执行权限。
  • chown(change owner)命令:用于改变文件或目录的所有者。例如,chown user:group file:将文件的所有者更改为user,所属组更改为group。
  • chgrp(change group)命令:用于改变文件或目录的所属组。例如,chgrp group file:将文件的所属组更改为group。

7.网络相关命令

在Linux系统中,网络相关命令也是非常常用的。以下是一些常用的网络相关命令:

  • ping命令 :用于测试网络连接是否正常。例如,ping www.google.com:向Google发送一个ICMP回显请求,检查网络是否连通。
  • ifconfig(interface configuration)命令:用于查看和配置网络接口。例如,ifconfig -a:显示所有网络接口的信息。
  • netstat(network statistics)命令:用于显示网络连接、路由表、接口统计等网络相关信息。例如,netstat -tuln:显示所有监听中的TCP/UDP端口。
  • ssh(secure shell)命令:用于远程登录到其他Linux系统。例如,ssh user@host:使用用户名user登录到主机host。

8.磁盘操作命令

Linux系统中,磁盘操作也是常见的任务之一。以下是一些常用的磁盘操作命令:

  • fdisk命令:用于创建、删除、查看磁盘分区。例如,fdisk -l /dev/sda:列出/dev/sda磁盘上的所有分区信息。
  • mkfs(make filesystem)命令:用于在分区上创建文件系统。例如,mkfs.ext4 /dev/sda1:在/dev/sda1分区上创建一个ext4文件系统。
  • mount命令:用于挂载文件系统到目录上。例如,mount /dev/sda1 /mnt:将/dev/sda1分区挂载到/mnt目录上。
  • umount命令:用于卸载已挂载的文件系统。例如,umount /mnt:卸载/mnt目录上的文件系统。

9.系统监控与性能分析命令

在Linux系统中,监控系统和性能分析也是非常重要的任务。以下是一些常用的系统监控与性能分析命令:

  • top命令:用于实时显示系统中各个进程的资源占用状况
  • ps aux命令:用于查看所有进程的详细信息
  • vmstat命令:用于显示虚拟内存统计信息
  • iostat命令:用于显示磁盘I/O统计信息
  • sar命令:用于收集、报告和保存系统活动信息
  • mpstat命令:用于显示多处理器的统计信息
  • pidstat命令:用于显示进程的CPU、内存、I/O等资源的占用情况
  • perf命令:用于性能分析和调优,支持硬件和软件性能事件的采样和分析

总结

本文介绍了Linux操作系统中的一些常用命令和操作,包括特殊符号、快捷方式、常用操作命令、常用系统命令、vi/vim文本编辑器使用指南、权限管理命令、网络相关命令、磁盘操作命令以及系统监控与性能分析命令等。掌握这些命令和操作将大大提高你在Linux环境下的工作效率,希望本文能对大家有所帮助。

相关推荐
运维佬1 小时前
CentOS 9 配置网卡
linux·centos
轩轩曲觞阁1 小时前
Linux网络——网络初识
linux·网络
2401_840192271 小时前
python基础大杂烩
linux·开发语言·python
weixin_438197382 小时前
K8S创建云主机配置docker仓库
linux·云原生·容器·eureka·kubernetes
舞动CPU8 小时前
linux c/c++最高效的计时方法
linux·运维·服务器
秦jh_10 小时前
【Linux】多线程(概念,控制)
linux·运维·前端
keep__go11 小时前
Linux 批量配置互信
linux·运维·服务器·数据库·shell
矛取矛求11 小时前
Linux中给普通账户一次性提权
linux·运维·服务器
Fanstay98511 小时前
在Linux中使用Nginx和Docker进行项目部署
linux·nginx·docker
大熊程序猿11 小时前
ubuntu 安装kafka-eagle
linux·ubuntu·kafka