Linux命令详解
前言
- Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心。
- Linux命令在系统中有两种类型:内置Shell命令和Linux命令。
一、Linux命令基础
1.1 Shell简介
- Linux系统中运行的一种特殊程序
- 在用户和内核之间充当“翻译官”
- 用户登录Linux系统时,自动下载一个Shell程序
- Bash是Linux系统中默认使用的Shell程序
- 文件位于/bin/bash
- Linux系统运行流程
- 源码(如:abc.java)→编译器(翻译官)→执行文件(如:abc.class)
- 源码(如:abc.java)→编译器(翻译官)→执行文件(如:abc.class)
1.2 TTY终端
- 在Linux默认的登录模式中,主要分为两种,一种是仅有纯文本界面的登录环境,另外一种则是图形桌面的登录环境。
- Linux默认情况下提供6个虚拟终端来让用户登录,系统将F1~F6命令为tty1 ~ tty6。使用Ctrl + Alt + Fn组合键,就可以从图形界面切换到命令行界面的第n个虚拟终端。Fn代表F1 ~ F6功能键(Centos 7系统,Fn代表F2 ~ F6,而F1是图形界面),按Alt + Fn组合键可以在虚拟终端间切换。
1.3 Linux命令的分类
- 内部命令:伴随着内核而自带的命令,没有独立文件存在,在早期版本6.0之前,cd命令就是内部命令
- 外部命令:不伴随内核自带,需要额外安装才具备使用,有独立文件,命令文件路径会指定在环境变量中
内部命令和外部命令的区别
内部命令 | 外部命令 |
---|---|
集成与shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 | Linux系统中能够完成特定功能的脚本文件或二进制程序 |
属于shell的一部分 | 属于shell解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
自动载入内存,可以直接使用 | 必须知道其对应的文件位置,由shell加载后才能执行 |
1.4 Linux命令行的格式
通用的命令行使用格式
命令字 [选项] [参数]
- 英文字符区分大小写
命令字
- 是整条命令中最关键的一部分
- 唯一确定一条命令
- 执行的是操作,如新建,删除,重命名等
选项
-
理解为功能。短格式最常用
-
短格式选项:使用“-”符号引导:多个单字符选项可以组合在一起使用。跟单个字符。优点:使用最短的字符查看最多的信息。
- 如:ls -a:查看所有文件
ls -l :查看文件详细信息
ls-al:查看所有文件的详细信息。
- 如:ls -a:查看所有文件
-
长格式选项:使用“–”符号引导。跟单词 。
参数 -
命令字处理的对象
-
可以是文件名、目录(路径)名或用户名等内容
-
个数可以是零到多个
1.5 编辑Linux命令行
编辑Linux命令行的辅助操作
- Tab键:自动补全
- 反斜杠“\”:强制换行
- 快捷键Ctrl+U:清空至行首
- 快捷键Ctrl+K:清空至行尾
- 快捷键Ctrl+L:清屏
- 快捷键Ctrl+C:取消本次命令编辑
基本Linux名词解释
[root@localhost ~]#
-
[root@localhost ~]# :{当前用户@主机名 所在位置目录}身份权限
-
root:当前登录系统用户
-
@ :分隔符
-
localhost:主机名
-
~ :当前所在目录位置
-
#:管理员
-
$:普通用户
二、Linux命令帮助
获得命令帮助的方法
-
内部命令 help
- 查看Bash内部命令的帮助信息
-
命令的“–help”选项
- 适用于大多数外部命令
-
使用man命令阅读手册页
- 使用↑,↓方向键滚动文本
- 使用Page Up 和 Page Down 键翻页
- 按Q或q键退出阅读环境
- 按“/”键查找内容
三、目录与文件基本操作
查看当前的工作目录-pwd
- 显示用户当前所在的工作目录
pwd (显示的是绝对路径)
- 示例:
[root@localhost~]#pwd
/root (当前工作目录)
切换工作目录-cd
将用户的工作目录更改到其他位置
格式 | 说明 |
---|---|
cd 目标位置 | 切换到目标位置 |
cd ~ | 若不指定目标位置,切换到当前用户的宿主目录(家目录) |
cd - | 切换为上一次所在位置 |
cd … | 切换为上一层所在位置 |
cd…/…/ | 返回上上一层目录 |
相对路径的表现形式
说明
-
绝对路径:从/ 根目录开始的
-
相对路径:相对路径参照路径(当前所在位置)
-
家目录=宿主目录
-
家目录有两种
-
管理员(/root)
-
普通用户(/home)
列表显示目录内容-ls
显示目录中内容,包括子目录和文件相关属性信息
ls [选项] [文件或目录]
常用选项
-
-l 显示文件的详细信息
-
-a 查看隐藏文件
-
-A 查看隐藏文件,除了. …
-
-d 显示本目录的信息
-
-h 友好形式显示带有单位的信息
-
-R 递归显示(如果有子目录,则会把子目录中的文件依次展现)
-
–color 以颜色区分文件类型
-
黑色(数据文件)
-
蓝色(目录/文件夹)
-
红色(压缩包)
-
绿色(执行文件/命令文件/脚本)
-
天蓝色(连接文件/快捷方式)
-
黄色(设备文件/磁盘文件)
结合通配符使用 -
“?”:匹配文件名中的一个未知字符
-
“*”:匹配文件名中的任意多个字符
设置别名-alias
通过别名机制简化常用的,比较长的命令
alias 命令别名 = 命令
示例
设置myls为ls -alh的别名
- alias myls=‘ls -alh’
统计目录及文件空间占用情况-du
du [选项] [文件或目录]
常用选项
- -a 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
- -h 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
- -s 只统计所占空间总(Summary)大小,而不是统计每个子目录,文件的大小
例如
统计所有文件总共占用的空间大小
- du -sh /var/log/
创建新目录-mkdir
创建新的空目录
mkdir [选项] 目录位置及名称…
常用选项
- -p 一次性创建嵌套的多层目录
示例:
在当前目录下创建名为pulic_html的子目录
- mkder public_html
创建目录/aa,在/aa目录下创建子目录bb,在/aa/bb目录下创建子目录cc
- mkdir -p aa/bb/cc (一次性创建多条“嵌套”目录)
创建空文件-touch命令
touch 文件…
- 创建多个文件:
touch {1…10}.txt:创建10个txt文件,名称为 1-10.
touch {01…10}.txt
touch {a…z}.txt - 创建有内容的文件:
创建命令:echo “this is test” > new.txt
查看命令:cat new.txt
创建有内容的文件
两种方式如下:vim、echo
重定向符号“>” (慎用,如有重复文件直接覆盖)
-
方法一:echo “this is demo” > /opt/test/share/demo/demo.txt
-
方法二:(不编辑内容直接退出则默认不创建,保存wq退出则创建空文件)
vim demo1.txt 未指定路径创建
vim /opt/test/share/demo/demo2.txt 指定路径创建(绝对路径)
创建链接文件-ln
-
为文件或目录建立链接文件,类似于windoes系统的快捷方式
-
软链接:相当于快捷方式(相当于创了一个新的文件指向原始文件)
-
硬链接:相当于文件的别名(文件还是原始文件)
文件节点(文件在磁盘中存储的标识序列)唯一的
查看文件节点命令:ls -i
ln命令基本格式
ln [-s] 源文件或目录 链接文件或目标位置
常用选项
- -s 创建软链接
例如,创建/bin/bzip2的软链接到/bin/wx/目录下
ln -s /bin/bzip2 /bin/wx/
复制文件或目录-cp
- 将需要复制的文件或目录(源)重建一份,并保存为新的文件或目录
命令基本格式
cp [选项] 源文件或目录 目标文件或目录
常用选项
-f 覆盖目标同名文件或目录时不进行提醒,直接强行复制
-i 覆盖目标同名文件或目录时提醒用户确认
-p 复制时保持源文件的权限,属主及时间标记等属性不变
-r 复制目录时必须使用此选项,表示递归复制所有文件及子目录
删除文件或目录-rm
删除指定的文件或目录
rm [选项] 要删除的文件或目录
常用选项
-f 强制删除
-i 显示详细信息(i节点)
-r 递归删除(宿主目录也删除,连根拔除)
例如:删除11
rm -rf 11.txt
移动文件或目录-mv
mv两种含义:
1、将指定的文件或目录转移位置
- 不相同位置移动则表示移动
2、如果目标位置与源位置相同,则相当于执行重命名操作
- 相同位置移动则表示重命名
命令基本格式
mv [选项] 源文件或目录 目标文件或目录
查找命令/文件存放目录-which
- 搜索范围由环境变量PATH决定(echo $PATH)
命令基本格式
which 命令|程序名
或
which -a 命令 |程序名
例如
which ls 查找ls命令所在位置
查找文件或目录-find
- 采用递归方式,根据目标的名称,类型,大小等不同属性进行精细查找
命令基本格式
find [查找范围] [查找条件表达式]
条件表达式之间的逻辑运算符
-a 表示 而且(and)
-o 表示 或者(or)
例如:
在/boot中查找大小大于1024k,而且名称含有vml的文件
find /boot -size +1024k -a -name “vml*”
在/boot中查找大小大于1024k,或者名称含有vml的文件
find /boot -size +1024k -o -name “vml*”
常用查找条件类型
四、总结
- Shell是一种特殊程序
- Linux命令的分类、格式及使用方法
- Linux常用命令
- 查看及切换目录(pwd、 cd、 ls、 du)
- 创建目录和文件 (mkdir、 touch、 ln)
- 复制、删除、移动目录和文件 (cp、 rm、 mv)
- 查找目录和文件 (which、 find)