Linux常用命令
Linux文本目录常用命令
pwd 显示当前所在目录位置信息
[root@Centos7-100 network-scripts]#:pwd
/etc/sysconfig/network-scripts #显示当前位置
cd 切换目录
cd [option] [dir]
cd [选项] [目录]
- #切换到用户上一次所在的目录路径,游戏来说就是解锁一个传送点,然后传送到上一个存档位置。
~ #切换到当前用户的家目录,默认不接参数,直接执行cd也会达到相同的效果。游戏来说就是直接 用回城卷回城了。
.. #切换到当前目录的上一级目录,游戏来说就是返回上一个地图。
tree 大树显示目录结构
tree [option] [directory]
tree [选项] [目录]
[root@Centos7-100 network-scripts]#:tree -L 1
.
├── ifcfg-eth0
├── ifcfg-lo
├── ifdown -> ../../../usr/sbin/ifdown
├── ifdown-bnep
├── ifdown-eth
.....
重要选项
-d #只显示目录
-L N #遍历目录的最大层数,N为大于0的正整数
mkdir 创建目录
mkdir [option] [directory]
mkdir [选项] [目录]
-p #1.递归创建目录,递归的意思就是指目录下面还有目录
#2.默认不加参数时如果要创建的目录已经存在,就会报错提示。使用-p参数后即使需要创建的目录 已经存在了,也不会提示报错。
-m #选项用于手动配置所创建目录的权限,而不再使用默认权限
[root@Centos7-100 test]#:mkdir -p /root/test/data/data2/data3
[root@Centos7-100 test]#:tree
.
└── data
└── data2
└── data3
[root@Centos7-100 test]#:mkdir -m 777 data2
[root@Centos7-100 test]#:ll
总用量 0
drwxr-xr-x. 3 root root 19 4月 9 19:58 data
drwxrwxrwx. 2 root root 6 4月 9 20:00 data2
touch 创建文件或更改文件时间戳
touch [option] [file]
touch [选项] [文件]
-a:或--time=atime或--time=access或--time=use 只更改存取时间;
-c:或--no-create 不建立任何文件;
-d:<时间日期> 使用指定的日期时间,而非现在的时间;
-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
-m:或--time=mtime或--time=modify 只更该变动时间;
-r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:<日期时间> 使用指定的日期时间,而非现在的时间;
ls 显示目录下的内容及属性信息
ls [option] [file]
ls [选项] [文件或目录]
-l #详细的列出文件及目录的信息
-a #显示目录下所有的文件,包含以"."开头的隐藏文件
-h #以人类可读的信息显示文件或目录大小
-d #显示目录本身的信息,而不是目录里面的文件的信息
-r #反向排序
-t #根据最后修改时间进行排序
-i #显示inode节点信
cp 复制文件或目录
cp [option] [source] [dest]
cp [选项] [源文件] [目标文件]
重要选项
-p #复制文件时保持源文件。
-d #如果复制的源文件是符号链接,则仅复制符号链接本身,而且保留符号链接所指向的目标文件或目 录。
-r #递归复制目录,即复制目录下的所有层级的子目录及文件
-a #等同于上面的p,d,r这3个选项的功能总和。
-i #如果复制的文件已经存在,覆盖前提示用户确认。
-t #默认情况下命令格式是"cp 源文件 目标文件",使用-t参数可以颠倒顺序,格式变成"cp -t 目 标文件 源文件"。
mv 移动或重命名文件
mv [option] [source] [dest]
mv [选项] [源文件] [目标文件]
mv [选项]... [-T] 源文件 目标文件
mv [选项]... 源文件... 目录
mv [选项]... -t 目录 源文件...
重要选项
--backup[=CONTROL] : 为每个已存在的目标文件创建备份
-b : 类似–backup 但不接受参数
-f, --force : 覆盖前不询问
-i, --interactive : 覆盖前询问
-n, –nechoo-clobber : 不覆盖已存在文件 如果您指定了-i、-f、-n 中的多个,仅最后一个生效。
--strip-trailing-slashes : 去掉每个源文件参数尾部的斜线
-S, --suffix=SUFFIX : 替换常用的备份文件后缀
-t, --target-directory=DIRECTORY : 将所有参数指定的源文件或目录移动至指定目录
-T,--no-target-directory : 将目标文件视作普通文件处理
-u, --update : 只在源文件文件比目标文件新,或目标文件不存在时才进行移动
-v, --verbose : 详细显示进行的步骤
⚠ rm⚠ 删除文件或目录
警告这是Linux最危险的命令之一,跪求谨慎使用。
语法格式
rm [option] [file]
rm [选项] [文件或目录]
重要选项:
-f #强制删除,忽略不存在的文件,不提示确认
-r #递归删除目录及其内容
-i #删除前需要确认
echo命令------linux最基础的命令
ehco命令基本用法
echo [OPTION]... [STRING]...
echo重要选项
echo -n #表示不换行输出
echo "" #输出命令 规范
echo -e #输出转义字符
echo —E #取消反斜杠ESC转义 (默认)
-version 显示版本信息
-help 显示帮助
常用的转义字符如下:
\b 转义后相当于按退格键(backspace) ,但前提是”\b”后面存在字符,具体效果参考下方示例。
\c 不换行输出,在”\c”后面不存在字符的情况下,作用相当于echo -n,具体效果参考下方示例。
\n 换行,效果看示例。
\f 换行,但是换行后的新行的开头位置连接着上一行的行尾,具体效果查看示例;
\v 与\f相同;
\t 转以后表示插入tab,即制表符,已经在上面举过例子;
\r 光标移至行首,但不换行,相当于使用”\r”以后的字符覆盖”\r”之前同等长度的字符,只看这段文字描述的话可能不容易理解,具体效果查看示例;
\ 表示插入”\”本身;
cat:合并文件&查看文件内容
重要选项
-A:--show-all 等价于 -vET
-b:--number-nonblank 对非空输出行编号,即在每行前显示所在行号
-e:等价于 -vE
-E: --show-ends 在每行结束处显示 $
-n:--number 对输出的所有行编号,即在每行前显示所在行号
-s:--squeeze-blank 不输出多行空行
-t:与 -vT 等价
-T:--show-tabs 将跳 字符显示为 ^I
-u :(被忽略)
-v: --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
--help 显示此帮助信息并离开
开关机
1。关机命令
shutdown -h now
shutdown -h +1
halt
init0
poweroff
2.重启命令
reboot
shutdown -r now
shutdown -r +1
init 6
3.注销命令
logot
exit
VIM常用命令
普通模式
hjkl #上下左右
gg #移动到第一行
G #移动到最后一行
0 #移动到行首
$ #移动到行尾
w #以单词移动
yy #复制
nyy #复制N行
p #在光标下行复制
u #撤销上一次操作
ctrl + r #前一步
r #替换
dd #删除 剪切
ndd #删除N行 剪切
dG #删除光标所在行到前面所有行
dgg #删除光标所在行到前面所有行
d$ #删除光标所在行到此行后面所有的内容
d0 #删除光标所在行到此行前面所有的内容
di+加符号 #把符号里面的内容都抹去
文本 模式
i #从普通模式进入编辑模式,插入位置在光标的前面
a #从普通模式进入编辑模式,插入位置在光标的后面
I #从普通模式进入编辑模式,插入位置在行首
A #从普通模式进入编辑模式,插入位置在行尾
o #从普通模式进入编辑模式,插入位置光标所在行下面新建一行
O #从普通模式进入编辑模式,插入位置光标所在行上面新建一行
ESC 从编辑模式切换到普通模式
Backspace 编辑模式下删除光标前面的文本
命令行模式
:w 保存
:q 不保存退出
:wq 保存并退出
:wq! 强制保存并推出
:x 保存并退出
/关键词
n 向下查找关键词
N 向上查找关键词
:noh 取消关键词高亮显示
:setnu 显示行数
N + Ctrl + A 快速加减
N + Ctrl + X
f+单词 快速定位
关键词+ Ctrl+p 单词补全
正则表达式和三剑客命令
正则表达式
^ 以什么开头,"^oldboy" 表示匹配以oldboy单词开头的行
$ 以什么结尾,"oldboy$",表示匹配以oldboy单词结尾的行
^$ 组合符号,表示空行。逻辑解释就是以^开始,以$结尾的行
. 匹配任意且只有一个字符,但是不匹配空行
\ 转义字符,让特殊符号失效,如"\."只表示小数点
* 匹配前一个字符(连续出现)0次或1次以上,注意,当重复0次的时 候,表示什么也没有,但是会撇皮所有内容
.* 组合符,匹配所有内容
[abc] 匹配[]内包含的任意一个字符a或b或c
[a-z] 匹配[]内包含a-z任意一个字符
[0-9] 匹配[]内包含0-9的任意一个数字
[^abc] 匹配不包含^后的任意字符a或b或c,这里的^表示对[abc]的取反,与在外面的^意义不同
--------------------拓展
+ 匹配前1个字符1次或多次
[:/]+ 匹配括号内的 ":" 或 "/" 字符1次或多次
? 匹配前一个字符0次或1次
| 表示或者,即同时过滤多个字符串
() 分组过滤,被括起来的内容表示一个整体,另外()的内容可以被后面的\n引用,n为数字,表示引用第几个括号的内容
\n 引用前面()里的内容,例如(abc)\1 表示匹配abcabc
a{n,m} 匹配前一个字符最少n次,最多m次
a{n,} 匹配前一个字符最少n次
a{,m} 匹配前一个字符最多m次
a{n} 匹配前一个字符正好n次
grep
grep文本搜索,正则表达搜索文本
基本语法
用法: grep [选项]... PATTERN [FILE]...
选项
正则表达式选择与解释:
-E, --extended-regexp PATTERN 是一个可扩展的正则表达式(缩写为 ERE)
-F, --fixed-strings PATTERN 是一组由断行符分隔的定长字符串。
-G, --basic-regexp PATTERN 是一个基本正则表达式(缩写为 BRE)
-P, --perl-regexp PATTERN 是一个 Perl 正则表达式
-e, --regexp=PATTERN 用 PATTERN 来进行匹配操作
-f, --file=FILE 从 FILE 中取得 PATTERN
-i, --ignore-case 忽略大小写
-w, --word-regexp 强制 PATTERN 仅完全匹配字词
-x, --line-regexp 强制 PATTERN 仅完全匹配一行
-z, --null-data 一个 0 字节的数据行,但不是空行
‘egrep’即‘grep -E’。‘fgrep’即‘grep -F’。
直接使用‘egrep’或是‘fgrep’均已不可行了。
若FILE 为 -,将读取标准输入。不带FILE,读取当前目录,除非命令行中指定了-r 选项。
如果少于两个FILE 参数,就要默认使用-h 参数。
如果有任意行被匹配,那退出状态为 0,否则为 1;
如果有错误产生,且未指定 -q 参数,那退出状态为 2。
磁盘命令
lsblk列出块设备
命令作用:
打印出当前块设备以及分区的信息,包括大小,类型,挂载点
[root@Centos7-100 ~]#:lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 40G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 39G 0 part
├─centos-root 253:0 0 37G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.5G 0 rom
Linux中挂载详解以及mount命令用法
挂载概念
Linux中的根目录以外的文件要想被访问,需要将其“关联”到根目录下的某个目录来实现,这种关联操作就是“挂载”,这个目录就是“挂载点”,解除次关联关系的过程称之为“卸载”。
注意:“挂载点”的目录需要以下几个要求:
(1)目录事先存在,可以用mkdir命令新建目录;
(2)挂载点目录不可被其他进程使用到;
(3)挂载点下原有文件将被隐藏。
挂载与卸载
挂载方法:mount DECE MOUNT_POINT
mount:通过查看/etc/mtab文件显示当前系统已挂载的所有设备
命令使用格式:mount [-fnrsvw] [-t vfstype] [-o options] device dir
命令使用格式:mount [-fnrsvw] [-t vfstype] [-o options] device dir
device:指明要挂载的设备;
(1) 设备文件:例如/dev/sda5
(2) 卷标:-L ‘LABEL’, 例如 -L ‘MYDATA’
(3) UUID, -U ‘UUID’:例如 -U ‘0c50523c-43f1-45e7-85c0-a126711d406e’
(4) 伪文件系统名称:proc, sysfs, devtmpfs, configfs
dir:挂载点
事先存在;建议使用空目录;
进程正在使用中的设备无法被卸载;
常用命令选项:
-t vsftype:指定要挂载的设备上的文件系统类型;
-r: readonly,只读挂载;
-w: read and write, 读写挂载;
-n: 不更新/etc/mtab;
-a:自动挂载所有支持自动挂载的设备;(定义在了/etc/fstab文件中,且挂载选项中有“自动挂载”功能)
-L ‘LABEL’: 以卷标指定挂载设备;
-U ‘UUID’: 以UUID指定要挂载的设备;
-B, --bind: 绑定目录到另一个目录上;
注意:查看内核追踪到的已挂载的所有设备:cat /proc/mounts
-o options:(挂载文件系统的选项)
async:异步模式;
sync:同步模式;
atime/noatime:包含目录和文件;
diratime/nodiratime:目录的访问时间戳
auto/noauto:是否支持自动挂载
exec/noexec:是否支持将文件系统上应用程序运行为进程
dev/nodev:是否支持在此文件系统上使用设备文件;
suid/nosuid:是否支持在此文件系统上使用特殊权限
remount:重新挂载
ro:只读
rw:读写
user/nouser:是否允许普通用户挂载此设备
acl:启用此文件系统上的acl功能
注意:上述选项可多个同时使用,彼此使用逗号分隔;
默认挂载选项:defaults:rw, suid, dev, exec, auto, nouser, and async
上述信息可以通过查看超级块信息看到,这里不再对其进行演示。
卸载命令:umount
命令使用格式:
# umount DEVICE
# umount MOUNT_POINT
上面已经演示过umount的使用
fuser:查看正在访问指定文件系统的进程:
命令使用格式:
# fuser -v MOUNT_POINT
终止所有在正访问指定的文件系统的进程:慎用
# fuser -km MOUNT_POINT
交换分区swap
这里介绍下交换分区,通过实验演示交换分区的创建及挂载
挂载交换分区:
启用:swapon
swapon [OPTION]… [DEVICE]
-a:激活所有的交换分区;
-p PRIORITY:指定优先级;
禁用:swapoff [OPTION]… [DEVICE]
开机自动挂载
如果我们想实现开机自动挂载某设备,只要修改/etc/fstab文件即可。
文件挂载的配置文件:/etc/fstab
要挂载的设备或伪文件系统 挂载点 文件系统类型 挂载选项 转储频率 自检次序
UUID=6efb8a23-bae1-427c-ab10-3caca95250b1 /boot xfs defaults 0 0
要挂载的设备或伪文件系统:设备文件、LABEL(LABEL="")、UUID(UUID="")、伪文件系统名称(proc, sysfs)
挂载点:指定的文件夹
挂载选项:defaults
转储频率:
0:不做备份
1:每天转储
2:每隔一天转储
自检次序:
0:不自检
1:首先自检;一般只有rootfs才用1;
/etc/fstab和/etc/mtab的区别
/etc/fstab文件的作用:
记录了计算机上硬盘分区的相关信息,启动 Linux 的时候,检查分区的 fsck 命令,和挂载分区的 mount 命令,都需要 fstab 中的信息,来正确的检查和挂载硬盘。
/etc/mtab文件的作用:
先看它的英文是:
This changes continuously as the file /proc/mount changes. In other words, when filesystems are mounted and unmounted, the change is immediately reflected in this file.
挂载点:指定的文件夹
挂载选项:defaults
转储频率:
0:不做备份
1:每天转储
2:每隔一天转储
自检次序:
0:不自检
1:首先自检;一般只有rootfs才用1;
### **/etc/fstab和/etc/mtab的区别**
#### **/etc/fstab文件的作用**:
记录了计算机上硬盘分区的相关信息,启动 Linux 的时候,检查分区的 fsck 命令,和挂载分区的 mount 命令,都需要 fstab 中的信息,来正确的检查和挂载硬盘。
#### **/etc/mtab文件的作用**:
先看它的英文是:
This changes continuously as the file /proc/mount changes. In other words, when filesystems are mounted and unmounted, the change is immediately reflected in this file.
记载的是现在系统已经装载的文件系统,包括操作系统建立的虚拟文件等;而/etc/fstab是系统准备装载的。 每当 mount 挂载分区、umount 卸载分区,都会动态更新 mtab,mtab 总是保持着当前系统中已挂载的分区信息,fdisk、df 这类程序,必须要读取 mtab 文件,才能获得当前系统中的分区挂载情况。当然我们自己还可以通过读取/proc/mount也可以来获取当前挂载信息