Linux运维学习(一)目录的作用以及系统命令

Linux运维



前言

前面介绍了一些命令的用法,不知道大家掌握的怎么样,今天呢就跟大家说说Linux的一些重要目录的作用以及一些系统命令。


一、Linux目录的作用

Linux 根目录下的一级目录的作用:

 1. bin 		# 二进制系统命令所在的目录
 2. boot 		# 系统内核的位置 引导的程序的位置
 3. dev 		# 硬件设备所在的位置
 4. etc 		# 配置文件所在的目录 默认的系统配置文件在etc目录
 5. home 		# 普通用户的家目录 贫民窟
 6. mnt 		# 临时挂载点 硬件的一个入口文件
 7. opt 		# 第三方程序默认安装的位置
 8. proc 		# 内存的映射文件 可以通过着目录下的文件查看硬件信息 cpu 内存
 9. root 		# 管理员的家目录
 10. sbin 		# 超级管理员命令所在的位置
 11. tmp 		# 临时目录存在的位置 类似windows的回收站 使用移动替代删除
 12. usr 		# 用户程序文件所在的位置
 13. var		# 日志文件所在的位置

二、Linux系统命令

1.cp

cp(英文全拼:copy file)命令主要用于复制文件或目录。
可以一次性复制多个文件或目录

语法结构:
cp [选项] 源文件 目标文件

参数选项作用效果
-a此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于 dpR 参数组合。
-d复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式。
-r 或着 --recursive用于复制目录及其所有的子目录和文件,如果要复制目录,需要使用该选项。
-i 或着 --interactive在复制前提示确认,如果目标文件已存在,则会询问是否覆盖,回答 y 时目标文件将被覆盖。。
-u 或者 --update仅复制源文件中更新时间较新的文件。
-v 或者 --verbose显示详细的复制过程。
-p 或者 --preserve保留源文件的权限、所有者和时间戳信息。
-f 或者 --force强制复制,即使目标文件已存在也会覆盖,而且不给出提示。
-l不复制文件,只是生成链接文件。

创建实验环境

[root@study01 ~]# touch study.txt	#创建一个study文件
[root@study01 ~]# ll				#查看当前目录下的详细信息
total 0
-rw-r--r--. 1 root root 0 Mar 26 14:13 study.txt
[root@study01 ~]# mkdir test		#创建一个test目录
[root@study01 ~]# ll
total 0
-rw-r--r--. 1 root root 0 Mar 26 14:13 study.txt
drwxr-xr-x. 2 root root 6 Mar 26 14:14 test

案例一:复制study.txt到test目录下 名称不变

[root@study01 ~]# cp study.txt test/
[root@study01 ~]# tree				#以树状结构展示目录下的文件
.
├── study.txt
└── test
    └── study.txt

1 directory, 2 files

案例二:复制当前的study.txt 到当前的位置名字为study.txt.bak

[root@study01 ~]# cp study.txt study.txt.bak
[root@study01 ~]# ll
total 0
-rw-r--r--. 1 root root  0 Mar 26 14:13 study.txt
-rw-r--r--. 1 root root  0 Mar 26 14:35 study.txt.bak

经常用来备份文件

案例三:复制test目录到/tmp目录下

[root@study01 ~]# ll
total 0
-rw-r--r--. 1 root root  0 Mar 26 14:13 study.txt
-rw-r--r--. 1 root root  0 Mar 26 14:35 study.txt.bak
drwxr-xr-x. 2 root root 23 Mar 26 14:15 test
[root@study01 ~]# ll /tmp/
total 4
-rwx------. 1 root root 836 Mar 22 23:50 ks-script-nJI3SI
-rw-------. 1 root root   0 Mar 22 23:45 yum.log
[root@study01 ~]# cp -r test/ /tmp/
[root@study01 ~]# ll /tmp/
total 4
-rwx------. 1 root root 836 Mar 22 23:50 ks-script-nJI3SI
drwxr-xr-x. 2 root root  23 Mar 26 15:31 test
-rw-------. 1 root root   0 Mar 22 23:45 yum.log

注意:

如果复制过去的目录下有该文件同名字的文件系统会提示
[root@study01 ~]# cp study.txt test/
cp: overwrite ‘test/study.txt’? 

输入y则会覆盖掉
输入n则不覆盖取消复制(或者直接ctrl+c终止当前的操作)

2.mv

mv(英文全拼:move file)命令用来为文件或目录改名、或将文件或目录移入其它位置。

语法结构:
mv [options] source dest
mv [options] source... directory

参数选项作用效果
-b当目标文件或目录存在时,在执行覆盖前,会为其创建一个备份。
-i如果指定移动的源目录或文件与目标的目录或文件同名,则会先询问是否覆盖旧文件,输入 y 表示直接覆盖,输入 n 表示取消该操作。
-f如果指定移动的源目录或文件与目标的目录或文件同名,不会询问,直接覆盖旧文件。
-n不要覆盖任何已存在的文件或目录。
-u当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

注意

企业中使用mv代替rm,相当于先放到回收站但是不清空


3.rm

语法结构:
rm [options] name...

参数选项作用效果
-i删除前逐一询问确认。
-f即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r将目录及以下之档案亦逐一删除。

使用的时候一定要检查命令是否正确以防出问题。

4.vim

Linux 提供了一系列功能强大的编辑器,如 vi 和 Emacs 。 vi 是 linux 系统的第一个全屏幕交互式编辑器。vim是vi的强化版本,完全兼容vi操作。

vim的三种模式

  • 命令行模式:最初进入vi之后的模式,该模式下可以移动光标进行浏览,整行删除,但无法输入文字。
  • 编辑模式:只有在该模式下,用户才能进行文字的编辑输入。
  • 底行模式:该模式下,光标位于屏幕底行,用户可以进行文件保存或退出操作,也可以设置编辑环境,如寻找字符串、列出行号。

模式之间的转换方式:
请添加图片描述

a、命令行模式
键位作用
yy复制当前光标所在行
[n]yyn为数字,复制当前光标开始的n行
p粘贴复制的内容到光标所在行之下
P粘贴复制的内容到光标所在行之上
cc剪切当前光标所在行
[n]cc剪切当前光标开始的n行
dd删除当前光标所在行
[n]dd删除当前光标所在行开始的n行
G光标移动到文件尾
u取消前一个动作(撤销)
.重复前一个动作
x删除光标当前的一个字符
ZZ保存并退出
b、底行模式
命令作用
:w保存
:q退出 vi( 系统会提示保存修改 )
:q!强行退出(对修改不做保存)
:wq保存后退出
:w [filepath]另存文件到 filepath
:set nu显示行号
:n定位到第n行
:set nonu取消行号
: n1,n2 co n3将n1到n2行所有文本复制到n3行之下
: n1,n2 m n3将n1到n2行所有文本移动到n3行之下
: n1,n2 d删除n1到n2行的所有文本
/name查找光标之后的名为 “name” 的字符串如果查找下一个,按“n”即可在查找时,忽略关键字的大小可用\c选项
: s/str1/str2/将当前行的第一个字符串str1替换为字符串str2
: %s/str1/str2/g将所有行的字符串str1替换为字符串str2

5、echo

cho命令是linux中最基础的命令,也是很常用的命令,特别是在写shell脚本的时候,可能会经常被用到,用于字符串的输出

语法结构:
echo 字符串 # 输出到屏幕
echo 字符串 > 文件 # 输出到文件

参数选项作用效果
-n不换行输出
-e识别转义字符
转义字符意义
\b转义后相当于按退格键(backspace) ,但前提是”\b”后面存在字符
\c不换行输出,在”\c”后面不存在字符的情况下,作用相当于echo -n
\n换行,效果看示例。
\f 或者\v换行,但是换行后的新行的开头位置连接着上一行的行尾
\t转以后表示插入tab,即制表符
\r光标移至行首,但不换行,相当于使用”\r”以后的字符覆盖”\r”之前同等长度的字符
\表示插入”\”本身;

使用echo命令输出”\b”转义字符,在”\b”后面存在字符的前提下,”\b”表示删除前一个字符,”\b\b”表示删除前两个字符。


[root@study01 ~]# echo -e "123456789\b"
123456789
[root@study01 ~]# echo -e "123\b456"
12456
[root@study01 ~]# echo -e "123\b\b456"
1456
[root@study01 ~]# echo -e "123\b\b\b456"
456

可以看到,在”\b”后面不存在任何字符时,”\b”并没有转义为”退格键”,当”\b”后面存在字符时,一个”\b”就相当于按一次backspace键。

使用\c转义符,表示不换行输出,但是当”\c”后面仍然存在字符时,”\c”后面的字符将不会被输出,如果”\c”后面不存在任何字符时,效果与使用”echo -n”相同,

[root@study01 ~]# echo -e "123456\c"
123456[root@study01 ~]# echo -e "123456\c"
123456[root@study01 ~]# 
[root@study01 ~]# echo -n "123456"
123456[root@study01 ~]# 

“\n”转义后表示换行,被输出的字符从”\n”处开始另起一行。

[root@study01 ~]# echo -e "123456\n"
123456
[root@study01 ~]# echo -e "123\n456789"
123
456789

“\f”和”\v“转移符表示换行,但是换行后的新行的开头位置连接着上一行的行尾,

[root@study01 ~]# echo -e "123\f456"
123
   456
[root@study01 ~]# echo -e "123\v456"
123
   456

”\t“转义字符表示键盘上的tab键

[root@study01 ~]# echo -e "123\t456"
123	456

“\r”转义符表示使用”\r”后面的字符覆盖”\r”之前的同等长度的字符

[root@study01 ~]# echo -e "123\r456"
456
[root@study01 ~]# echo -e "123456\r789"
789456
[root@study01 ~]# echo -e "123456\\789"
123456\789

a.{ }

{ }本身就是一个序列,而不是一个命令
1、当批量创建类似的文件名或者目录名的时候可以用序列来更方便

数字序列

[root@study01 ~]# echo {1..5}
1 2 3 4 5
[root@study01 ~]# echo {1..10}
1 2 3 4 5 6 7 8 9 10
[root@study01 ~]#  echo {1..10..2}
1 3 5 7 9
[root@study01 ~]# echo {1..100..2}
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71
73 75 77 79 81 83 85 87 89 91 93 95 97 99
[root@study01 ~]# echo {01..10}
01 02 03 04 05 06 07 08 09 10

字母序列

[root@study01 ~]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@study01 ~]# echo {a..f}
a b c d e f
[root@study01 ~]# echo {a..z..2}
a c e g i k m o q s u w y

拼接

[root@study01 ~]# echo A{1..3}
A1 A2 A3
[root@study01 ~]# echo {1..3}A
1A 2A 3A
[root@study01 ~]# mkdir {1..3}A
[root@study01 ~]# ll
total 4
drwxr-xr-x. 2 root root 6 Mar 5 12:04 1A
drwxr-xr-x. 2 root root 6 Mar 5 12:04 2A
drwxr-xr-x. 2 root root 6 Mar 5 12:04 3A
b. > >>

注意: 只要是可以输出显示到屏幕上的内容 都可以定向到文件中
注意: 只接收正确的结果

> 标准输出重定向
(先清空后写入)
[root@study01 ~]# cat study.txt
[root@study01 ~]# echo hehe>study.txt
[root@study01 ~]# cat study.txt
hehe
[root@study01 ~]# echo hahahha>study.txt
[root@study01 ~]# cat study.txt
hahahha


>> 标准追加重定向
(追加内容到文件的末尾)
[root@study01 ~]# echo hello>>study.txt
[root@study01 ~]# cat study.txt
hahahha
hello

注意

>>> 只接收正确的结果
扩展:
2>2>> 只接收错误的结果
  • 33
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值