Linux基础常识
2025-08-22 15:59:26,
1 什么是shell

shell是Linux系统的用户界面,提供了用户与内核交互的一种接口,它接收用户输入的命令并到送到内核去执行,因此也被称为Linux的命令解释器。

显示系统当前使用的shell

echo ${SHELL}				

# /bin/bash

查看系统当前使用的所有shell

cat /etc/shells 

# /bin/sh
# /bin/bash
# /usr/bin/sh
# /usr/bin/bash
# /bin/tcsh
# /bin/csh
2 设置主机名
# 临时生效
hostname localhost

# 持久生效,支持CentOS7和Ubuntu18.04以上版本
hostnamectl set-hostname locahost
3 命令提示符

提示符格式说明:

  • \e 控制符\033
  • \u 当前用户
  • \h 主机名简称
  • \H 主机名
  • \w 当前工作目录
  • \W 当前工作目录基名
  • \t 24小时时间格式
  • \T 12小时时间格式
  • ! 命令历史数
  • 开机后命令历史数

# 查看提示符格式
cat $PS1

# 在CentOS系统实现持久保存提示符格式
echo 'PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"' > /etc/profile.d/env.sh

# 实现Ubuntu系统持久保存提示符格式
echo "PS1='\[\e[1;35m\][\u@\h \W]\\$\[\e[0m\]'" >> .bashrc
4 内部命令与外部命令
  • 内部命令:由shell自带的,而且通过某命令形式提供, ,用户登录后自动加载并常驻内存中
  • 外部命令:在文件系统路径下有对应的可执行程序文件,当执行命令时才从磁盘加载至内存中,执行完毕后从内存中删除

区分内部命令与外部命令

type commond

内部命令管理

help						# 查看所有内部命令
enable commond	# 启用内部命令
enable -n commond		#禁用内部命令
enable -n 			# 查看所有禁用的内部命令

外部命令管理

# 查看外部命令文件执行路径
which -a --skip-alias ${commond}

Hash缓存表

系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找,利用hash缓存表可大大提高命令的调用速率

hash 命令常见用法

  • hash 显示hash缓存
  • hash -l 显示hash缓存,可作为输入使用
  • hash -p path name 将命令全路径path起别名为name
  • hash -t name 打印缓存中name的路径
  • hash -d name 清除name缓存
  • hash -r 清除缓存
5 命令别名

对于经常执行的较长的命令,可以将其定义成较短的别名,以方便执行

alias						# 查看当前定义的所有别名
alias name='commond'				# 定义别名
alias name			# 撤销指定别名
unlias -a				# 撤销所有别名

注意:在命令行中定义的别名,只在当前shell进程中有效,如果想永久生效,要定义在配置文件中

  • ~/.bashrc 仅对当前用户生效
  • /etc/bashrc 对所有用户生效

编辑配置文件写进的新配置不会立即生效,需要bash进程重新读取配置文件

source ~/.bashrc
source /etc/bashrc
6 常见命令
lscpu									
cat /proc/cpuinfo					
cat /etc/shells 

# /bin/sh
# /bin/bash
# /usr/bin/sh
# /usr/bin/bash
# /bin/tcsh
# /bin/csh
0
cat /etc/shells 

# /bin/sh
# /bin/bash
# /usr/bin/sh
# /usr/bin/bash
# /bin/tcsh
# /bin/csh
1
cat /etc/shells 

# /bin/sh
# /bin/bash
# /usr/bin/sh
# /usr/bin/bash
# /bin/tcsh
# /bin/csh
2
cat /etc/shells 

# /bin/sh
# /bin/bash
# /usr/bin/sh
# /usr/bin/bash
# /bin/tcsh
# /bin/csh
3
cat /etc/shells 

# /bin/sh
# /bin/bash
# /usr/bin/sh
# /usr/bin/bash
# /bin/tcsh
# /bin/csh
4
cat /etc/shells 

# /bin/sh
# /bin/bash
# /usr/bin/sh
# /usr/bin/bash
# /bin/tcsh
# /bin/csh
5
cat /etc/shells 

# /bin/sh
# /bin/bash
# /usr/bin/sh
# /usr/bin/bash
# /bin/tcsh
# /bin/csh
6
cat /etc/shells 

# /bin/sh
# /bin/bash
# /usr/bin/sh
# /usr/bin/bash
# /bin/tcsh
# /bin/csh
7
cat /etc/shells 

# /bin/sh
# /bin/bash
# /usr/bin/sh
# /usr/bin/bash
# /bin/tcsh
# /bin/csh
8
7 会话管理
cat /etc/shells 

# /bin/sh
# /bin/bash
# /usr/bin/sh
# /usr/bin/bash
# /bin/tcsh
# /bin/csh
9

Tmux 是一个终端复用器(terminal multiplexer),类似 screen,但是更易用,也更强大,Tmux 就是会话与窗口的"解绑"工具,将它们彻底分离,功能如下:

  • 它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。
  • 它可以让新窗口"接入"已经存在的会话。
  • 它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
  • 它还支持窗口任意的垂直和水平拆分
# 临时生效
hostname localhost

# 持久生效,支持CentOS7和Ubuntu18.04以上版本
hostnamectl set-hostname locahost
0
# 临时生效
hostname localhost

# 持久生效,支持CentOS7和Ubuntu18.04以上版本
hostnamectl set-hostname locahost
1
# 临时生效
hostname localhost

# 持久生效,支持CentOS7和Ubuntu18.04以上版本
hostnamectl set-hostname locahost
2
# 临时生效
hostname localhost

# 持久生效,支持CentOS7和Ubuntu18.04以上版本
hostnamectl set-hostname locahost
3
8 echo输出信息
# 临时生效
hostname localhost

# 持久生效,支持CentOS7和Ubuntu18.04以上版本
hostnamectl set-hostname locahost
4

选项:

  • -E (默认)不支持 \ 解释功能
  • -n 不自动换行
  • -e 启用 \ 字符的解释功能
# 临时生效
hostname localhost

# 持久生效,支持CentOS7和Ubuntu18.04以上版本
hostnamectl set-hostname locahost
5

启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出

  • \a 发出警告声
  • \b 退格键
  • \c 最后不加上换行符号
  • \e escape,相当于\033
  • \n 换行且光标移至行首
  • \r 回车,即光标移至行首,但不换行
  • \t 插入tab
  • \ 插入\字符
  • \0nnn 插入nnn(八进制)所代表的ASCII字符
  • \xHH插入HH(十六进制)所代表的ASCII数字(man 7 ascii)

在终端中,ANSI定义了用于屏幕显示的Escape屏幕控制码,具有颜色的字符,其格式如下:

# 临时生效
hostname localhost

# 持久生效,支持CentOS7和Ubuntu18.04以上版本
hostnamectl set-hostname locahost
6

\033[30m -- \033[37m 设置前景色

\033[40m -- \033[47m 设置背景色

# 临时生效
hostname localhost

# 持久生效,支持CentOS7和Ubuntu18.04以上版本
hostnamectl set-hostname locahost
7

加颜色只是以下控制码中的一种,下面是常见的一些ANSI控制码:

# 临时生效
hostname localhost

# 持久生效,支持CentOS7和Ubuntu18.04以上版本
hostnamectl set-hostname locahost
8
9 bash快捷键
# 临时生效
hostname localhost

# 持久生效,支持CentOS7和Ubuntu18.04以上版本
hostnamectl set-hostname locahost
9
10 文件通配符
# 查看提示符格式
cat $PS1

# 在CentOS系统实现持久保存提示符格式
echo 'PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"' > /etc/profile.d/env.sh

# 实现Ubuntu系统持久保存提示符格式
echo "PS1='\[\e[1;35m\][\u@\h \W]\\$\[\e[0m\]'" >> .bashrc
0
# 查看提示符格式
cat $PS1

# 在CentOS系统实现持久保存提示符格式
echo 'PS1="\[\e[1;32m\][\t \[\e[1;33m\]\u\[\e[35m\]@\h\[\e[1;31m\] \W\[\e[1;32m\]]\[\e[0m\]\\$"' > /etc/profile.d/env.sh

# 实现Ubuntu系统持久保存提示符格式
echo "PS1='\[\e[1;35m\][\u@\h \W]\\$\[\e[0m\]'" >> .bashrc
1
11 安全删除文件

rm 虽然删除了文件,但是被删除的文件仍然可能被恢复,在安全要求较高的场景下,可以使用shred安全删除文件

  • -z 最后一次覆盖添加0,以隐藏覆盖操作
  • -v 能够显示操作进度
  • -u 覆盖后截断并删除文件
  • -n # 指定覆盖文件内容的次数(默认值是3次)

Tip

请,本文为笔者整理的学习笔记,仅供个人参考和梳理思路,错漏之处请多多指导。

如,本文参考各种资源整理未,因此未申请原创声明,如有侵权请联系删除。

若,如果需要转载请各位大佬标明出处,园子不大多多捧场。

另,本文仅做学习使用,请勿用于非法途径。