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
# 临时生效
hostname localhost
# 持久生效,支持CentOS7和Ubuntu18.04以上版本
hostnamectl set-hostname locahost
提示符格式说明:
# 查看提示符格式
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
区分内部命令与外部命令
type commond
内部命令管理
help # 查看所有内部命令
enable commond # 启用内部命令
enable -n commond #禁用内部命令
enable -n # 查看所有禁用的内部命令
外部命令管理
# 查看外部命令文件执行路径
which -a --skip-alias ${commond}
Hash缓存表
系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将执行之,如果不存在,将会去PATH路径下寻找,利用hash缓存表可大大提高命令的调用速率
hash 命令常见用法
对于经常执行的较长的命令,可以将其定义成较短的别名,以方便执行
alias # 查看当前定义的所有别名
alias name='commond' # 定义别名
alias name # 撤销指定别名
unlias -a # 撤销所有别名
注意:在命令行中定义的别名,只在当前shell进程中有效,如果想永久生效,要定义在配置文件中
编辑配置文件写进的新配置不会立即生效,需要bash进程重新读取配置文件
source ~/.bashrc
source /etc/bashrc
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
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
# 临时生效
hostname localhost
# 持久生效,支持CentOS7和Ubuntu18.04以上版本
hostnamectl set-hostname locahost
4
选项:
# 临时生效
hostname localhost
# 持久生效,支持CentOS7和Ubuntu18.04以上版本
hostnamectl set-hostname locahost
5
启用命令选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出
在终端中,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
# 临时生效
hostname localhost
# 持久生效,支持CentOS7和Ubuntu18.04以上版本
hostnamectl set-hostname locahost
9
# 查看提示符格式
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
rm 虽然删除了文件,但是被删除的文件仍然可能被恢复,在安全要求较高的场景下,可以使用shred安全删除文件
Tip
请,本文为笔者整理的学习笔记,仅供个人参考和梳理思路,错漏之处请多多指导。
如,本文参考各种资源整理未,因此未申请原创声明,如有侵权请联系删除。
若,如果需要转载请各位大佬标明出处,园子不大多多捧场。
另,本文仅做学习使用,请勿用于非法途径。