首页 > 系统相关 >Linux基础常识

Linux基础常识

时间:2024-10-30 08:58:05浏览次数:1  
标签:字符 Ctrl 常识 基础 命令 Linux 033 窗格 光标

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					
free									
cat /proc/meminfo	
lsblk
cat /proc/partitions
arch
uname -r
cat /etc/os-release
cat /etc/redhat-release
lsb_release -a
cat /etc/os-release
cat /etc/issue
lsb_release -a
lsb_release -is
lsb_release -cs
lsb_release -rs
halt
poweroff
reboot
shutdown -h/-r now/+n
shutdown -h/-r hh:mm
whoami
who
w
7 会话管理
screen -ls				# 查看所有会话
screen -S	name				# 创建会话
ctrl+a,d					# 剥离会话
screen -x name				# 加入会话
exit							# 退出并关闭会话
screen -r name  			# 恢复某会话

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

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

# 分离会话
tmux detach
ctrl+b+d

# 接入会话
tmux attach -t <session-name>

# 杀死会话
tmux kill-session -t <session-name>

# 切换会话
tmux switch -t <session-name>

# 上下切分窗格
tmux split-window

# 左右切分窗格
tmux split-window -h

# 列出所有快捷键,及其对应命令
tmux list-keys

# 列出tmux所有命令及其参数
tmux list-commands
Ctrl+b %:#划分左右两个窗格
Ctrl+b ":#划分上下两个窗格"
Ctrl+b <arrow key>:光标切换到其他窗格。<arrow key>是指向要切换到的窗格的方向键,比如切换
到下方窗格,就按方向键↓
Ctrl+b ;:光标切换到上一个窗格
Ctrl+b o:光标切换到下一个窗格。
Ctrl+b {:当前窗格左移
Ctrl+b }:当前窗格右移
Ctrl+b Ctrl+o:当前窗格上移
Ctrl+b Alt+o:当前窗格下移
Ctrl+b x:关闭当前窗格
Ctrl+b !:将当前窗格拆分为一个独立窗口
Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小
Ctrl+b Ctrl+<arrow key>:按箭头方向调整窗格大小
Ctrl+b q:显示窗格编号
tmux new-window				# 新建窗口
tmux new-window -n <window-name>				# 新建一个指定名的窗口
tmux select-window -t <window-number>				# 切换到指定窗口
tmux select-window -t <window-name>					# 切换到指定窗口
Ctrl+b c:创建一个新窗口,状态栏会显示多个窗口的信息。
Ctrl+b p:切换到上一个窗口(按照状态栏上的顺序)。
Ctrl+b n:切换到下一个窗口。
Ctrl+b <number>:切换到指定编号的窗口,其中的<number>是状态栏上的窗口编号
Ctrl+b w:从列表中选择窗口
Ctrl+b ,:窗口重命名
8 echo输出信息
echo [-neE] [字符串]

选项:

  • -E (默认)不支持 \ 解释功能
  • -n 不自动换行
  • -e 启用 \ 字符的解释功能
echo "$VAR_NAME"

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

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

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

"\033[字符背景颜色;字体颜色m字符串\033[0m"

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

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

#字符背景颜色范围: 40--47
40:黑
41:红
42:绿
43:黄
44:蓝
45:紫
46:深绿
47:白色
#字体颜色: 30--37
30: 黑
31: 红
32: 绿
33: 黄
34: 蓝
35: 紫
36: 深绿
37: 白色

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

\033[0m 关闭所有属性
\033[1m 设置高亮度
\033[4m 下划线
\033[5m 闪烁
\033[7m 反显
\033[8m 消隐
\033[nA 光标上移n行
\033[nB 光标下移n行
\033[nC 光标右移n列
\033[nD 光标左移n列
\033[x;yH 设置光标位置x行y列
\033[2J 清屏
\033[K 清除从光标到行尾的内容
\033[s 保存光标位置
\033[u 恢复光标位置
\033[?25l 隐藏光标
\033[?25h 显示光标
\033[2J\033[0;0H 清屏且将光标置顶
9 bash快捷键
Ctrl + l 清屏,相当于clear命令
Ctrl + o 执行当前命令,并重新显示本命令
Ctrl + s 阻止屏幕输出,锁定
Ctrl + q 允许屏幕输出,解锁
Ctrl + c 终止命令
Ctrl + z 挂起命令
Ctrl + a 光标移到命令行首,相当于Home
Ctrl + e 光标移到命令行尾,相当于End
Ctrl + f 光标向右移动一个字符
Ctrl + b 光标向左移动一个字符
Ctrl + xx 光标在命令行首和光标之间移动
Alt + f 光标向右移动一个单词尾
Alt + b 光标向左移动一个单词首
Ctrl + u 从光标处删除至命令行首
Ctrl + k 从光标处删除至命令行尾
Alt + r 删除当前整行
Ctrl + w 从光标处向左删除至单词首
Alt + d 从光标处向右删除至单词尾
Alt + Backspace 删除左边单词
Ctrl + d 删除光标处的一个字符
Ctrl + h 删除光标前的一个字符
Ctrl + y 将删除的字符粘贴至光标后
Alt + c 从光标处开始向右更改为首字母大写的单词
Alt + u 从光标处开始,将右边一个单词更改为大写
Alt + l 从光标处开始,将右边一个单词更改为小写
Ctrl + t 交换光标处和之前的字符位置
Alt + t 交换光标处和之前的单词位置
Alt + # 提示输入指定字符后,重复显示该字符#次
10 文件通配符
* 匹配零个或多个字符,但不匹配 "." 开头的文件,即隐藏文件
? 匹配任何单个字符,一个汉字也算一个字符
~ 当前用户家目录
~mage 用户mage家目录
. 和 ~+ 当前工作目录
~- 前一个工作目录
[0-9] 匹配数字范围	
[a-z] 一个字母
[A-Z] 一个字母
[wang] 匹配列表中的任何的一个字符
[^wang] 匹配列表中的所有字符以外的字符
[^a-z] 匹配列表中的所有字符以外的字符
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母,表示 a-z
[:upper:]: 任意大写字母,表示 A-Z
[:alpha:]: 任意大小写字母
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:图形字符
[:xdigit:]:十六进制字符
11 安全删除文件

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

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

Tip

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

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

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

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

标签:字符,Ctrl,常识,基础,命令,Linux,033,窗格,光标
From: https://www.cnblogs.com/yoob/p/18514938

相关文章

  • Vue.js组件开发全面指南:从基础到高级应用
    1.Vue.js组件概述1.1什么是Vue.js组件Vue.js组件是Vue.js框架中的核心概念,它是一种封装了特定功能的可复用代码单元。每个组件可以包含自己的模板、逻辑和样式,使得开发者能够构建大型应用时,像搭积木一样组合这些独立的组件。组件基于自定义元素进行扩展,使得开发者能够创......
  • Linux进程调度器-CPU负载
    1.概述CPU负载(cpuload)指的是某个时间点进程对系统产生的压力。来张图来类比下(参考UnderstandingLinuxCPULoad)CPU的运行能力,就如大桥的通行能力,分别有满负荷,非满负荷,超负荷等状态,这几种状态对应不同的cpuload值;单CPU满负荷运行时cpu_load为1,当多个CPU或多核时,相当于大桥......
  • 实验2 类和对象_基础编程1
    一、实验目的加深对OOP中类、对象的理解,能够解释类的封装、类的接口会使用C++语法规则正确定义、实现、测试类;会使用类创建对象,并基于对象编程针对具体问题场景,练习运用面向对象思维进行设计,合理利用C++语言特性(访问权限控制,static,friend,const),在数据共享和保护......
  • qt的c++环境配置和c++基础【正点原子】嵌入式Qt5 C++开发视频
    QTc++环境配置和c++基础c++环境配置和工程创建  1.配置步骤  2.新建qt工程目录和工程  3.重启qt后打开最近的qt项目c++基础-类和对象  1.什么是类和对象    A.类的定义    B.类的结构表示    C.类的访问权限    D.对象的定义    E.类和......
  • 操作系统(7) (POSIX--Linux线程编程---使用多线程计算平方pthread_t/create/join应用)
    1.代码目的我们希望创建一个程序:启动多个线程,每个线程计算一个数字的平方值。每个线程将计算结果返回给主线程。主线程接收每个线程的返回值,并将结果打印出来。在这个例子中,我们通过传递不同的参数给每个线程,来让每个线程计算不同数字的平方值。2.代码实现以下是代码的......
  • 音频基础知识
    一、声音的几个物理概念1、振动声音是由物体的振动引起的一种物理现象。物体的振动使其四周的气压产生变化,这种忽强忽弱变化以波的形式向四周传播,当被人耳所接收时,我们就听见了声音。2、波形声音是由物体的振动产生的,这种振动引起了周围空气压强的振荡,我们就称这种振荡的......
  • 【linux网络编程】| socket套接字 | 实现UDP协议聊天室
        前言:本节内容将带友友们实现一个UDP协议的聊天室。主要原理是客户端发送数据给服务端。服务端将数据再转发给所有链接服务端的客户端。所以,我们主要就是要实现客户端以及服务端的逻辑代码。那么,接下来开始我们的学习吧。    ps:本节内容建议了解so......
  • vue2基础组件通信案例练习:把案例Todo-list改写成本地缓存
    @目录概述前端代码本人其他相关文章链接概述前面文章案例已经练习了父子组件之间的通信,这一节讲述如何把todos数组放进本地缓存中,因为实际开发场景中频繁查询的数据很有可能会用到本地缓存技术。思考:如何改成使用本地缓存,是写一堆按钮每次触发就是往本地缓存种get和set?答案......
  • 【最新】Kali Linux虚拟机安装与优化全攻略:必做设置让你事半功倍!
    内容预览≧∀≦ゞ【干货】KaliLinux虚拟机安装与优化全攻略简介一、从清华镜像源下载KaliLinux镜像二、配置虚拟机硬件设置三、切换KaliLinux的软件源四、解决KaliLinux与Windows之间的复制粘贴互通问题五、Kali终端优化1.调整终端窗口大小、字体大小及光标样式2.......
  • D50【python 接口自动化学习】- python基础之类
    day50init方法学习日期:20241027学习目标:类--64init方法:如何为对象传递参数?学习笔记:魔术方法init方法classKlass(object):#定义初始化方法,类实例化时自动进行初始化def__init__(self,name,age):self.name=nameself.age=agede......