文章目录
前言
一、Linux命令基础
1.1shell
1.1.1 shell概述
- Linux系统中运行的一种特殊程序
- 在用户和内核之间充当“翻译官”
- 用于登录Linux系统时,自动加载一个Shell程序
- Bash时Linux系统中默认使用的Shell程序
1.1.2 shell脚本
- Windows中有cmd,Linux中有Shell
- 所有系统的内核都是C语言开发出来的。C语言面向过程,C++面向对象。C语言和C++同时存在。
- 所有语言的特性:源码文件–>编译器–>执行文件
语言 | 编译器 |
---|---|
Java | jdk |
Python | Python2/3 |
Linux | Shell |
1.2Linux命令分类
内部命令:集成在Shell解释器内的,属于Shell的一部分
外部命令:独立文件的存在
内部命令 | 外部命令 |
---|---|
集成与shell解释器程序内部的一些特殊指令,也称之为内键(Built-in)指令 | Linux系统中能够完成特定功能的脚本文件或二进制程序 |
属于shell的一部分 | 属于shell解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
自动载入内存,可以直接使用 | 必须知道其对应的文件位置,由shell加载后才能执行 |
1.3Linux命令行格式
命令字 [选项] [参数]
1.3.1命令字
- 是整条命令中最关键的一部分,唯一确定一条命令
- 执行的是操作,如新建,删除,重命名等
1.3.2选项
- 理解为功能
- 短格式选项:使用“-”符号引导
- 长格式选项:使用“–”符号引导
- 多个单字符选项可以组合在一起使用
优点:
- 使用最短的字符查看最多的信息
例如:
ls -a:查看所有文件
ls -l :查看文件详细信息
ls-al:查看所有文件的详细信息。
长格式选项:使用“–”符号引导。跟单词
1.3.3参数
- 命令处理的对象
- 可以是文件名、目录(路径)名或用户名等内容
- 个数可以是零到多个
1.4编辑Linux命令行
1.4.1辅助操作
键位 | 解释 |
---|---|
Tab键 | 补全命令或者路径 |
反斜杠“" | 强制换行 |
快捷键Ctrl+U | 清空至行首 |
快捷键Ctrl+K | 清空至行尾 |
快捷键Ctrl+L | 清屏 |
快捷键Ctrl+C | 取消本次命令编辑 |
快捷键Ctrl+J | 回车 |
快捷键Ctrl+H | 键入默认的参数符号 |
1.4.2名词解释
- [root@localhost ~]# :{当前用户@主机名 所在位置目录}身份权限
- root:当前登录系统用户
- @ :分隔符
- localhost:主机名
- ~ :当前所在目录位置
- #:管理员
- $:普通用户
1.4.3了解基本命令
- hostnamectl set-hostname 要更改的名称
- su :重新加载bash环境、不需要重启就能使更改的名称生效
- Tab:自动补全:制表符
- history:查看历史指令
- history -c:清除历史指令
- ls:查看
- ls -la:查看所有详细信息
1.4.4获取命令帮助
- 内部命令help
- 查看Shell内部命令的帮助信息
- 命令的"–help”选项
- 适用于大多数Linux外部命令
- 使用man命令阅读手册页
- 使用“1”、“!”方向键滚动一行文本
- 使用Page Up和Page Down 键翻页
- 按Q或q键退出阅读环境
- 按"键查找内容,
二、命令详细讲解
2.1查看当前目录 -pwd
- pwd显示的是绝对路径
[root@localhost ~]# pwd
/root
2.2切换工作目录 -cd
- 将用户的工作目录更改到其他位置
格式 | 说明 |
---|---|
cd 目标位置 | 切换到目标位置 |
cd ~ | 若不指定目标位置,切换到当前用户的宿主目录 |
cd - | 切换到上一次执行cd命令之前所在的目录 |
2.2.1将用户的工作目录更改到其他位置
. 当前工作目录
.. 当前目录的上一级目录
cd.. 返回上一层目录
cd../../ 返回上上一层目录
2.2.2绝对路径
- 绝对路径:从/ 根目录开始的
- 这种方式以根目录“/”作为起点,如“/boot/grub”表示根目录下boot子目录中的grub目录
- 若要确切表明grub是一个目录(而不是一个文件),可以在最后也加上一个目录分隔符,如表示为“/boot/grub/"
- 因为Linux操作系统中的根目录只有一个,所以不管当前处于哪个目录中,使用绝对路径都可以非常准确地表示一个目录(或文件)所在的位置。但是如果路径较长,输入的时候会比较烦琐
2.2.3相对路径
- 相对路径:相对路径参照路径(当前所在位置)
- 这种方式一般以当前工作目录作为起点,在开头不使用“/”符号,因此使用的时候更加简短、便捷。
- 相对路径主要包括如下几种形式:
- 直接使用目录名或文件名表示当前工作目录中的子目录、文件的位置
例如,“grub.conf”可表示当前目录下的grub.conf文件 - 使用一个点号“.”开头可明确表示以当前的工作目录作为起点
- 直接使用目录名或文件名表示当前工作目录中的子目录、文件的位置
补充:
家目录=宿主目录
家目录有两种
管理员(/root)
普通用户(/home)
2.3列表显示目录内容 -ls
- 显示目录中内容,包括子目录和文件相关属性信息
- 命令基本格式
ls[选项][文件或目录...]
- 常用选项
选项 | 说明 |
---|---|
-l | 显示文件的详细信息 |
-a | 查看隐藏文件 |
-A | 查看隐藏文件,除了. … |
-d | 显示本目录的信息 |
-h | 友好形式显示带有单位的信息 |
-R | 递归显示(如果有子目录,则会把子目录中的文件依次展现) |
–color 以颜色区分文件类型
- 黑色(数据文件)
- 蓝色(目录/文件夹)
- 红色(压缩包)
- 绿色(执行文件/命令文件/脚本)
- 天蓝色(连接文件/快捷方式)
- 黄色(设备文件/磁盘文件)
结合通配符
- “?”:匹配文件名中的一个未知字符
- “*”:匹配文件名中的任意多个字符
2.4设置别名 -alias
- 通过别名机制简化常用的,比较长的命令
- 命令基本格式
alias 要设置的名称 = '被设置的命令'
- 比如命令:ls -alh比较长,我们可以使用alias来设置别名为 myls
alias myls = 'ls -alh'
2.5统计目录及文件空间占用情况 -du
- 统计指定目录(或文件)所占磁盘空间的大小
du [选项] [文件或目录]
常用选项
选项 | 说明 |
---|---|
-a | 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录 |
-h | 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果 |
-s | 只统计所占空间总(Summary)大小,而不是统计每个子目录,文件的大小 |
示例:
统计/var/log/所有文件总共占用的空间大小
du -sh /var/log/
- 注意:不可以使用du -ash
2.6创建新目录 -mkdir
创建新的空目录
- 命令格式
mkdir [选项] 目录位置及名称
- 常用选项
- -p 一次性创建嵌套的多层目录
示例:
在当前目录下创建名为11的子目录
mkdir 11
创建目录/aa,在/aa目录下创建子目录bb,在/aa/bb目录下创建子目录cc
mkdir -p /aa/bb/cc
2.7创建空文件 -touch
-
更新文件的时间标记
-
经常用于创建多个新的空文件
-
命令格式
touch 文件...
示例:
创建两个空文件,文件名分别为aa和bb
touch aa bb
2.8创建链接文件 -ln
- 为文件或目录建立链接文件,类似于Windows系统的快捷方式
链接文件类型- 软链接:相当于快捷方式,又称为符号链接
- 硬链接:相当于文件的别名
文件节点(文件在磁盘中存储的标识序列)唯一的
查看文件节点命令
ls -i
- ln命令基本格式
创建软链接
ln [-s] 源文件或目录 链接文件或目标位置
创建硬链接
ln 源文件或目录 链接文件或目标位置
- 常用选项
- -s 创建软链接
示例:
创建/bin/bzip2的软链接到/bin/wx/目录下
ln -s /bin/bzip2 /bin/wx/
为文件或目录建立链接文件,类似于Windows系统的快捷方式
2.9复制文件或目录 -cp
- 将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录
- 命令格式
cp[选项]..源文件或目录.…目标文件或目录.…
- 常用选项
选项 | 说明 |
---|---|
-f | 覆盖目标同名文件或目录时不进行提醒,直接强制复制 |
-i | 覆盖目标同名文件或目录时提醒用户确认 |
-p | 复制时保持源文件的权限、属主及时间标记等属性不变 |
-r | 复制目录时必须使用此选项,表示递归复制所有文件及子目录 |
2.10删除文件或目录 -rm
- 删除指定的文件或目录
- 命令格式
rm [选项] 要删除的文件或目录
- 常用选项
选项 | 说明 |
---|---|
-f | 删除,没有提示(高危命令,谨慎使用) |
-i | 删除,有提示 |
-r | 递归删除(高危命令,谨慎使用) |
示例:删除11
rm -rf 11
2.11移动文件或目录 -mv
- 将指定的文件或目录转移位置
- 如果目标位置与原位置相同,则相当于执行重命名操作
- 通俗讲:
- 移动文件或目录
- 重命名
- 命令格式
mv [选项] 源文件或目录 目标文件或目录
示例:
mv mytouch mkfile
mv mkfile public_htmll
2.12查找命令/文件存放目录 -which
- 搜索范围由环境变量PATH决定(echo $PATH)
命令格式
which 命令|程序名
或者
which -a 命令 |程序名
示例:
查找ls命令所在位置
which ls
2.13查找文件或目录 -find
- 采用递归方式,根据目标的名称,类型,大小等不同属性进行精细查找
- 命令格式
find [查找范围] [查找条件表达式]
- 查找范围:查找文件或者子目录的位置
- 查找条件表达式:查找条件类型
- 常用的查找条件类型
查找类型 | 关键字 | 说明 |
---|---|---|
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 |
按文件大小查找 | -size | (1)根据目标文件的大小进行查找(2)一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件(3)常用的容量单位包括kB(注意k是小写)、MB、GB |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件的类型进行查找 | -type | (1)根据文件的类型进行查找(2)文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件©(3)块设备是指成块读取数据的设备(如硬盘、内存等),字符设备是指按单个字符读取数据的设备(如键盘、鼠标等) |
- 各表达式之间使用逻辑运算符
- "-a”表示而且(and)
- "-o”表示或者(or)
示例:
在/boot中查找大小大于1024k,而且名称含有vml的文件
find /boot -size +1024k -a -name "vmlinuz*"
在/boot中查找大小大于1024k,或者名称含有vml的文件
find /boot -size +1024k -o -name "vmlinuz*"