翼度科技»论坛 云主机 LINUX 查看内容

Linux基础常识

7

主题

7

帖子

21

积分

新手上路

Rank: 1

积分
21
1 什么是shell

shell是Linux系统的用户界面,提供了用户与内核交互的一种接口,它接收用户输入的命令并到送到内核去执行,因此也被称为Linux的命令解释器。
显示系统当前使用的shell
  1. echo ${SHELL}                               
  2. # /bin/bash
复制代码
查看系统当前使用的所有shell
  1. cat /etc/shells
  2. # /bin/sh
  3. # /bin/bash
  4. # /usr/bin/sh
  5. # /usr/bin/bash
  6. # /bin/tcsh
  7. # /bin/csh
复制代码
2 设置主机名
  1. # 临时生效
  2. hostname localhost
  3. # 持久生效,支持CentOS7和Ubuntu18.04以上版本
  4. hostnamectl set-hostname locahost
复制代码
3 命令提示符

提示符格式说明:

  • \e 控制符\033
  • \u 当前用户
  • \h 主机名简称
  • \H 主机名
  • \w 当前工作目录
  • \W 当前工作目录基名
  • \t 24小时时间格式
  • \T 12小时时间格式
  • ! 命令历史数
  • 开机后命令历史数
  1. # 查看提示符格式
  2. cat $PS1
  3. # 在CentOS系统实现持久保存提示符格式
  4. 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
  5. # 实现Ubuntu系统持久保存提示符格式
  6. echo "PS1='\[\e[1;35m\][\u@\h \W]\\$\[\e[0m\]'" >> .bashrc
复制代码
4 内部命令与外部命令


  • 内部命令:由shell自带的,而且通过某命令形式提供, ,用户登录后自动加载并常驻内存中
  • 外部命令:在文件系统路径下有对应的可执行程序文件,当执行命令时才从磁盘加载至内存中,执行完毕后从内存中删除
区分内部命令与外部命令
  1. type commond
复制代码
内部命令管理
  1. help                                                # 查看所有内部命令
  2. enable commond        # 启用内部命令
  3. enable -n commond                #禁用内部命令
  4. enable -n                         # 查看所有禁用的内部命令
复制代码
外部命令管理
  1. # 查看外部命令文件执行路径
  2. 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 命令别名

对于经常执行的较长的命令,可以将其定义成较短的别名,以方便执行
  1. alias                                                # 查看当前定义的所有别名
  2. alias name='commond'                                # 定义别名
  3. alias name                        # 撤销指定别名
  4. unlias -a                                # 撤销所有别名
复制代码
注意:在命令行中定义的别名,只在当前shell进程中有效,如果想永久生效,要定义在配置文件中

  • ~/.bashrc                仅对当前用户生效
  • /etc/bashrc        对所有用户生效
编辑配置文件写进的新配置不会立即生效,需要bash进程重新读取配置文件
  1. source ~/.bashrc
  2. source /etc/bashrc
复制代码
6 常见命令
  1. lscpu                                                                       
  2. cat /proc/cpuinfo                                       
复制代码
  1. free                                                                       
  2. cat /proc/meminfo       
复制代码
  1. lsblk
  2. cat /proc/partitions
复制代码
  1. arch
复制代码
  1. uname -r
复制代码
  1. cat /etc/os-release
  2. cat /etc/redhat-release
  3. lsb_release -a
复制代码
  1. cat /etc/os-release
  2. cat /etc/issue
  3. lsb_release -a
复制代码
  1. lsb_release -is
  2. lsb_release -cs
  3. lsb_release -rs
复制代码
  1. halt
  2. poweroff
  3. reboot
  4. shutdown -h/-r now/+n
  5. shutdown -h/-r hh:mm
复制代码
  1. whoami
  2. who
  3. w
复制代码
7  会话管理
  1. screen -ls                                # 查看所有会话
  2. screen -S        name                                # 创建会话
  3. ctrl+a,d                                        # 剥离会话
  4. screen -x name                                # 加入会话
  5. exit                                                        # 退出并关闭会话
  6. screen -r name                          # 恢复某会话
复制代码
Tmux 是一个终端复用器(terminal multiplexer),类似 screen,但是更易用,也更强大,Tmux 就是会话与窗口的"解绑"工具,将它们彻底分离,功能如下:

  • 它允许在单个窗口中,同时访问多个会话。这对于同时运行多个命令行程序很有用。
  • 它可以让新窗口"接入"已经存在的会话。
  • 它允许每个会话有多个连接窗口,因此可以多人实时共享会话。
  • 它还支持窗口任意的垂直和水平拆分
  1. # 新建会话
  2. tmux new -s session_name
  3. # 分离会话
  4. tmux detach
  5. ctrl+b+d
  6. # 接入会话
  7. tmux attach -t <session-name>
  8. # 杀死会话
  9. tmux kill-session -t <session-name>
  10. # 切换会话
  11. tmux switch -t <session-name>
  12. # 上下切分窗格
  13. tmux split-window
  14. # 左右切分窗格
  15. tmux split-window -h
  16. # 列出所有快捷键,及其对应命令
  17. tmux list-keys
  18. # 列出tmux所有命令及其参数
  19. tmux list-commands
复制代码
  1. Ctrl+b %:#划分左右两个窗格
  2. Ctrl+b ":#划分上下两个窗格"
  3. Ctrl+b <arrow key>:光标切换到其他窗格。<arrow key>是指向要切换到的窗格的方向键,比如切换
  4. 到下方窗格,就按方向键↓
  5. Ctrl+b ;:光标切换到上一个窗格
  6. Ctrl+b o:光标切换到下一个窗格。
  7. Ctrl+b {:当前窗格左移
  8. Ctrl+b }:当前窗格右移
  9. Ctrl+b Ctrl+o:当前窗格上移
  10. Ctrl+b Alt+o:当前窗格下移
  11. Ctrl+b x:关闭当前窗格
  12. Ctrl+b !:将当前窗格拆分为一个独立窗口
  13. Ctrl+b z:当前窗格全屏显示,再使用一次会变回原来大小
  14. Ctrl+b Ctrl+<arrow key>:按箭头方向调整窗格大小
  15. Ctrl+b q:显示窗格编号
复制代码
  1. tmux new-window                                # 新建窗口
  2. tmux new-window -n <window-name>                                # 新建一个指定名的窗口
  3. tmux select-window -t <window-number>                                # 切换到指定窗口
  4. tmux select-window -t <window-name>                                        # 切换到指定窗口
复制代码
  1. Ctrl+b c:创建一个新窗口,状态栏会显示多个窗口的信息。
  2. Ctrl+b p:切换到上一个窗口(按照状态栏上的顺序)。
  3. Ctrl+b n:切换到下一个窗口。
  4. Ctrl+b <number>:切换到指定编号的窗口,其中的<number>是状态栏上的窗口编号
  5. Ctrl+b w:从列表中选择窗口
  6. Ctrl+b ,:窗口重命名
复制代码
8 echo输出信息
  1. echo [-neE] [字符串]
复制代码
选项:

  • -E (默认)不支持 \ 解释功能
  • -n 不自动换行
  • -e 启用 \ 字符的解释功能
  1. 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屏幕控制码,具有颜色的字符,其格式如下:
  1. "\033[字符背景颜色;字体颜色m字符串\033[0m"
复制代码
\033[30m -- \033[37m 设置前景色
\033[40m -- \033[47m 设置背景色
  1. #字符背景颜色范围: 40--47
  2. 40:黑
  3. 41:红
  4. 42:绿
  5. 43:黄
  6. 44:蓝
  7. 45:紫
  8. 46:深绿
  9. 47:白色
  10. #字体颜色: 30--37
  11. 30: 黑
  12. 31: 红
  13. 32: 绿
  14. 33: 黄
  15. 34: 蓝
  16. 35: 紫
  17. 36: 深绿
  18. 37: 白色
复制代码
加颜色只是以下控制码中的一种,下面是常见的一些ANSI控制码:
  1. \033[0m 关闭所有属性
  2. \033[1m 设置高亮度
  3. \033[4m 下划线
  4. \033[5m 闪烁
  5. \033[7m 反显
  6. \033[8m 消隐
  7. \033[nA 光标上移n行
  8. \033[nB 光标下移n行
  9. \033[nC 光标右移n列
  10. \033[nD 光标左移n列
  11. \033[x;yH 设置光标位置x行y列
  12. \033[2J 清屏
  13. \033[K 清除从光标到行尾的内容
  14. \033[s 保存光标位置
  15. \033[u 恢复光标位置
  16. \033[?25l 隐藏光标
  17. \033[?25h 显示光标
  18. \033[2J\033[0;0H 清屏且将光标置顶
复制代码
9 bash快捷键
  1. Ctrl + l 清屏,相当于clear命令
  2. Ctrl + o 执行当前命令,并重新显示本命令
  3. Ctrl + s 阻止屏幕输出,锁定
  4. Ctrl + q 允许屏幕输出,解锁
  5. Ctrl + c 终止命令
  6. Ctrl + z 挂起命令
  7. Ctrl + a 光标移到命令行首,相当于Home
  8. Ctrl + e 光标移到命令行尾,相当于End
  9. Ctrl + f 光标向右移动一个字符
  10. Ctrl + b 光标向左移动一个字符
  11. Ctrl + xx 光标在命令行首和光标之间移动
  12. Alt + f 光标向右移动一个单词尾
  13. Alt + b 光标向左移动一个单词首
  14. Ctrl + u 从光标处删除至命令行首
  15. Ctrl + k 从光标处删除至命令行尾
  16. Alt + r 删除当前整行
  17. Ctrl + w 从光标处向左删除至单词首
  18. Alt + d 从光标处向右删除至单词尾
  19. Alt + Backspace 删除左边单词
  20. Ctrl + d 删除光标处的一个字符
  21. Ctrl + h 删除光标前的一个字符
  22. Ctrl + y 将删除的字符粘贴至光标后
  23. Alt + c 从光标处开始向右更改为首字母大写的单词
  24. Alt + u 从光标处开始,将右边一个单词更改为大写
  25. Alt + l 从光标处开始,将右边一个单词更改为小写
  26. Ctrl + t 交换光标处和之前的字符位置
  27. Alt + t 交换光标处和之前的单词位置
  28. Alt + # 提示输入指定字符后,重复显示该字符#次
复制代码
10 文件通配符
  1. * 匹配零个或多个字符,但不匹配 "." 开头的文件,即隐藏文件
  2. ? 匹配任何单个字符,一个汉字也算一个字符
  3. ~ 当前用户家目录
  4. ~mage 用户mage家目录
  5. . 和 ~+ 当前工作目录
  6. ~- 前一个工作目录
  7. [0-9] 匹配数字范围       
  8. [a-z] 一个字母
  9. [A-Z] 一个字母
  10. [wang] 匹配列表中的任何的一个字符
  11. [^wang] 匹配列表中的所有字符以外的字符
  12. [^a-z] 匹配列表中的所有字符以外的字符
复制代码
  1. [:digit:]:任意数字,相当于0-9
  2. [:lower:]:任意小写字母,表示 a-z
  3. [:upper:]: 任意大写字母,表示 A-Z
  4. [:alpha:]: 任意大小写字母
  5. [:alnum:]:任意数字或字母
  6. [:blank:]:水平空白字符
  7. [:space:]:水平或垂直空白字符
  8. [:punct:]:标点符号
  9. [:print:]:可打印字符
  10. [:cntrl:]:控制(非打印)字符
  11. [:graph:]:图形字符
  12. [:xdigit:]:十六进制字符
复制代码
11 安全删除文件

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

  • -z 最后一次覆盖添加0,以隐藏覆盖操作
  • -v 能够显示操作进度
  • -u 覆盖后截断并删除文件
  • -n # 指定覆盖文件内容的次数(默认值是3次)
Tip
请,本文为笔者整理的学习笔记,仅供个人参考和梳理思路,错漏之处请多多指导。
如,本文参考各种资源整理未,因此未申请原创声明,如有侵权请联系删除。
若,如果需要转载请各位大佬标明出处,园子不大多多捧场。
另,本文仅做学习使用,请勿用于非法途径。

来源:https://www.cnblogs.com/yoob/p/18514938
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具