编辑
2026-04-01
undefined
00
请注意,本文编写于 38 天前,最后修改于 38 天前,其中某些信息可能已经过时。

目录

终端
Shell
设置Shell
Bash
Bash基础语法
注释
常用基本命令
文件目录类
echo命令
tail命令
history命令
时间日期类
用户权限类
who命令
搜索查找类
which命令
磁盘管理类
磁盘分区
yum命令
apt命令
压缩解压缩

终端

终端是主机的一个远程输入/输出设备。在早期计算机主机昂贵,一个主机一般会配置多个终端,这些终端本身不具备计算能力,仅仅承担信息输入输出的工作,运算和处理均由主机来完成。个人计算机可以运行称为终端仿真程序来模仿一个终端的工作。

通常在使用Linux时,并不是直接与系统打交道,而是通过一个叫做 Shell 的中间程序来完成,在图形界面下为了实现在一个窗口中完成用户输入和显示输出,Linux系统还提供了一个叫做终端模拟器的程序(Terminal)。

终端本质上对应着 Linux 上的 /dev/tty 设备,Linux 多用户登录就是通过不同的 /dev/tty 设备完成的,Linux 默认提供了 6 个纯命令行界面的 “terminal”(准确的说应该是 6 个 virtual consoles)来让用户登录。

在物理机系统上可以通过使用[Ctrl]+[Alt]+[F1]~[F6]进行切换。当切换到其中一个终端后想要切换回图形界面,可以按下[Ctrl]+[Alt]+[F7]来完成。

Shell

Shell和桌面一样是计算机接收用户指令的一种环境,其内置了一系列命令,如 cd、mkdir 等,用户通过这些指令能操作计算机执行指定的操作。

不同的操作系统具有不同的Shell,不同Shell在终端的提示也不完全相同: Shell缩写完整路径root 用户提示符非 root 用户Bourne shellsh/bin/sh#``$C shellcsh/bin/csh#``%Korn shellksh/bin/ksh#``$Bourne-Again shellbash/bin/bash[user@hostname path] #``[user@hostname path] $Z shellzsh/bin/zsh<hostname>#``<hostname>%

设置Shell

执行which $SHELL查看系统当前Shell,执行cat /etc/shells列出当前系统所有可用的Shell,执行chsh -s /bin/bash修改默认Shell为Bash。

Bash

Bash是大多数Linux发行版的默认Shell。Shell命令除了直接在终端输入外,还可以写在Shell脚本文件中,文件后缀名为.sh。对于Bash而言,在文件第一行添加#!/bin/bash告知终端使用Bash执行这个脚本文件。

执行/bin/bash --version查看当前Bash版本。

若当前Shell不是Bash,输入bash进入Bash环境。输入exit命令或按Ctrl + d退出Bash环境。

Bash基础语法

注释

单行注释是一行文本,以井号(#)开头,从该字符开始一直延伸到该行结束。在此行内,任何内容都会被 Shell解释器忽略。

Shell脚本也支持多行注释,也称块注释。在Bash Shell中,块注释通常使用以下语法:

: ' 这是多注释 这是多注释 这是多注释 这是多注释 '

Bash 中的单引号和双引号都可用来表示字符串,不过单引号会保留字符串的字面意思,如单引号中$和```不会进行计算,</code>也不会转义。

a=1 echo '$a' # 输出:$a echo "$a" # 输出:1 echo '`date`' # 输出:`date` echo "`date`" # 输出:2023年 09月 08日 星期五 15:06:03 CST

双引号的另一个用处是保证命令按原始格式输出:

echo "ls -l"

反斜杠</code>在 Bash 中用法如下:

  1. 表示转义字符,用来保留下一个字符的字面值
  2. 位于一行末尾且其后没有引号时,表示这一行还没结束

常用基本命令

Shell可以看做是一个命令解释器,提供了交互式的文本控制台界面,通过终端控制台输入命令,由Shell进行解释并最终交给内核执行。

一些基础功能的系统命令是直接内嵌在Shell中的,系统加载启动之后会随着Shell一起加载,常驻系统内存中。这些命令被称为“内置(built-in)命令”;相应的其他命令被称为“外部命令”。

判断是否内置命令:type 命令

help命令获得Shell内置命令的帮助信息,外部命令帮助信息可用:命令 --help

命令通用格式:command [-options] [parameter] 常用快捷键功能ctrl + c强制停止ctrl + d退出或登出ctrl + l清屏,等同于clear,彻底清屏是:resettab提示(更重要的是可以防止敲错)上下键查找执行过的命令ctrl + a跳到命令开头,ctrl + e:跳到命令结尾ctrl + 左键头向左跳一个单词,ctrl + 右键头:向右跳一个单词

文件目录类

cd回到家目录cd -回到上一次所在目录cd ..回到当前目录的上一级目录cd -P a/如果目标目录是软链接,则直接切换到软链接指向的实际目录 创建多级目录:mkdir -p a/b/c

删除多级目录:rmdir -p a/b/c

删除非空目录:rm -rf 目录名

重命名目录:mv old_dir_name new_dir_name

# 复制目录 cp -r a/ b/ # 有些命令可能是别名,在命令前加反斜杠\使用原生命令 \cp -r a/ b/ # 查看别名 alias # 删库跑路,千万不要使用 rm -rf /*

echo命令

输出内容到控制台。-e:支持反斜线控制的字符转换。

$ echo 'abc\n123' abc\n123 $ echo -e 'abc\n123' abc 123 # 输出某个变量值内容 $ echo $USER root

tail命令

输出文件尾部。 tail -f 文件:持续显示文件最新追加的内容,按Ctrl + s暂停监听,按Ctrl + q继续监听。

history命令

查看历史命令:history

快捷键:ctrl + r,输入内容去匹配历史命令(reverse-i-search)`py': python。如果搜索到的内容是需要的,按回车键直接执行;键盘左右键,可以得到此命令(不执行)。

清空历史命令:history -c

时间日期类

$ date "+%Y-%m-%d %H:%M:%S" 2023-09-15 12:48:49 # 查看时间戳 $ date +%s 1694753377 # 设置系统当前时间 $ date -s "2123-09-15 12:48:49" # 同步时间 $ ntpdate

用户权限类

who命令

# 显示当前所有登录的用户信息 who # 查看当前用户,实际用户(登陆系统时所使用的用户) who am i # 查看当前用户,有效用户(当前执行操作的用户) whoami

搜索查找类

which命令

查找命令所在位置。

# which cd /usr/bin/cd # whereis cd cd: /usr/bin/cd /usr/share/man/man1/cd.1.gz /usr/share/man/mann/cd.n.gz

磁盘管理类

磁盘分区

首先添加一个硬盘,使用命令fdisk -l查看,发现没有找到新加的硬盘,使用命令lsblk查看,也是没有找到新加的硬盘,这时需要重启:reboot。重启完,使用命令lsblk查看,发现多了一块硬盘,假如硬盘为/dev/sdb。

接下来对硬盘进行分区:fdisk /dev/sdb,输入n开始分区,输入p选择主分区,一直回车即可。输入命令p显示当前磁盘分区,接着输入w写入分区信息并退出。

接下来需要对硬盘进行格式化文件系统操作:mkfs -t xfs /dev/sdb1,查看信息:lsblk -f

最后,将硬盘挂载到指定目录:mount /dev/sdb1 /home/test/。想卸载的话:unmount /home/test/

yum命令

CentOS使用yum管理器,用于自动化安装配置Linux软件,并可以自动解决依赖问题。

语法:yum [-y] [install | remove | search] 软件名称

选项:-y,自动确认,无需手动确认安装或卸载过程。install:安装,remove:卸载,search:搜索。

yum命令需要root权限,可以su切换到root,或使用sudo提权。

apt命令

Ubuntu使用apt管理器。语法:apt [-y] [install | remove | search] 软件名称

压缩解压缩

tar命令用于压缩和解压缩,命令选项如下: -c:创建打包文件 -v:显示打包或解包详细信息 -f:指定文件名称,必须放到所有选项后面 -z:压缩(.gz) -j:压缩(.bz2),压缩率更高 -x:解压缩 -C:解压到指定目录

压缩:tar -zcvf 1.tar.gz *.txttar -jcvf 1.bz2 *.txt

解压缩:tar -zxvf 1.tar.gztar -jxvf 1.bz2,指定目录tar -zxvf 1.tar.gz -C ./abc

本文作者:a

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!