Linux命令
Linux命令
Linux的优点缺点
1一切都是一个文件. (包括硬件,文本,二进制,源代码)
2系统中拥有小型,单一用途的程序。(一个程序只负责做好自己的本职工作)
3当遇到复杂任务,通过不同功能用途的程序组合起来完成。轻量级
4避免令人困惑的用户界面就是没有复杂的图形界面。
Shell
Linux系统中运行的一种特殊的程序
在用户和内核之间充当“翻译官”
用户登录Linux系统是,自动加载一个Shell程序
Bash是Linux系统中默认使用的Shell程序 文件位于/bin/bash
Linux命令的分类
内部命令与外部命令的区别
内部命令 | 外部命令 |
---|---|
集成于Shell解释器程序内部的一些特殊指令,也称为内建(Built-in)指令 | Linux系统中能够完成特定功能的脚本文件或二进制程序 |
属于Shell的一部分 | 属于Shell解释器程序之外的命令 |
没有单独对应的系统文件 | 每个外部命令对应了系统中的一个文件 |
自动载入内存,可以直接使用 | 必须知道其对应文件地址,由Shell加载后才能执行 |
命令行格式
通用的命令行使用格式
命令字 【选项】 【参数】
命令字
是整条命令最关键的一部分
唯一确定一条命令
选项
短格式选项:使用“-‘符号引导
长格式选项:使用”--“符号引导
参数
命令字的处理对象
可以是文件名、目录(路径)或用户目录等内容
个数可以是零到多个
Linux命令行的辅助操作
快捷键 | 功能 |
---|---|
TAB键 | 自动补齐(两次可以显示所有选项) |
反斜杠 \ | 强制换行 |
Ctrl+a | 光标移到最前 |
Ctrl+e end键 | 光标移到最后 |
Ctrl+u | 清空至行首不包括当前光标处的字符 |
Ctrl+k | 清空至行尾包括当前光标的字符 |
Ctrl+w | 从当前光标删除到开头 |
ctrl+d | 从当前光标删除末尾 |
ctrl+l | 清屏 |
ctrl+c | 取消本次命令编辑 |
Ctrl+s/Ctrl+q | 锁屏/解锁 |
向上下箭头 | 回看执行过的命令 |
获得命令帮助
help
格式说明
- []表示可选项 可有可无
- CAPS或<>表示可变化的数据
- ...表示一个列表可加多个 多个
- x|y|z 表示或的意思 或
- -abc 是-a -b -c (有些命令选项有先后顺序) 可以多个选项
只能查看内部命令的 使用方法 tar -zxvf tar zxfv
--help
查看外部命令
man
man分九个章节 1 命令 5文件格式
info
info也可以查看相关的帮助信息
百度
百度是最快解决方式不拘泥形式
目录
pwd
显示当前路径
cd
cd 目录位置
cd /etc/
命令 | 效果 |
---|---|
cd cd ~ | 若不指定目标位置,切换到当前用户的宿主目录(家目录) |
cd - | 到前一次目录 |
一个点号“.”开头 | 表示以当前的工作目录作为起点(已点开头的是) |
两个点号“..”开头 | 表示以当前目录的上一级目录(父目录)作为起点 |
“~用户名”形式开头 | 表示以指定用户的宿主目录(家目录)作为起点 |
"."开头文件 | 表示隐藏文件 |
绝对路径:从根目录开始的路径就叫绝对路径
相对路径:没有将路径写完整
ls
生产环境中慎重直接使用,文件量过大会直接死机(有的服务器上的文件是千万级别)
显示列表目录类容
显示目录中的内容,包括目录和文件相关属性信息
ls [选项] [文件或目录...]
- -l 已长格式显示文件和目录列表 ll=ls -l
- -a 显示全部包括隐藏文件
- -A 显示全部文件或隐藏文件,但不包括 . 和..
- -d 只显示当前目录
- -h 友好显示文件大小
- -R 递归显示该目录及该目录的子目录下的所有内容
- --color 显示颜色
- -S 按从大到小排序
颜色表示的文件类型
蓝色 文件夹
黑色 普通文件
红色 压缩文件
绿色 可执行文件
黄色 块设备
天蓝色 连接文件
通配符
符号 | 效果 |
---|---|
? | 匹配一个字符 f?.txt |
* | 匹配所有非隐藏的字符无论多长多短,但不匹配 "." 开头的文件,即隐藏文件 |
1到10 | |
a b c ...z | |
A B C .....Z | |
[123] | 取其中之一有就显示没有也无所谓 |
[a-z] | 范围需要注意 |
[0-9] | 匹配数字范围(0123456789) |
\ | 转义符,表示原来的意思 |
[[:lower:]] | 小写字母表示 a-z |
[[:upper:]] | 大写字母表示 A-Z |
[^zhou] | 匹配列表中的所有字符以外的字符 |
[[:digit:]] | 任意数字,相当于0-9 |
alias
设置别名
临时修改
- alias 命令别名 = ’命令‘
- unalias 别名命令 删除别名
- \加别名命令 (显示原始命令)
补充:绝对路径>别名>内部>hash>外部命令(先查找别名在查找内部命令,缓存最后外部)
统计目录大小 du
du [选项] [文件或目录… ]
选项 | 说明 |
---|---|
-a | 统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录 |
-h | 以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果 |
-s | 只统计所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小 |
--max-depth=n | 最大显示到第n层 |
创建目录mkdir touch
mkdir
mkdir [选项] 目录位置及名称…
-p 递归创建
touch
- touch 新文件…(可为空)
- touch 不会破坏已有文件 刷新时间
每个文件有三个时间戳:
- access time 访问时间,atime,读取文件内容
- modify time 修改时间,mtime,改变文件内容(数据)
- change time 改变时间,ctime,元数据发生改变
In硬连接与软连接
In 命令用来为文件创建连接,连接类型分为硬连接和软链接连接两种,默认的连接类型是硬连接。如果要创建软链接使用"-s"选项。
ln [-s] 源文件或目录… 链接文件或目标位置
对比项 | 硬连接 | 软连接 |
---|---|---|
本质 | 本质是同一个文件 | 本质不是同一个文件 |
inode | 相同 | 不同 |
连接数 | 创建新的硬链接,链接数会增加,删除硬链接,链接数减少 | 删除新建不会改变 |
文件夹 | 不支持 | 支持 |
删除源文件 | 只是链接数减一,但链接文件的访问不受影响 | 无法访问连接文件 |
文件类型 | 和源文件相同 | 链接文件,和源文件无关 |
文件大小 | 和源文件相同 | 源文件的路径的长度 |
复制cp
cp(copy)备份
cp 命令用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。cp 命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。
- cp [选项]… 源文件 目标 相当改名复制
- cp [选项]... 源文件... 文件夹 多个源文件只能复制到文件夹
选项 | 说明 |
---|---|
-f | 覆盖目标同名文件或目录时不进行提醒,直接强制复制 |
-i | 覆盖目标同名文件或目录时提醒用户确认 |
-p | 复制时保持源文件的权限、属主及时间标记等属性不变 |
-r | 复制目录时必须使用此选项,表示递归复制所有文件及子目录 |
-a | 完整保留所有的信息 |
-v | 可视化 |
-u | 相当于增备,差异备份 |
rm 删除文件
rm [选项] 要删除的文件或目录
- -f、强制
- -i、交互
- -r 递归(删除目录需要)****
rm test.txt # 删除文件
rm -i test.txt test2.txt # 交互式删除文件
rm -r * # 删除当前目录下的所有文件和目录
rm -r testdir # 删除目录下的所有文件和目录
rm -rf testdir # 强制删除目录下的所有文件和目录
rm -v testdir # 显示当前删除操作的详情
mv 移动 改名
mv 命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。source 表示源文件或目录,target 表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。
mv file1.txt /home/office/ # 移动单个文件
mv file2.txt file3.txt file4.txt /home/office/ # 移动多个文件
mv *.txt /home/office/ # 移动所有 txt 文件
mv dir1/ /home/office/ # 移动目录
mv /usr/men/* . # 将指定目录中的所有文件移到当前目录中
mv file1.txt file2.txt # 重命名文件
mv dir1/ dir2/ # 重命名目录
mv -v *.txt /home/office # 打印移动信息
mv -i file1.txt /home/office # 提示是否覆盖文件
mv -uv *.txt /home/office # 源文件比目标文件新时才执行更新
mv -vn *.txt /home/office # 不要覆盖任何已存在的文件
mv -f *.txt /home/office # 无条件覆盖已经存在的文件
mv -bv *.txt /home/office # 复制时创建备份
which查找命令
which 命令 |程序名
which -a 命令|程序名
示例
which ls
which cd
find 查找文件
find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
find [查找范围] [查找条件表达式]
查找类型 | 关键字 | 说明 |
---|---|---|
按名称查找 | -name | 根据目标文件的名称进行查找,允许使用“*”及“?”通配符 |
按文件大小查找 | -size | 根据目标文件的大小进行查找一般使用“+”、“-”号设置超过或小于指定的大小作为查找条件常用的容量单位包括 kB(注意 k 是小写)、MB、GB |
按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
按文件类型查找 | -type | 根据文件的类型进行查找文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等 |
最大搜索目录深度 | -maxdepth level | 将你的文件已分级的形式查找 |
最小搜索目录深度 | -mindepth level | 同上 |
文件类型
- 普通文件
d 目录文件directory
l 符号链接文件link
b 块设备block 比如直接读1块 /dev 4k (512*8(扇区)=4096字节=4k)
c 字符设备character 一个字符一个字符读取 /dev/zero (/dev/null)
p 管道文件pipe 两个软件联系 A-管道文件-B A 写 B 读 单向的
s 套接字文件socket 可以双向的