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 创建目录

按时间创建目录

使用`date +%y%m%d` 
Example: mkdir `date +%y%m%d` 
tar cfvz /tmp/bak.`date +%y%m%d`.tar.gz /etc 

YmdHM代表年月日时分,可以通过date --hlep查看哪些字母代表什么

注意:`这个符号是键盘上~,而不是\'.

重要说明点:那个日期$(date +%Y%m%d)的 date命令和后边的日期格式的+号之前有一个空格。直接连写生成不了日期
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


mkdir -p /home/{test1/test2,test3/test4}  会同时创建/home/test1/test2、/home/test3/test4 目录

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

技巧tips

执行刚刚执行的一条命令:

!!

执行最近一个以指定字符串开头的命令(比如man)

!man
!m

引用上一个命令的最后一个参数

!$
<ESC>, .

VIM常用命令

缩进 定位

ctrl+v  选中 shift加  ">" 向后缩进  “<" 向前缩进 
 #定位 :
 vim +N
 #报错快速定位

普通模式

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

**交换分区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.

​ 记载的是现在系统已经装载的文件系统,包括操作系统建立的虚拟文件等;而/etc/fstab是系统准备装载的。 每当 mount 挂载分区、umount 卸载分区,都会动态更新 mtab,mtab 总是保持着当前系统中已挂载的分区信息,fdisk、df 这类程序,必须要读取 mtab 文件,才能获得当前系统中的分区挂载情况。当然我们自己还可以通过读取/proc/mount也可以来获取当前挂载信息

wc

这个命令的功能也很好记,因为它功能很有限:
wc -c filename:显示一个文件的字节数
wc -m filename:显示一个文件的字符数
wc -l filename:显示一个文件的行数
wc -L filename:显示一个文件中的最长行的长度
wc -w filename:显示一个文件的字数

xargs命令介绍

xargs命令是向其他命令传递命令行参数的一个过滤器,它能够将管道或者标准输入传递的数据转换成
xargs命令后所跟命令的命令行参数

**xargs关键参数 **

-n #指定每行最大参数量是n,可以将标准输入的文本划分为多行,每行显示n个
-d #自定义分隔符
-i #以{}替代前面的结果
-I #以其他符号替代前面的结果

4.练习题

#创建测试文本
cat > test.txt << EOF
123456
789
10 11
EOF
====================================================
#多行输入变单行
[root@linux find]# xargs < test.txt
123456 789 10 11
[root@linux find]# cat test.txt |xargs
123456 789 10 11
====================================================
[root@linux find]# xargs -n 3 < test.txt
123456 789 10
11


[root@linux find]# cat test.txt |xargs -n 3
123456 789 10
11
#自定义分隔符
[root@linux find]# echo splitXsplitXsplitXsplitX
splitXsplitXsplitXsplitX
[root@linux find]# echo splitXsplitXsplitXsplitX|xargs -d X
split split split split
[root@linux find]# echo splitXsplitXsplitXsplitX|xargs -d X -n 2
split split
split split

Linux netstat命令

Linux netstat 命令用于显示网络状态。

利用 netstat 指令可让你得知整个 Linux 系统的网络情况。

语法

netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

netstat -lntup|grep 3306

参数

参数说明:

-a或--all 显示所有连线中的Socket。
-A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。
-c或--continuous 持续列出网络状态。
-C或--cache 显示路由器配置的快取信息。
-e或--extend 显示网络其他相关信息。
-F或--fib 显示路由缓存。
-g或--groups 显示多重广播功能群组组员名单。
-h或--help 在线帮助。
-i或--interfaces 显示网络界面信息表单。
-l或--listening 显示监控中的服务器的Socket。
-M或--masquerade 显示伪装的网络连线。
-n或--numeric 直接使用IP地址,而不通过域名服务器。
-N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。
-o或--timers 显示计时器。
-p或--programs 显示正在使用Socket的程序识别码和程序名称。
-r或--route 显示Routing Table。
-s或--statistics 显示网络工作信息统计表。
-t或--tcp 显示TCP传输协议的连线状况。
-u或--udp 显示UDP传输协议的连线状况。
-v或--verbose 显示指令执行过程。
-V或--version 显示版本信息。
-w或--raw 显示RAW传输协议的连线状况。
-x或--unix 此参数的效果和指定"-A unix"参数相同。
--ip或--inet 此参数的效果和指定"-A inet"参数相同。

版权声明:本文为haitaoyyds原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/haitaoyyds/p/15087824.html