快照/克隆

快照:又称还原点,就是保存在拍快照时候的系统的状态(包含了所有的内容),在后期的时候随时可以恢复。

注意:侧重在于短期备份,需要频繁备份的时候都可以使用快照,做快照的时候虚拟机中操作系统一般处于开启状态

克隆:就是复制的意思。

注意:克隆侧重长期备份,做克隆的时候是必须得关闭(了解)

快照与克隆的区别
克隆与快照的最大的区别:克隆之后是2 台机器,而快照之后依旧是1 台机器(影子系统)。后期的危险操作前建议使用快照。

Linux系统文件

  1. bin:全称binary,含义是二进制(逢二进一)。该目录中存储的都是一些二进制文件(可执行文件,命令),文件都是可以被运行的。普通二进制目录,里面的二进制文件(命令),普通用户可以执行且超级管理员也可以执行。
  2. devdevice,该目录中主要存放的是外接设备,例如盘、其他的光盘等。在其中的外接设备是不能直接被使用的,需要挂载(类似windows 下的分配盘符)。
  3. etc:该目录主要存储一些配置文件,非常重要!!!
  4. home:表示“家”,表示除了root用户以外其他用户的家目录,类似于windows下的User/用户目录。
  5. procprocess,表示进程,该目录中存储的是Linux 运行时候的进程, 此目录下不能建立和删除文件;(某些文件可以修改)。
  6. 存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射
  7. root:该目录是root 用户自己的家目录。
  8. sbin:全称super binaryshell binary),该目录也是存储一些可以被执行的二进制文件,但是必须得有super 权限的用户才能执行。(superman超人)
  9. tmptemp缩写形式,表示“临时”的,当系统运行时候产生的临时文件会在这个目录存着。
  10. usr:存放的是用户自己安装的软件。类似于windows 下的program files
  11. varvariable(可变的,变量),存放的程序/系统的日志文件的目录。
  12. mnt:当外接设备需要挂载的时候,临时挂载用的设备挂载点;(如磁盘分区,网络共享)
  13. medie:ruan pang /guan pang mu lu
  14. /opt
  15. opt optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
  16. /run
  17. 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run
  18. boot:系统在启动时需要加载的文件存储目录;
  19. liblibrary,函数库目录,专门存储计算机系统在启动时以及其他软件在运行时需要加载的函数库文件;
  20. lost+foundLinux 也很难避免不出现断电、宕机等等情况,如果断电有些文件可能还并没有完全保存好,那么此时对应文件就会存储在该目录中,下次启动时候可以再去使用;

树状目录结构:
Linux基础命令(上) - 图1
以下是对这些目录的解释:

/bin:
bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。

/boot:
这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。

/dev :
dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。

/etc:
etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。

/home:
用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。

/lib:
lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。

/lost+found:
这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

/media:
linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。

/mnt:
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。

/opt:
opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

/proc:
proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
/root:
该目录为系统管理员,也称作超级权限者的用户主目录。

/sbin:
s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。

/selinux:
这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

/srv:
该目录存放一些服务启动之后需要提取的数据。

/sys:

这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。

sysfs 文件系统集成了下面3种文件系统的信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统以及针对伪终端的 devpts 文件系统。

该文件系统是内核设备树的一个直观反映。

当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

/tmp:
tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。

/usr:
usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。

/usr/bin:
系统用户使用的应用程序。

/usr/sbin:
超级用户使用的比较高级的管理程序和系统守护程序。

/usr/src:
内核源代码默认的放置目录。

/var:
var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

/run:
是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。

在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。

/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在 /bin/ls 目录下的。

值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给 root 使用的指令。

/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在 /var/log 目录下,另外 mail 的预设放置也是在这里。

Linux命令入门(上)

  1. [root@db02 1]#
  2. # 超级管理员 $普通用户
  3. ls
  4. ls (空格) -l
  5. tail -n 3 readme.txt 最后三行
  6. tail /etc/passwd 默认最后10
  7. 一直变化的文件总是显示后10行:
  8. [root@linuxcool ~ ] tail -f 10 file
  9. [cndws@localhost ~] $ su - root
  10. 关于路径:路径分为 绝对路径和相对路径。
  11. 绝对路径:不管当前工作路径是在哪,目标路径都会从“/”磁盘根下开始。
  12. 相对路径:除绝对路径之外的路径称之为相对路径,相对路径得有一个相对物(当前工作)。
  13. 只要看到路径以“/”开头则表示该路径是绝对路径,除了以“/”开头的路径称之为相对路径。
  14. ../:表示上级目录(上一级)
  15. ./ :表示当前目录(同级),普通文件./可以省略,可执行文件(绿色)必须加./
  16. 文件夹名称/:表示下级目录(下一级),注意这个斜杠/
  17. ls -al -a 隐藏文件
  18. ls -l /tmp
  19. ls -lh -h:表示以较高可读性(文档大小)的形式进行展示
  20. [root@db02 1]# ls -al /tmp
  21. 总用量 8
  22. drwxrwxrwt. 21 root root 4096 11 11 15:08 .
  23. dr-xr-xr-x. 17 root root 244 11 11 01:56 ..
  24. drwx------. 2 root root 20 11 11 02:00 .esd-0
  25. drwxrwxrwt. 2 root root 6 9 26 04:56 .font-unix
  26. drwxrwxrwt. 2 root root 42 11 11 14:22 .ICE-unix
  27. -r--r--r-- 1 root root 11 11 11 14:22 .X0-lock
  28. d”打头,该位表示文档类型,“d”表示文件夹,“-”表示是文件
  29. pwd(==print working directory==,打印当前工作目录)
  30. cd 切换当前的工作目录
  31. clear 清屏
  32. whoami 作用:用户获取当前用户的用户名
  33. reboot 重启操作系统
  34. init 6 重启电脑(reboot)
  35. shutdown | halt 关机命令
  36. init 0 表示关机(halt)
  37. shutdown -h 0now 立即关机
  38. 当我们执行shutdown -h 10这个命令时,系统就处于关机等待状态。如果后悔了想取消关机,我们可以使用快捷键Ctrl + C按键进行取消关机。 中止当前进程
  39. shutdown -r 10 延迟重启,10分钟之后重启
  40. 创建目录
  41. 语法:# mkdir 路径(需要包含文件夹名称)
  42. mkdir /usr/local/nginx/html
  43. 递归创建目录
  44. 语法:# mkdir -p 路径(需要包含目录名称)
  45. 创建多层不存在的路径,可以使用mkdir -p进行实现。
  46. 同时创建多个目录
  47. 语法:#mkdir [-p] 路径1 路径2 路径3
  48. 删除空目录
  49. 语法:# rmdir 路径(需要包含目录名称)
  50. 同时删除多个空目录
  51. rmdir /a /aa
  52. 用法三:递归删除空目录==
  53. 语法:# rmdir -p 路径
  54. 作用:首先删除子目录,删除成功后,删除上级目录,直至结束。
  55. 文件操作
  56. 创建文件
  57. 语法:# touch 文件路径 [文件路径2 文件路径3 …]
  58. 删除文件
  59. 删除文件或文件夹
  60. 语法:rm [-rf] 文件或文件夹路径
  61. 选项:
  62. -r :递归删除
  63. -f :强制删除,不提示任何信息。操作前一定要慎重!!!
  64. 复制与剪切
  65. 作用:复制文件/文件夹到指定的位置
  66. 语法:#cp [-r] 被复制的文件路径 文件被复制到的路径
  67. cp -r /root/shop/ /tmp/
  68. -r 复制目录的时候用
  69. 剪切操作
  70. 作用:移动文档到新的位置
  71. 语法:#mv 需要移动的文档路径 需要保存的位置路径
  72. mvcp的区别:
  73. mv cp 命令不一样,不管是针对文件还是针对文件夹都不需要加类似 -r 的选项。
  74. 在移动的过程中文档名称名称是不变的,变的是路径
  75. 重命名操作
  76. mv a.txt b.txt
  77. 压缩与解压缩
  78. gzip|bzip2|xz:压缩单个文件
  79. gzip命令 .gz
  80. gzip 需要压缩的文件
  81. 解压:gunzip或者gzip -d
  82. bzip2命令
  83. 压缩:bzip2 需要压缩的文件 .bz2
  84. 解压:bzip2 -d 需要解压的文件
  85. > 压缩速度慢,压缩率高,cpu开销大
  86. xz命令
  87. 压缩:xz 需要压缩的文件
  88. 解压:unxz 或者 xz -d
  89. > 压缩率高,解压速度快,压缩时间较长,cpu消耗相对较大
  90. tar打包命令
  91. tar命令可以将文件打包成文件档案
  92. 1)打包
  93. 语法:tar 选项 打包文件名 要打包的文件或目录
  94. 选项:
  95. -ccreate 创建的意思
  96. -v,可视化的意思,即可以查看创建的过程,可以省略
  97. -f,必选参数,不能省略==
  98. -uupdate缩写,更新原打包文件中的文件(了解)
  99. -rappend含义,向压缩归档文件末尾追加文件(了解)
  100. -t,查看打包的文件内容(了解)
  101. # tar -cvf a.tar b.txt c.txt
  102. # tar -uf a.tar b.txt c.txt
  103. # tar -rf a.tar b.txt c.txt
  104. 2)打包并压缩
  105. 语法:tar 选项 打包文件名 要压缩的文件或目录
  106. -z,压缩为.gz格式
  107. -j,压缩为.bz2格式
  108. -J,压缩为.xz格式
  109. -ccreate 创建的意思
  110. -v,可视化的意思,即可以查看创建的过程,可以省略
  111. -f,使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。必选参数,不能省略
  112. # tar -czvf hw.tar.gz /bb
  113. 3)解压
  114. 解压的时候,把压缩命令中的 c 换成 x 即可
  115. 示例代码:解压hw.tar.gz文件
  116. # tar -xzvf hw.tar.gz
  117. 使用选项 -tf ,可以查看压缩文件内容
  118. # tar -tf hw.tar.gz
  119. zip压缩与解压缩
  120. zip压缩
  121. 语法:# zip [-r] 压缩后的文件 需要压缩的文件(多个文件)
  122. # zip read.zip read.txt 文件压缩
  123. # zip -p read.zip read
  124. unzip解压缩
  125. 语法:unzip 要解压的压缩文件 [-d] 解压目录
  126. unzio read.zip 解压到当前目录
  127. unzip read.zip -d /tmp/ 解压到指定目录
  128. 输出重定向
  129. 语法:# 需要执行的有输出的命令 输出重定向符号 >或>> 输出到的文件路径
  130. 场景:一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。
  131. >:标准输出重定向 => 覆盖输出,会覆盖掉原先的文件内容
  132. >>:追加重定向 => 追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加
  133. ls -l >> a.txt
  134. echo "11111" >> a.txt 使用echo命令向文件中写入自定义内容
  135. 标准输入输出
  136. bashI/O输入输出:0 1 2
  137. 标准输入(stdin) :键盘上所输入的内容 文件描述符 0
  138. 标准输出(stdout) :屏幕上所输出的正确的结果 文件描述符 1
  139. 标准错误(stderr) :屏幕上所输出的错误的结果 文件描述符 2
  140. 2> :标准错误重定向
  141. &> :标准输出和标准错误重定向 & = 1+2
  142. cmd命令 2> stderr.txt 1>stdout.txt
  143. cmd &> output.txt
  144. cmd >& output.txt #两个表达式效果一样的
  145. 2>/dev/null
  146. 意思就是把错误输出到“黑洞”
  147. >/dev/null 2>&1
  148. 默认情况是1,也就是等同于1>/dev/null 2>&1。意思就是把标准输出重定向到“黑洞”,还把错误输出2重定向到标准输出1,也就是标准输出和错误输出都进了“黑洞”
  149. 2>&1 >/dev/null
  150. 意思就是把错误输出2重定向到标准出1,也就是屏幕,标准输出进了“黑洞”,也就是标准输出进了黑洞,错误输出打印到屏幕
  151. &>/dev/null
  152. 这个就是,标准输出和标准错误,通通重定向到/dev/null
  153. 2&>1
  154. 1是屏幕, 所以标准错误重定向到屏幕
  155. 1>/dev/null
  156. 即标准输出重定向到 /dev/null,
  157. >/dev/null 2>&1 标准输出和标准错误都重定向到了/dev/null
  158. 实际上,应该等同于这样: 1>/dev/null 2>/dev/null ,默认情况下就是1,标准输出,所以一般都省略。 而&符号,后面接的是必须的文件描述符。不能写成2>1,这样就成了标准错误重定向到文件名为1的文件中了,而不是重定向标准错误到标准输出中。所以这里就是:标准输出重定向到了/dev/null,而标准错误又重定向到了标准输出,所以就成了标准输出和标准错误都重定向到了/dev/null
  159. 2>&1 >/dev/null 标准错误打印到屏幕,而标准输出不打印到屏幕
  160. 咋一看,这个跟上面那个有啥区别呢,不也是标准错误重定向到标准输出,而标准输出重定向到/dev/null么? 最后不应该都重定向/dev/null么? 我是这么理解的!一条指令同一时刻要么产生标准错误,要么产生标准输出。 当产出标准错误的时候,因这个标准错误重定向到了标准输出,而标准输出是输出到屏幕。这个时候标准输出还没有被重定向到/dev/null,于是在屏幕上打印了。当产生标准输出时,那么它就不是标准错误,2>&1无效,于是标准输出重定向dev/null,不打印到屏幕。所以最终结果将是:标准错误打印到屏幕,而标准输出不打印到屏幕。
  161. 查看文件内容
  162. 语法:# cat 文件名称
  163. 文件内容合并
  164. 语法:#cat 待合并的文件路径1 待合并的文件路径2 …. 文件路径n > 合并之后的文件路径
  165. # cat hello.txt world.txt > helloworld.txt
  166. 倒序查看
  167. 语法:# tac 文件名称
  168. 求帮助方法:
  169. help 简约
  170. 内部:help 命令
  171. 外部:命令 --help or --h
  172. man manul缩写,代表手册。详细帮助,任何命令,任何配置文件都可以在man文档中找到相关信息
  173. 1 命令(bin
  174. 5 配置文件
  175. 8 管理员相关工具命令和后台的程序(sbin
  176. man 1 命令
  177. man 5 配置文件的名字(不用加路径)
  178. man 8 shutdown
  179. ## type命令
  180. 主要功能:查看一个命令是属于内部命令还是外部命令。
  181. 别名命令:
  182. [root@linuxcool ~]# type ls
  183. ls is aliased to `ls --color=auto'
  184. 内建命令:
  185. [root@linuxcool ~]# type cd
  186. cd is a shell builtin
  187. 关键字:
  188. [root@linuxcool ~]# type if
  189. if is a shell keyword
  190. history命令

Linux基本命令(下)

  1. 磁盘内存
  2. 命令:df
  3. 作用:查看磁盘的空间(disk free)
  4. 语法:# df [-h]
  5. 选项:-h表示可读性较高的形式展示大小
  6. [root@db02 1]# df -h
  7. 文件系统 容量 已用 可用 已用% 挂载点
  8. devtmpfs 470M 0 470M 0% /dev
  9. tmpfs 487M 0 487M 0% /dev/shm
  10. tmpfs 487M 8.4M 478M 2% /run
  11. tmpfs 487M 0 487M 0% /sys/fs/cgroup
  12. /dev/mapper/centos-root 8.0G 7.5G 600M 93% /
  13. /dev/sda1 1014M 185M 830M 19% /boot
  14. tmpfs 98M 12K 98M 1% /run/user/42
  15. tmpfs 98M 0 98M 0% /run/user/0
  16. Filesystem=>磁盘名称、Size=>总大小、Used=>被使用的大小、Avail=>剩余大小、Use%=>使用百分比、Mounted on=>挂载路径(相当于Windows 的磁盘符)
  17. free命令
  18. 命令:free
  19. 作用:查看内存使用情况
  20. 语法:#free -m
  21. 选项:-m 表示以mb为单位查看(1g = 1024mb1mb = 1024kb
  22. used=total-free total=used+free
  23. 实际内存占用:**used-buffers-cached** **total-free-buffers-cached**
  24. 实际可用内存:**buffers+cached+free**
  25. [root@db02 1]# free -m
  26. total used free shared buff/cache available
  27. Mem: 972 380 261 10 330 441
  28. Swap: 1023 0 1023
  29. 1Mem数据:
  30. total 内存总数: 979
  31. used 已经使用的内存数: 539
  32. free 空闲的内存数: 440
  33. shared 共享内存数: 4
  34. buffers Buffer Cache块设备缓存区内存数: 34
  35. cached Page Cache文件缓存内存数: 182
  36. 2行-/+ buffers/cache
  37. -buffers/cache 的内存数:323 (等于第1行的 used - buffers - cached)
  38. +buffers/cache 的内存数: 656 (等于第1行的 free + buffers + cached)
  39. 可见-buffers/cache反映的是被程序实实在在吃掉的内存,而+buffers/cache反映的是可以挪用的内存总数。
  40. 3行数据是Swap交换分区,也就是我们通常所说的虚拟内存。可以在内存不够使用的情况下当临时内存来使用,交换分区并不是越大越好,一般话它就等同于实际内存的大小。
  41. 文件内容相关命令
  42. 命令:head
  43. 作用:查看一个文件的前n 行,如果不指定n,则默认显示前10 行。
  44. 语法:#head -n 文件路径 n 表示数字】
  45. 示例代码:显示install.log 文件的前3
  46. # head -3 install.log
  47. 命令:tail
  48. 作用:查看一个文件的末n 行,如果n 不指定默认显示后10
  49. 语法:# tail -n 文件路径 n 表示数字】
  50. tail命令扩展
  51. 语法:# tail -f 文件路径
  52. 作用:查看一个文件动态变化的内容【变化的内容不能是用户手动增加的,必须要求是计算机帮我们写入的内容】
  53. 说明:tail -f命令一般用于查看系统的日志
  54. tail -f /var/log/messages
  55. less命令(推荐)
  56. 命令:less
  57. 作用:查看文件,按下辅助功能键(**数字+回车、空格键(向下翻页)、上下方向键**)查看更多
  58. 语法:# less 需要查看的文件路径
  59. **流程:不是加载整个文件,而是一点一点进行加载,相对而言,读取大文件时,效率比较高。**
  60. 扩展:less命令我们还可以进行关键词检索功能
  61. /关键字,搜索成功后,文档中的所有关键字都会高亮。
  62. n : next,向下切换关键字
  63. N : shift + n,向上切换关键字
  64. ### ② more命令
  65. 命令:more
  66. 作用:查看文件,按下辅助功能键(空格、字母键b等价于back)查看更多
  67. 语法:#more 需要查看的文件路径
  68. 一屏一屏的读
  69. **流程:more在读取文件时,默认已经加载文件的全部内容。**
  70. ## 4、wc命令
  71. 命令:wcwc = word count
  72. 作用:用于统计文件内容信息(包含行数、单词数、字节数)
  73. 语法:# wc -lwc 需要统计的文件路径
  74. -l:表示lines,行数(以回车/换行符为标准)
  75. -w:表示words,单词数 依照空格来判断单词数量
  76. -c:表示bytes 字节数(空格,回车,换行)
  77. ## 5、du命令
  78. 命令:du
  79. `作用:查看文件或目录(会递归显示子目录)占用磁盘空间大小`
  80. 语法:# du [-sh]
  81. 选项:
  82. -s summaries,只显示汇总的大小,统计文件夹的大小
  83. -h:表示以高可读性的形式进行显示,如果不写-h,默认以KB的形式显示文件大小
  84. [root@db02 1]# du /var/log/messages
  85. 172 /var/log/messages
  86. [root@db02 1]# du -h /var/log/messages
  87. 172K /var/log/messages
  88. [root@db02 1]# du -s /var/log/messages
  89. 172 /var/log/messages
  90. [root@db02 1]# du -sh /var/log/messages
  91. 172K /var/log/messages
  92. ## 6、find命令
  93. 命令:find
  94. 作用:用于查找文档(其选项有55 个之多)
  95. **语法:# find 路径范围 选项1 选项1的值 [选项2 选项2 的值…]**
  96. 选项:
  97. -name:按照文档名称进行搜索(支持模糊搜索)
  98. * 通配符,匹配任意个任意字符
  99. -type:按照文档的类型进行搜索
  100. 文档类型:`"-"` 表示文件(在使用find 的时候需要用f 来替换),`"d"`表示文件夹
  101. [root@db02 1]# find /etc -type d #搜索/etc 目录下所有的文件夹
  102. [root@db02 1]# find /etc -name "*g" -type d
  103. /etc/pki/rpm-gpg
  104. /etc/pki/rsyslog
  105. /etc/sysconfig
  106. /etc/xdg
  107. [root@db02 1]# find /etc -name ".conf" -type d
  108. 命令:date
  109. 作用:表示获取系统时间
  110. ==语法1:# date 输出的形式:2018 3 24 星期六 15:54:28 CST==
  111. ==语法2:# date "+%F" (等价于# date "+%Y-%m-%d" 输出形式:2018-03-24==
  112. ==语法3:# date "+%F %T" 引号表示让 "年月日与时分秒" 成为一个不可分割的整体==
  113. > 等价操作# date "+%Y-%m-%d %H:%M:%S",输出的形式:2018-03-24 16:01:00
  114. ==语法4:获取之前或者之后的某个时间(备份)==
  115. # date -d "-1 day" "+%Y-%m-%d %H:%M:%S"
  116. [root@db02 1]# date "+%F"
  117. 2020-11-11
  118. [root@db02 1]# date "+%Y-%m-%d"
  119. 2020-11-11
  120. [root@db02 1]# date "+%Y/%m/%d"
  121. 2020/11/11
  122. [root@db02 1]# date "+%T"
  123. 16:44:04
  124. [root@db02 1]# date
  125. 2020 11 11 星期三 16:44:16 CST
  126. [root@db02 1]# date "+%T %F"
  127. 16:44:39 2020-11-11
  128. [root@db02 1]# date -d "-7 day" "+ %F %T"
  129. 2020-11-04 16:48:25
  130. [root@db02 1]# date -d "-7 day" "+%F %T"
  131. 2020-11-04 16:48:2
  132. [root@db02 1]# date -d "-7 day"
  133. 2020 11 04 星期三 16:48:02 CST
  134. [root@db02 1]# date -d "-7 hour" "+%F %T"
  135. 2020-11-11 09:49:21
  136. 设置时间
  137. 命令:date
  138. 作用:表示设置系统时间
  139. 选项:-s --set=STRING,设置系统时间
  140. # date -s "2020-12-12 10:10:10"
  141. hwclock命令
  142. 命令:hwclock
  143. 作用:表示获取计算机硬件RTC时间
  144. [root@db02 1]# hwclock
  145. 20201111 星期三 164950 -0.585070
  146. [root@db02 1]# date
  147. 2020 11 11 星期三 16:51:29 CST
  148. -w,将Linux系统时间保存到硬件RTC
  149. -s,将硬件RTC中的时间保存到Linux系统时间中
  150. [root@db02 1]# date
  151. 2020 11 11 星期三 16:54:02 CST
  152. [root@db02 1]# hwclock
  153. 20201111 星期三 165228 -0.099936
  154. [root@db02 1]# hwclock -w
  155. [root@db02 1]# date
  156. 2020 11 11 星期三 16:54:35 CST
  157. [root@db02 1]# hwclock
  158. 20201111 星期三 165439 -0.272681
  159. 操作系统日历
  160. #cal
  161. #cal -1
  162. #cal -数字
  163. #cal -y 2018
  164. bash中的引号
  165. 双引号"" : 会把引号的内容当成整体来看待,允许通过$符号引用其他变量值
  166. 单引号'' : 会把引号的内容当成整体来看待,禁止引用其他变量值,shell中特殊符号都被视为普通字符
  167. 反撇号`` : 反撇号和$()一样,引号或括号里的命令会优先执行,如果存在嵌套,反撇号不能用
  168. [root@db02 1]# echo $(date +%F)
  169. 2020-11-11
  170. [root@db02 1]# echo `date +%F`
  171. 2020-11-11
  172. [root@db02 1]# echo `echo $(date +%F)`
  173. 2020-11-11
  174. [root@db02 1]# echo `echo `date +%F``
  175. date +%F
  176. [root@db02 /]# echo $(ls)
  177. bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
  178. [root@db02 /]# echo `ls`
  179. bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
  180. [root@db02 /]# $(ls)
  181. bash: bin: 未找到命令...
  182. 1、管道符
  183. 管道符:`|`
  184. 作用:管道是一种通信机制,通常用于进程间的通信。它表现出来的形式将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。
  185. # ls / | grep “y”
  186. grep 指令用于“过滤”
  187. grep 语法:grep 选项 文件路径/内容
  188. 针对上面这个命令说明:
  189. 以管道作为分界线,前面的命令有个输出,后面需要先输入(缺少查找范围),然后再过滤,最后再输出,通俗的讲就是管道前面的输出就是后面指令的输入。
  190. 为了便于理解,上述的指令变相实现可以如下:
  191. # ls / > xxx.txt 将ls /的结果保存到xxx.txt文件中
  192. # grep “y” xxx.txt 使用grep指令搜索xxx.txt中的包含y的行
  193. grep 指令:主要用于过滤
  194. 语法:# grep [选项] “搜索关键词” 搜索范围
  195. [root@db02 /]# grep "mysql" /root/install.log
  196. 使用Linux命令统计“/”下的文档的个数
  197. [root@db02 /]# ls / | wc -l
  198. 19
  199. 用户在计算机中有一个配置文件(/etc/passwd),一般情况下,一个用户会占用一行配置,请你使用现学的管道统计当前计算机中一共有多少个用户个信息
  200. [root@db02 /]# cat /etc/passwd | wc -l
  201. 45
  202. xargs命令
  203. 之所以能用到这个命令,关键是由于很多命令不支持|管道来传递参数,而日常工作中有有这个必要,所以就有了 xargs 命令。
  204. find /etc -name "*.conf" | ls -l (错误)
  205. find /etc -name "*.conf" | xargs ls -l (正确)
  206. xargs特别说明:
  207. xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。
  208. xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。
  209. xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。
  210. xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。
  211. [root@linuxcool ~]#cat test.txt
  212. a b c d
  213. e f
  214. [root@linuxcool ~]#cat test.txt | xargs
  215. a b c d e f
  216. [root@linuxcool ~]#cat test.txt | xargs -n3
  217. a b c
  218. d e f
  219. FQDN全限定域名,临时设置主机名称
  220. 作用:操作服务器的主机名(读取、设置)
  221. 语法1:# hostname,获取主机名.完整域名
  222. 语法2:# hostname -f 全限定域名(FQDN
  223. 命令:id
  224. 作用:查看一个用户的一些基本信息(包含用户id,用户组id,附加组id…),该指令如果不指定用户则默认当前用户。
  225. # id
  226. # id cdns
  227. ps命令
  228. 指令:psprocess show
  229. 作用:主要是查看服务器的进程信息
  230. 选项含义:
  231. -e:等价于“-A”,表示列出全部(all)的进程
  232. -f : 表示full,显示全部的列(显示全字段)
  233. 语法:ps -ef | grep "进程名称"Linux/Unix命令格式】
  234. #ps -ef |grep "mysql"
  235. #ps -aux |grep "mysql"
  236. ps auxBSD格式命令,注意没有横杠"-"
  237. [root@db02 /]# ps -aux | grep "sshd"
  238. root 1091 0.0 0.4 112924 4332 ? Ss 14:22 0:00 /usr/sbin/sshd -D
  239. root 2109 0.0 0.7 168304 7048 ? Ss 14:50 0:01 sshd: root@pts/0
  240. root 2111 0.0 0.6 167972 6440 ? Ss 14:50 0:00 sshd: root@notty
  241. root 4219 0.0 0.0 112828 980 pts/0 S+ 17:17 0:00 grep --color=auto sshd
  242. [root@db02 /]# ps -ef
  243. UID PID PPID C STIME TTY TIME CMD
  244. root 1 0 0 14:22 ? 00:00:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
  245. root 2 0 0 14:22 ? 00:00:00 [kthreadd]
  246. root 4 2 0 14:22 ? 00:00:00 [kworker/0:0H]
  247. root 6 2 0 14:22 ? 00:00:00 [ksoftirqd/0]
  248. root 7 2 0 14:22 ? 00:00:00 [migration/0]
  249. 列的含义:
  250. UID :该进程执行的用户ID
  251. PID :进程ID
  252. PPID :该进程的父级进程ID,如果找不到,则该进程就被称之为僵尸进程(Parent Process ID
  253. C Cpu的占用率,其形式是百分数
  254. STIME:进程的启动时间
  255. TTY :终端设备,发起该进程的设备识别符号,如果显示“?”则表示该进程并不是由终端设备发起
  256. 扩展:Ctrl + Alt + F1 ~ F6,可以进入到不同的终端设备
  257. TIME :进程实际使用CPU的时间
  258. CMD :该进程的名称或者对应的路径
  259. [root@db02 /]# ps aux
  260. USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
  261. root 1 0.0 0.4 191236 4180 ? Ss 14:22 0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
  262. root 2 0.0 0.0 0 0 ? S 14:22 0:00 [kthreadd]
  263. root 4 0.0 0.0 0 0 ? S< 14:22 0:00 [kworker/0:0H]
  264. root 6 0.0 0.0 0 0 ? S 14:22 0:00 [ksoftirqd/0]
  265. root 2127 2109 0 14:50 pts/0 00:00:00 -bash
  266. USER:该 process 属于哪个使用者账号
  267. PID :该 process ID
  268. %CPU:该 process 使用掉的 CPU 资源百分比
  269. %MEM:该 process 所占用的物理内存百分比
  270. VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
  271. RSS :该 process 占用的固定的内存量 (Kbytes)
  272. TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
  273. STAT:该程序目前的状态,主要的状态有
  274. R :该程序目前正在运作,或者是可被运作
  275. S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
  276. T :该程序目前正在侦测或者是停止了
  277. Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
  278. START:该 process 被触发启动的时间
  279. TIME :该 process 实际使用 CPU 运作的时间
  280. COMMAND:该程序的实际指令
  281. [root@db02 /]# top
  282. top - 17:23:54 up 3:01, 1 user, load average: 0.00, 0.01, 0.05
  283. Tasks: 175 total, 1 running, 174 sleeping, 0 stopped, 0 zombie
  284. %Cpu(s): 0.2 us, 0.2 sy, 0.0 ni, 99.3 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
  285. KiB Mem : 995712 total, 261052 free, 392340 used, 342320 buff/cache
  286. KiB Swap: 1048572 total, 1048572 free, 0 used. 449488 avail Mem
  287. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  288. 4200 root 20 0 0 0 0 S 1.0 0.0 0:00.09 kworker/1:1
  289. 4279 root 20 0 162124 2328 1596 R 0.7 0.2 0:00.09 top
  290. 1 root 20 0 191236 4180 2612 S 0.0 0.4 0:02.69 systemd
  291. 2 root 20 0 0 0 0 S 0.0 0.0 0:00.03 kthreadd
  292. 4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
  293. 6 root 20 0 0 0 0 S 0.0 0.0 0:00.93 ksoftirqd/0
  294. 7 root rt 0 0 0 0 S 0.0 0.0 0:00.22 migration/0
  295. 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
  296. 9 root 20 0 0 0 0 S 0.0 0.0 0:05.32 rcu_sched
  297. 10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain
  298. 11 root rt 0 0 0 0 S 0.0 0.0 0:00.15 watchdog/0
  299. 12 root rt 0 0 0 0 S 0.0 0.0 0:00.25 watchdog/1
  300. 13 root rt 0 0 0 0 S 0.0 0.0 0:00.20 migration/1
  301. 表头含义:
  302. PID :进程ID
  303. USER:该进程对应的用户
  304. PR :优先级
  305. VIRT:虚拟内存
  306. RES :常驻内存
  307. SHR :共享内存,计算一个进程实际使用的内存 = 常驻内存(RES)- 共享内存(SHR
  308. S :表示进程的状态statussleeping,其中S 表示睡眠,R 表示运行)
  309. %CPU:表示CPU 的占用百分比
  310. %MEM:表示内存的占用百分比
  311. TIME+ :执行的时间
  312. COMMAND:进程的名称或者路径
  313. M(大写):表示将结果按照内存(MEM)从高到低进行降序排列;
  314. P(大写):,表示将结果按照CPU 使用率从高到低进行降序排列;
  315. 1 :当服务器拥有多个cpu 的时候可以使用“1”快捷键来切换是否展示显示各个cpu 的详细信息;
  316. [root@db02 /]# top
  317. top - 17:28:08 up 3:05, 1 user, load average: 0.00, 0.01, 0.05
  318. Tasks: 175 total, 1 running, 174 sleeping, 0 stopped, 0 zombie
  319. %Cpu0 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
  320. %Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
  321. KiB Mem : 995712 total, 260984 free, 392248 used, 342480 buff/cache
  322. KiB Swap: 1048572 total, 1048572 free, 0 used. 449500 avail Mem
  323. scroll coordinates: y = 1/175 (tasks), x = 1/12 (fields)
  324. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
  325. 1566 gdm 20 0 3236424 132948 60628 S 0.0 13.4 0:16.01 gnome-shell
  326. 1369 root 20 0 296128 24356 15700 S 0.0 2.4 0:00.99 X
  327. 1095 root 20 0 574304 19476 6144 S 0.0 2.0 0:01.94 tuned
  328. 722 polkitd 20 0 616540 17940 5156 S 0.0 1.8 0:02.16 polkitd
  329. 1676 gdm 20 0 1012400 17936 10364 S 0.0 1.8 0:00.34 gsd-media-keys
  330. 命令:service
  331. 作用:用于控制一些软件的服务启动/停止/重启
  332. 语法:# service 服务名 start/stop/restart/status状态
  333. > 注:服务名可以去/etc/init.d 目录下寻找
  334. 服务和进程有啥区别?
  335. 服务≠进程
  336. 进程是指运行的程序(状态不一定是正在运行:run/sleep/stop/zombieˈzɑ:mbi']僵尸)
  337. 服务是进程的一个"外壳",用于控制对进程的启动/停止/重启操作
  338. # service sshd start|stop|restart|status
  339. # service httpd start
  340. # ps -ef | grep "httpd" 通过`ps -ef` 得到的结果发现apache启动的进程存在父子关系
  341. 了解:在centos7 中,service 命令将会被systemctl 所替代(#systemctl start/restart/stop 服务名)。但是,service 命令在centos7 中同时兼容。
  342. 在互联网中,经常看到kill -9 进程PID,强制杀死某个进程,kill -l
  343. # killall 进程名称
  344. killall httpd
  345. pkill 进程名称,与killall类似,杀死所有进程
  346. [root@db02 /]# uname
  347. Linux
  348. uname -a,选项-a代表all,表示获取全部的系统信息(类型、全部主机名、内核版本、发布时间、开源计划)
  349. [root@db02 /]# uname -a
  350. Linux db02.slave.cc 3.10.0-1127.el7.x86_64 #1 SMP Tue Mar 31 23:36:51 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
  351. [root@db02 /]# cat /etc/redhat-release
  352. CentOS Linux release 7.8.2003 (Core)
  353. [root@db02 /]# netstat -tunlp
  354. Active Internet connections (only servers)
  355. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  356. tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1374/dnsmasq
  357. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1091/sshd
  358. tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1094/cupsd
  359. tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1301/master
  360. [root@db02 /]# netstat -tulp
  361. Active Internet connections (only servers)
  362. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  363. tcp 0 0 db02.slave.cc:domain 0.0.0.0:* LISTEN 1374/dnsmasq
  364. tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN 1091/sshd
  365. tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN 1094/cupsd
  366. tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN 1301/master
  367. # mkdir ad{1..3}
  368. # mv abc{,cc}
  369. # cp a{,b}
  370. 如何在命令行中快速删除光标前/后的内容? 前:ctrl + u 后:ctrl + k

Vim编辑器

① 命令模式:在该模式下是不能对文件直接编辑,可以输入快捷键(命令)进行一些操作(复制、粘贴、删除等等)
注意:当我们使用Vim编辑器,打开某个文件后默认进入的模式就是命令模式
② 编辑模式:在该模式下可以对文件的内容进行编辑
③ 末行模式:可以在末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等等)

\# `vim  文件路径`  作用:打开指定的文件,如果文件不存在,自动创建该文件
\# ` vim  +/关键词  文件的路径`  作用:打开指定的文件,并且高亮显示关键词
\# ` vim  +数字  文件的路径`  作用:打开指定的文件,并且将光标移动到指定行

# vim read.txt
# vim +10 read.txt
# vim +/mysql /root/install.log

# vim a.txt b.txt
> 注:退出方式,在命令模式下,输入":q"按下回车即可。

:next代表切换到下一个文件

:prev代表切换到上一个文件

### ☆ 光标移动到行首与行尾

光标移动到行首,按键:`shift + 6 或 ^`(T 字母上面的6,不要按小键盘的6)

光标移动到行尾,按键:`shift + 4 或 $`(R 字母的左上角的4,不是小键盘的4)

光标移动到首行的行首,按键:`gg`

光标移动到末行的行首,按键:`G [Capslk 再加 G 键] / [Shift + G 键]`

### ☆ 翻屏

向上    翻屏,按键:`ctrl + b (before) 或 PgUp`

向下    翻屏,按键:`ctrl + f (after)  或 PgDn`

向上翻半屏,按键:`ctrl + u (up)`

向下翻半屏,按键:`ctrl + d (down)`

### ☆ 向上/下/左/右移动指定的行/列

数字  + 方向键(上下左右),比如5 + 向上方向键,代表将光标向上移动5行

### ☆ 快速定位到指定行(重点)

数字 + G

### ☆ 以当前行为准向上/下移动指定行

数字+/-【等价于数字】

5 - :代表向上移动5行

5 +(shift + = ) :代表向下移动5行

① 复制光标所在行  按键:yy
② 以光标所在行为准(包含当前行),向下复制指定的行数  按键:数字yy,如5yy
③ 可视化模式下复制
按键:ctrl + v(可视块)或V(可视行)或v(可视),然后按下↑  ↓  ←  →方向键来选中需要

复制的区块,按下y 键进行复制(不要按下yy),最后按下p 键粘贴

==① 剪切/删除光标所在行==
按键:dd (删除之后下一行上移)
注意:dd 严格意义上说是剪切命令,但是如果剪切了不粘贴就是删除的效果。
==② 剪切/删除光标所在行为准(包含当前行),向下删除/剪切指定的行==
按键:数字dd (删除之后下一行上移)
③ 剪切/删除光标所在的当前行(光标所在位置)之后的内容,但是删除之后下一行不上移
按键:D (删除之后当前行会变成空白行)留白
④ 可视化删除(了解)
按键:ctrl + v(可视块)或V(可视行)或v(可视),上下左右移动,按下D 表示删除选中行,d 表示删选中块

退出可视模式按下Esc


【末行模式功能】

① :x在文件没有修改的情况下,表示直接退出(等价于:q),在文件修改的情况下表示保存并退出(:wq)
:w 保存文件
:w 路径 另存为
`:q` 退出文件
`:wq` 保存并且退出
`:q!` 表示强制退出,刚才做的修改操作不做保存

搜索/查找
:/关键词  noh

:/  #都可以
:s/搜索的关键词/新的内容`            替换==光标所在行==的第一处符合条件的内容(只替换1次)
:s/搜索的关键词/新的内容/g`        替换==光标所在行==的全部符合条件的内容

:%s/搜索的关键词/新的内容        替换整个文档中每行第一个符合条件的内容
:%s/搜索的关键词/新的内容/g    替换整个文档的符合条件的内容

:set nu

复制语法:`:开始行号,结束行号y`,例如输入`:1,10y`

剪切删除语法:`:开始行号,结束行号d`,例如输入`:1,10d`

:set list  list分辨尾部的字符是tab还是空格


i 光标所在字符前插入 
o 光标所在字符后插入
a 光标所在行下一行插入