02 linux常用命令 bash特性

  1. shell
    查看当前shell:echo $SHELL
    查看当前系统所支持的shell:cat /etc/shells
    在这里插入图片描述

  2. 命令提示符(prompt): [root@localhost ~]#
    2.1 [root@localhost ~]: PS1
    在这里插入图片描述
    2.2 prompt:
    管理员:#
    普通用户:$

  3. 命令:
    3.1
    在这里插入图片描述
    3.2
    在这里插入图片描述
    下面分别是内部命令、外部命令类型
    在这里插入图片描述
    3.3 命令格式
    在这里插入图片描述
    3.4 在终端键入命令时shell会自动在默认搜索路径$PATH 中查找 ,找到后执行成一个或几个进程,然后为了提升效率会把键入的这个命令缓存到内存中:可以用hash查看缓存中的命令和命中次数
    在这里插入图片描述
    注意:缓存中的命令被挪作时会出现错误,所以必要时需要更新缓存:hash -r 清空缓存

  4. 查看命令路径(外部命令):
    which
    whereis

  5. 获得命令的使用帮助
    5.1 内部命令:
    help COMMAND
    5.2 外部命令:
    COMMAND --help
    5.3 man:查看外部命令手册(使用说明)
    man [1-8] COMMAND
    5.3.1显示是分8个章节的
    分别存放在man的手册页目录 /usr/share/man 的man1、man2…man8下
    (配置文件 /etc/man.conf 可设置路径)
    (1)用户命令
    (2)系统调用
    (3)库调用
    (4)特殊文件(设备文件)
    (5)文件格式(解释每一个命令配置文件语法)
    (6)游戏
    (7)杂项
    (8)管理命令
    5.3.2 所以要查看在那个章节:
    whatis COMMAND
    5.3.3描述信息符号
    <> 必须给出的内容和
    [] 可选内容
    … 可以使用多个
    {}分组的,没特殊意义
    a|b 多选一
    5.3.4 man中解释项
    在这里插入图片描述
    5.3.5
    在这里插入图片描述
    5.3.6
    在这里插入图片描述
    5.4 在线文档
    info CMMOAND
    5.5 命令文档存放路径(几乎都在这里)
    /usr/share/doc
    5.6 发行版的官方文档
    在这里插入图片描述

  6. 时间管理
    6.1 服务器上有两个时间 硬件时间(rtc)、系统时间
    查看硬件时间: clock/hwclock
    查看软件时间:date
    (rtc是在服务器硬件上的时间,关机因为有主板电池也不会有误差)
    6.2 hwclock -w 系统时间同步到硬件时间
    hwclock -s 读取硬件时钟到系统
    6.3 cal: 日历
    还有一个ntp时间协议(时间同步器)

  7. date
    7.1 格式: 在这里插入图片描述
    7.2 补充
    在这里插入图片描述

    			![在这里插入图片描述](https://img-blog.csdnimg.cn/20190517144358485.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzgxMjE5OA==,size_16,color_FFFFFF,t_70)
    				例:
    

在这里插入图片描述

  1. ls:
    在这里插入图片描述
    -h单位换算
    -d 显示目录自身相关属性
    -i 查看文件索引节点号
    -R 递归显示子目录

  2. cd:
    cd :不加任何参数是回到本用户家目录
    cd ~list: 到list家目录
    cd -: 在当前目录和前一次所在目录之间切换

  3. 环境变量:是命名的内存空间 就是给变量复制
    printenv:显示环境变量(只对当前shell有效)
    10.1 设置环境变量 export
    例:
    在这里插入图片描述

  4. printf 显示格式和字符本身 \n换行

  5. echo
    -n 不换行
    -e 可用特殊字符
    在这里插入图片描述
    在这里插入图片描述

  6. file:查看文件类型(后缀)
    ELF 可执行可连接的文件文本格式

  7. linux 文件颜色的含义
    在这里插入图片描述
    外黑内黄————设备文件
    在这里插入图片描述

    在这里插入图片描述

  8. 主要目录的作用 List item
    /selinux:一种安全加固的软件程序相关的信息存储位置
    /misc:空的 备用杂项
    /srv: 系统上运行的服务用到的数据
    /lost+found ext文件系统创建时默认创建的目录
    与系统启动无关的,而是完成基本功能存放的应用程序
    在这里插入图片描述
    /include:程序的文件头部
    第三方软件安装路径
    在这里插入图片描述
    /var:
    在这里插入图片描述
    15.1 :
    在这里插入图片描述

  9. tree:查看目录树
    -d 只显示目录

  10. mkdir -p 创建多级目录
    -v 显示详细信息
    -m 设置权限
    {.,.} 可以把命令行展开
    例子1.
    在这里插入图片描述
    例子2.
    在这里插入图片描述
    17.1 mrdir :删除空目录

  11. 删除
    rm
    -r
    -f
    -i 交互式
    -p 删除多级目录但是只能删如下图这种每个目录下只有一个的
    在这里插入图片描述

  12. stat file 查看文件详细信息、时间戳
    在这里插入图片描述
    在这里插入图片描述

  13. touch 监控文件、改时间戳
    在这里插入图片描述

    在这里插入图片描述

  14. cp
    在这里插入图片描述
    不能多个文件复制成一个文件只能将多个文件复制到目标是目录中
    -r 递归复制(例;目录)
    -p 保持文件原属性不变,如果不加会变成:哪个用户复制哪个用户就是属主属组
    -P 保持原有连接
    -a 归档存放(备份):把源文件保留原来的样子
    -i 交互式
    -f 强制

  15. mv 移动目录时不用加参数,cp 必须加-r 或-a
    入果目标已有同名文件则不能移动
    -i 交互
    -f 强制

  16. install 复制
    -d 创建目录 不加是创建文件 与复制语法不同
    -m 指定权限

  17. du 大小
    -s 当前目录,不查看子目录
    -h 单位

  18. read:这个命令可以用来读取键盘输入,可以一次赋值多个变量
    -t #设置超时时间(以秒为单位)
    -p #用于指定提示信息

if read -t 3 -p "请在三秒内输入(年龄、姓名):"  age name;then
echo $age
echo $name
else
echo -e "\n超时,未输入"
fi

  1. cat
    -n 显示行号
    -E 显示结尾符
    在这里插入图片描述

  2. tac 查看的时候与cat相反,从结尾开始查看

  3. 在这里插入图片描述

  4. less 用发同man

  5. more
    空格键 后翻一屏;b 向前翻一屏 ;回车键 向后翻一行

  6. cut

用法:cut OPTION... [FILE]...
	常见选项:
		-d :指明分隔符
		-f:指定要提取的字段
			#:第#哥字段
			#,#[,#]:离散的多个字段
			#-#:连续的多个字段
			1-3,7:混合使用
  1. sort
    在这里插入图片描述
    补充:
    [ FStart [ .CStart ] ] [ Modifier ] [ , [ FEnd [ .CEnd ] ][ Modifier ] ]
    -K 后可以加u去重,目标只是-指定的域
    示例:
    在这里插入图片描述

  2. uniq
    不加参数:去重,但是必须是相邻并且重复的行
    -d 只显示重复的行(只显示一次)
    -D 显示所有重复的行(有几次显示几次)
    -c 每行前显示重复次数

  3. wc 分别显示:行数、单词数、字节数
    -l
    -w
    -c
    -L 最长的一样包含多少字符

  4. tr 命令用于转换或删除文件中的字符。它从标准输入设备读取数据,经过字符串转译后,将结果输出到标准输出设备。
    在这里插入图片描述
    语法格式为:tr (options) set1 (set2)
    options:
    -d:删除指令字符
    -s:缩减连续重复的字符成指定的单个字符。
    示例:

#将文件testfile中的小写字母全部转换成大写字母
   cat testfile | tr a-z A-Z  或    cat testfile | tr '(:lower:)' '(:upper:)'
#删除字符串中的所有数字
   echo 'He2l2lo W1or3ld' | tr -d '0-9'
#将字符串中的所有空格替换为下划线
   echo 'hello world' | tr ' ' '_'
#将字符串中的所有数字替换为字母
   echo 'hello world123' | tr '0-9' 'a-j'
#压缩字符串中的连续空格 
   echo 'hello   world' | tr -s ' '      
#第一次使用tr删除换行符,第二次使用-s参数删除重复的空白。
 cat test.js | tr -d '\n' | tr -s ' ' > test.min.js       
  1. 关机/重启
  2. basename 直接取得一个路径的基名
    在这里插入图片描述
  3. mail 查看邮件 用户邮件都会被放在家目录的mbox目录下
    发邮件:在这里插入图片描述
    在这里插入图片描述
  4. RANDOM:生成随机数
    36.1
    随机数生成器
    /dev/random 更安全 但容易阻塞
    /dev/urandom
  5. ping命令
    -c 发几次包
    -W 延迟多长时间
    -i 间隔
  6. sleep 进程睡眠
  7. watch:
    在这里插入图片描述
    例:
    在这里插入图片描述
  8. lsmod 命令:
    是一个小程序,用来显示文件、proc/modules的信息,也就是显示当前内核模块装载的模块。
  9. lsof:查看进程打开的文件
    参考文档:https://blog.itpub.net/31397003/viewspace-2147485
    lsof filename 显示打开指定文件的所有进程
    lsof -c string 显示COMMAND列中包含指定字符的进程所有打开的文件
    lsof -u username 显示所属user进程打开的文件
    lsof -g gid 显示归属gid的进程情况
    lsof +d /DIR/ 显示目录下被进程打开的文件
    lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长
    lsof + p PID 显示进程号所打开的文件
    常用方法 lsof | grep deleted 磁盘已满但查不到具体占用磁盘的文件,这条命令能过滤出已删除的文件,但空间并没有释放
  10. 关闭图形界面
    在这里插入图片描述
  11. 字符/字符集/语言环境
    字符集:是字符的集合
    常见字符集:
    ASCII:包含 128 个字符,涵盖了常见的英文字母、数字、标点符号和控制字符。
    Unicode:这是一个几乎涵盖了世界上所有语言文字和符号的字符集。Unicode 为每种语言中的每个字符设定了统一且唯一的二进制编码。
    GB2312:是中国国家标准的简体中文字符集,收录了 6763 个汉字以及一般的符号。
    GBK:对 GB2312 的扩展,包含了更多的汉字和符号。
    GB18030:是我国最新的汉字编码字符集国家标准,收录了更多的汉字和少数民族文字。
    Big5:主要用于繁体中文环境,在台湾、香港等地较为常见。
    字符编码:是将字符集中的字符映射为二进制数的规则。其目的是为了在计算机中存储和传输字符。
    常见字符编码:
    ASCII 编码:这是最早也是最基础的编码方式,使用 7 位二进制数表示 128 个字符,包括常见的英文字母、数字、标点符号和一些控制字符。
    UTF-8 编码:是一种可变长度的 Unicode 编码方式,它可以使用 1 到 4 个字节来表示一个字符。
    GB2312 编码:是中国国家标准的简体中文字符编码,收录了 6763 个汉字和 682 个非汉字图形字符。
    GBK 编码:是对 GB2312 的扩展,包含了更多的汉字和符号。
    语言环境:义了语言和地域相关的规则
    常见语言环境:
    en_US:英语(美国)
    zh_CN:中文(中国大陆)
    实际应用中:zh_CN 定义了语言和地域相关的规则,UTF-8 保证了字符的正确编码,它们共同作用以提供良好的中文支持和处理能力。
    linux系统中设置语言环境的两种方法
    第一种通过环境变量设置
export LC_ALL=zh_CN.UTF-8  # 设置整个语言环境为中文(中国大陆),字符编码为 UTF-8
export LANG=zh_CN.UTF-8   # 另一种常见的设置语言环境的方式
	    	第二种通过 /etc/locale.conf 文件设置
			LANG=zh_CN.UTF-8
		
locale是一个用于查看系统当前语言环境的命令。
 locale:查看现有语言环境
 locale -a:列出系统中所有可用的语言环境。
 locale charmap :显示当前语言环境使用的字符编码映射
 locale language :显示语言(LANG)环境变量的值。
 
localedef 是一个用于定义或修改本地环境(locale)的命令行工具。
	一般语法: localedef [options] name [charset]
	示例:要创建一个名为 zh_CN.UTF-8 的中文(中国大陆)本地环境,并使用 UTF-8 字符集
		localedef -i zh_CN -f UTF-8 zh_CN.UTF-8
  1. hash 查看缓存
    hash -r 移除缓存

  2. fuser 查看占用某文件的进程
    语法:fuser(选项)(参数)

    选项
    -a:显示命令行中指定的所有文件;
    -k:杀死访问指定文件的所有进程;
    -i:杀死进程前需要用户进行确认;
    -l:列出所有已知信号名;
    -m:指定一个被加载的文件系统或一个被加载的块设备;
    -n:选择不同的名称空间;
    -u:在每个进程后显示所属的用户名。	
    
  3. printenv 输出已有变量列表

  4. 文件打开数 :

  5. xargs 用于从标准输入构建并执行命令行

    基本语法:command | xargs [options] command_to_execute
    示例:

#执行简单命令:假设我们有一个包含文件名的文件 file_list.txt ,可以使用以下命令将每个文件名作为参数传递给 ls -l 命令:
   cat file_list.txt | xargs ls -l
#指定分隔符
   echo "a,b,c" | xargs -d ',' echo
#限制每次执行命令的参数个数
[root@cj ~]# echo "a,b,c" | xargs -d ',' -n1  echo
a
b
c
#-I 替换字符串为指定字符
echo "file1 file2 file3" | xargs -n1 -I {} mkdir {}      
  1. jq 一个用于处理 JSON 数据的轻量级且灵活的命令行工具
    基本语法:jq
    示例:
#假设data.json文件有以下 JSON 数据:
[root@cj ~]# cat data.json
   {
     "name": "John Doe",
     "age": 30,
     "city": "New York",
     "fruits": ["apple", "banana", "orange"]
   }
#要提取 name 的值
   jq '.name' data.json
#筛选数据,只获取年龄大于 25 的数据
   jq '. | select(.age > 25)' data.json
#处理数组,提取数组中的第一个元素:
   jq '.fruits[0]' data.json      

  1. sshpass 是一个用于在命令行中向 SSH 连接提供密码的工具。

    用法:sshpass -p “your_password” ssh user@remote_host

  2. expect:是一个用于实现自动化交互的工具,特别适用于需要与需要用户输入的程序进行交互的场景,包括处理密码输入。
    在这里插入图片描述

bash特性

  1. 每个用户登录服务器都会打开一个bash进程,但是互不相关,不知对方的存在

  2. bash进程可以打开子进程

  3. 用户bash进程工作环境可以不一样,所以大环境相同小环境可以不同:比如登录提示符

  4. 命令行编辑
    在这里插入图片描述

  5. history 查看命令历史
    在这里插入图片描述
    5.1
    在这里插入图片描述
    5.2 HISTSIZE:环境变量,可以设置命令历史条数,默认保存1000条
    5.3 命令历史使用技巧
    在这里插入图片描述
    在这里插入图片描述
    5.4
    在这里插入图片描述
    5.5 bash -c: 是在 Bash shell 中用于执行指定命令字符串的一种方式。在一些脚本或自动化任务中,使用 bash -c 可以方便地将一系列命令作为一个字符串传递并执行。
    用法:bash -c “command1; command2; command3”

  6. alias:不加参数显示所有别名 加参数另取命令别名(注意只是临时有效)
    在这里插入图片描述
    analias 撤销别名

  7. 命令替换:$(cmmoand)或者反引号
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

List item
9.
文件名通配(glob)
*匹配任意长度任意字符
在这里插入图片描述
?匹配任意单个字符
[ ]匹配指定范围内的然以单个字符
在这里插入图片描述
在这里插入图片描述
[^] 匹配指定范围之外的任意单个字符

 例子: 以一个字母开头+若干字符+一个空格+一个字母结尾            

在这里插入图片描述
非字母结尾
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值