IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux基础命令收集 -> 正文阅读

[系统运维]Linux基础命令收集


引言

日常生活和工作中我们所使用的Windows系统的图形界面使用简单,容易入手。但是在Linux系统的文字界面,我们则需要学习使用各种命令才能熟练操作Linux系统,所以可想而知命令对于Linux系统的重要性!
根据我在日常工作中的需求,在此总结出一些Linux的基础知识和基础命令。

一、Shell是什么

在总结命令之前,再了解一下Shell到底是什么,有什么作用?

从下图中我们可以看出Shell担任着“翻译官”的角色:

在这里插入图片描述
总结一下:

  • Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁,在用户和内核之间充当着“翻译官”的角色。
  • 它既是一种命令语言,又是一种程序设计语言。他给用户提供了一个界面,让用户能够通过这个界面访问操作系统内核的服务。

二、Linux命令基础

1.命令的分类

内部命令外部命令
集成于Shell解释器程序内部的一些特殊指令,称为内建(Built-in)指令Linux系统中能够完成特定功能的脚本文件或二进制程序
属于Shell的一部分属于Shell解释器程序之外的命令
没有单独对应的系统文件(在bash中)每个外部命令对应了系统中的一个文件
自动载入内存,可以直接使用必须知道其对应的文件位置。由Shell加载后才能执行

2.如何查看内外部命令

  • 查看命令
#help
  • 显示内部命令
 #enable
  • 当然我觉得最好用的还是这个命令
 #type+命令

3.命令行使用格式

在这里插入图片描述

命令字:是整条命令中最关键的一部分
选项:短格式选用用“-”符号引导(用字母并且区分大小写);长格式用“–”符号引导(用单词)
参数:命令字的处理对象,可以是文件名,目录(路径)名或用户名等内容。它的个数可以是零到多个。
例如下面这条命令,ls是命令字(操作)、-l是选项(功能)、/etc/yum.repos.d/是参数(处理的对象)

# ls -l /etc/yum.repos.d/

4.编辑命令行的辅助操作

  • 在工作中有时候需要输入很长的一条命令,如果从头输到尾的确是件让人头疼的事,这时候我们就可以利用Tab键来辅助我们完成更快的命令输入。
    TAB键的两大作用:
    ①只需输入文件或目录名的前几个字符, 然后按TAB键,如无相重的,完整的文件名立即自动在命令行出现;如有相重的,再按一下TAB键,系统会列出当前目录下所有以这几个字符开头的名字。
    ②在命令行下,只需输入例如"m",再连续按两次TAB键,系统将列出所有以"m"开头的命令,对查找某些记不清楚的命令特有用。例如输入"ifc",将查到ifcfg,ifconfig二个相符的命令。
  • 各种快捷组合键的使用
反斜杠“\”强制换行Ctrl+E光标跳到行尾
Ctrl+U清空至行首Ctrl+A光标跳到行头
Ctrl+K清空至行尾Ctrl+L清屏
Ctrl+C取消本次编辑Ctrl+D结束当前命令窗口

5.获得命令帮助的方法

在 Linux 环境中,如果遇到了困难,我们可以使用帮助命令来取得帮助。常见的帮助命令有man,help等。
①help命令用法:

  • 查看Shell内部命令
#help
  • 查看Linux外部命令
#--help

②man命令用法

  • 显示cd命令的帮助信息
#man cd(命令)
  • 在man手册中,我们可以使用”↑“”↓“方向键滚动一行文本,也可以使用Page Up和Page Down键翻页。
  • 按Q或q键可以退出阅读环境,按”\“键可以查找内容,查找参数页用n向下、N向上。

例如:

# man ls | col -b > lshelp.txt

在这个例子中,col是一个命令程序,用于过滤文本中的一些特殊控制字符,另外还使用了“|”和“>”符号,这是Shell环境中的两个特殊功能应用。
管道"|":用于将前面命令的屏幕输出结果作为后面命令的操作对象(输入)
重定向输出">":前面的命令成功执行后,其屏幕输出结果将保存到">"后面指定的文件中。而不是直接输出到屏幕,因此称为重定向


三、Linux 处理目录或文件的常用命令

我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /。其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。想要用命令来查看和管理文件与目录之前,得先了解一下相对路径和绝对路径是什么,有什么区别。

1.相对路径和绝对路径

  • 相对路径:从当前目录算起的路径叫做相对路径
    例如:./grub.conf
  • 绝对路径:从根目录算起的路径叫做绝对路径
    例如:/usr/bin
    相对路径的使用更加灵活,方便更改,但是相对路径比较难找,如果找的不对容易出错;而绝对路径的话能避免这个问题,直接复制在硬盘上的路径即可,但是在使用上面的灵活性不如相对路径。
相对路径表现形式
直接使用目录名或文件名表示当前工作目录中的子目录,文件的位置grub.conf
以一个点号"."开头表示以当前的工作目录为起点./grub.conf
以两个点号"…"开头表示以当前目录的上一级目录(父目录)为起点…/vmlinuz
以"~用户名"形式开头表示以指定用户的宿主目录作为起点~teacher

2.目录位置的查看和切换

  • 查看当前工作目录位置
[root@localhost ~]# pwd
/root
  • 切换工作目录
格式说明
cd目标位置切换到目标位置
cd ~若不指定目标位置,切换到当前用户的宿主目录
cd若不指定目标位置,切换到当前用户的宿主目录
cd -切换到上一次执行cd命令之前所在的目录
cd …回到当前目录的上一层
cd …/…/回到上上层

例如:
cd到指定的网卡目录

[root@localhost network-scripts]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts

这是一个绝对路径

cd~

[root@localhost network-scripts]# cd ~
[root@localhost ~]# 

cd -

[root@localhost ~]# cd -
/etc/sysconfig/network-scripts 

3.显示目录内容

列表显示目录内容 ls

[root@localhost network-scripts]# ls
ifcfg-ens33  ifdown-ib    ifdown-ppp       ifdown-tunnel  ifup-ib    ifup-plusb   ifup-Team         network-functions
ifcfg-lo     ifdown-ippp  ifdown-routes    ifup           ifup-ippp  ifup-post    ifup-TeamPort     network-functions-ipv6
ifdown       ifdown-ipv6  ifdown-sit       ifup-aliases   ifup-ipv6  ifup-ppp     ifup-tunnel
ifdown-bnep  ifdown-isdn  ifdown-Team      ifup-bnep      ifup-isdn  ifup-routes  ifup-wireless
ifdown-eth   ifdown-post  ifdown-TeamPort  ifup-eth       ifup-plip  ifup-sit     init.ipv6-global

常用的选项如下:

格式说明
-L将文件信息属性详细列出,通常直接使用"I I" 因为设置了别名
-R递归显示,比如一个目录下还有文件,则把那个文件也一起列出
-d查看目录本身信息,不显示目录下的内容
-i显示inode值
-h友好显示已单位为例
-a遍历所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
-A跟-a 唯一的不同是不列出当前目录和上一层目录

通配符

格式说明
匹配文件名中的 一个未知字符
*匹配文件名中的 任意多个字符

例如:

[root]# ls -lh /dev/sd?/
[root@localhost network-scripts]# ls -lh /etc/ns*.conf
-rw-r--r--. 1 root root 1.8K 724 21:58 /etc/nsswitch.conf

4.用alias设置别名

我们可以利用alias设定命令的别名,简化常用的比较长的命令。若只输入alias,则可列出目前所有的别名设置。如果需要每次登入的时候之前设置的别名都存在,可在.bashrc中设定指令的别名。
如下,设置网卡信息命令的别名为netw,并且让它重启后依然存在

alias netw=' vim  /etc/sysconfig/network-scripts/ifcfg-ens33'

在这里插入图片描述

wq保存退出,然后重启配置文件

[root@localhost ~]# vim /root/.bashrc 
[root@localhost ~]# source /root/.bashrc 
[root@localhost ~]# init 6
Connection closing...Socket close.
Connection closed by foreign host.
Disconnected from remote host(192.168.2.4) at 23:39:37.
Type `help' to learn how to use Xshell prompt.
[C:\~]$ 

在这里插入图片描述

在这里插入图片描述

重启后依然存在,设置成功!

如何删除别名:

unalias: 用法:unalias [-a] 名称 [名称 ...]

5.统计目录和文件空间占用情况

[root@localhost ~]# du

常用的选项如下:

格式说明
-a统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录
-h显示出每一个文件以及大小,单位是KB,MB,GB
-s显示文件或整个目录的大小,默认单位是KB,但不会把他们显示出来
du - sh*生产环境常这样搭配使用统计当前目录下所有文件的大小并显示出来,常用于磁盘水位过高的情况

例如:要求统计出/var/log目录所占用空间的大小

[root@localhost ~]# du -sh /var/log/
9.6M	/var/log/

6.创建新目录

[root@localhost ~]# mkdir [选项] 目标位置及名称

例①:在当前目录下创建名为public_html的子目录

[root@localhost ~]# mkdir public_html

在这里插入图片描述

可以看到目录创建成功!

例②:创建目录/aa,在它的目录下创建子目录bb,在/aa/bb目录下创建子目录cc

[root@localhost ~]# mkdir -p aa/bb/cc
[root@localhost ~]# tree aa
aa
└── bb
    └── cc
2 directories, 0 files

这里有用到"tree"命令,这个在工作中还是很好用的,那么如何才能用这个命令呢?那我们就可以安装这个依赖包来实现tree命令的使用!命令如下:

[root@localhost ~]# yum install tree -y

在这里插入图片描述

这里我已经安装过了,在安装的时候一定要注意是需要有网络链接的!


7.创建空文件

  • 更新文件的时间标记
  • 经常用于创建多个新的空文件

例①创建一个空文件

[root@localhost ~]# touch gl
[root@localhost ~]# ls 
aa  anaconda-ks.cfg  gl  initial-setup-ks.cfg  lstext.txt  public_html  公共  模板  视频  图片  文档  下载  音乐  桌面

例②创建二个空文件

[root@localhost ~]# touch aa bb
[root@localhost ~]# ls -R
.:
aa  anaconda-ks.cfg  bb  initial-setup-ks.cfg  lstext.txt  公共  模板  视频  图片  文档  下载  音乐  桌面

例③创建多个文件

[root@localhost ~]# touch {1..9}

除了用touch命令创建文件,我们也可以用echo(输出)命令来创建文件:

[root@localhost GL]# echo "this is GL > demo.txt
[root@localhost GL]# ls
demo.txt

8.复制、删除、移动目录和文件

  • 复制文件或目录——cp :用于复制文件或目录,将需要复制的文件或目录(源)重建一份并保存为新的文件或目录(可保存到其他目录中)需要复制多个文件或目录时,目标位置必须是目录,而且目标目录必须已经存在。

cp命令常用的几个选项如下:

格式说明
-a此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容
-d复制时保留链接。这里所说的链接相当于 Windows 系统中的快捷方式
-f覆盖已经存在的目标文件而不给出提示
-i与 -f 选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答 y 时目标文件将被覆盖
-p除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
-r若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件
-l不复制文件,只是生成链接文件

例:使用指令cp将当前目录 text/ 下的所有文件复制到新目录 newtest 下,输入如下命令:

[root@localhost ~]# cp text/ newtest
cp: 略过目录"text/"
[root@localhost ~]# 

没有成功,报错了!

原因就是复制的text/是一个目录,当复制目录时如果不加 -r 是无法复制的。

正确操作如下:

[root@localhost ~]# cp -r text/ newtest
[root@localhost ~]# tree newtest
newtest
└── text
    ├── 1
    ├── 2
    ├── 3
    ├── 4
    └── 5
1 directory, 5 files
[root@localhost ~]# 

  • 删除文件或目录——rm
    rm 命令用于删除指定的文件或目录,在Linux命令行界面中,删除的文件是难以恢复的,因此在工作中使用rm命令删除文件时要格外小心。
    常用的几个选项如下:
格式说明
-f删除文件和目录时不进行提醒,强制删除
-i删除文件或目录时提醒用户确认
-r删除目录时必须使用此选项,表示递归删除整个目录树(谨慎使用)

  • 移动文件或目录——mv
    mv命令用于将指定得文件或目录转移位置,如果目标位置与源位置相同,则相当于执行重命名操作。

例如:把当前目录中的mytouch文件改名为mkfile,命令如下

[root@localhost ~]# mv mytouch mkfile

如果移动一个文件或目录到一个已经存在的文件夹中,可以指定目标文件夹的位置

例如:把mkfile文件移动到public_html目录之中,文件名是mkfile,命令如下

[root@localhost ~]# mv mkfile public_html/

9.创建链接文件

在Linux文件系统中,有所谓的链接,我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接与软链接。

  • 硬链接
    1.硬链接,以文件副本的形式存在,不占用实际空间,相当于在Windows里复制了一个文件。
    2.不允许给目录创建硬链接
    3.硬链接只有在同一个文件系统中才能创建

  • 软链接
    1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
    2.软链接可以跨文件系统 ,硬链接不可以
    3.软链接可以对一个不存在的文件名进行链接
    4.软链接可以对目录进行链接

例如:给文件创建软连接,为log11.log文件创建软连接link11,如果log11.log丢失,link11也将失效

[root@localhost ~]# ln -s log11.log link11
[root@localhost ~]# ll
总用量 24
-rw-r--r--. 1 root root  1812 724 22:11 initial-setup-ks.cfg
lrwxrwxrwx. 1 root root     9 729 17:52 link11 -> log11.log
-rw-r--r--. 1 root root 13540 727 22:22 lstext.txt

然后我把源文件删除掉就会发现link11已经失效!

在这里插入图片描述

给文件创建硬链接,为log11.log创建硬链接ln11,log11.log与ln11的各项属性相同:

[root@localhost ~]# ln log11.log in11
[root@localhost ~]# ll
总用量 24
-rw-------. 1 root root  1781 724 22:02 anaconda-ks.cfg
drwxr-xr-x. 2 root root     6 729 17:24 GL
-rw-r--r--. 2 root root     0 729 17:59 in11
-rw-r--r--. 1 root root  1812 724 22:11 initial-setup-ks.cfg
-rw-r--r--. 2 root root     0 729 17:59 log11.log
-rw-r--r--. 1 root root 13540 727 22:22 lstext.txt

然后我把源文件log11.log给删掉再查看创建的硬链接状态

在这里插入图片描述

可以看出此硬链接依然有效


10.查找文件和目录

  • which命令

which命令用于查找Linux命令程序并显示所在的具体位置,其搜索范围主要由用户的环境变量PATH决定(可以执行“echo $PATH”命令查看),这个范围也是Linux系统在执行命令或程序时的默认所搜路径。
which命令使用要查找的命令或程序名作为参数,默认当找到第一个目标后即不再继续查找,如果希望在所有搜索路径中查找,可以添加“-a”选项。
例如:执行“which ls”命令后,可以找到名为“ls”的、位于/user/bin/ls的文件,命令如下

[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@localhost ~]# which ls
alias ls='ls --color=auto'
	/usr/bin/ls
[root@localhost ~]# 
  • find命令

find命令是Linux系统中功能非常强大的查找命令,可以根据目标的名称、类型、大小等不同的属性进行精细的查找。在查找时采用递归的方式,其使用形式相当灵活,但是也非常复杂。

方式格式说明
按名称查找-name根据目标文件的名称进行查找,允许使用“*” “?”通配符
按文件大小查找-size根据目标文件大小进行查找
按文件属主查找-user根据文件是否属于目标用户进行查找
按文件类型查找-type根据文件类型进行查找
按访问时间查找-atime根据访问文件的时间进行查找
按文件修改时间查找-mtime根据文件修改的时间进行查找
按文件属性修改时间查找-ctime根据文件属性修改的时间进行查找

注意:设置find命令的查找条件时,如果需要使用通配符“*” “ ?”,最好将文件名用双引号括起来,以避免当前目录下符合条件的文件干扰查找结果。

例如,在/etc目录中查找名称为“resol”开头、以“.conf”结尾的文件,命令如下:

[root@localhost ~]# find /etc -name "resol*.conf"
/etc/resolv.conf
[root@localhost ~]# 

当我们需要同时使用多个查找条件时,我们可以使用逻辑运算符“-a” “-o”,分别表示而且(and)、或者(or)
例如,下面二个操作使用了二个查找条件,一个是“超过1024K”另一个是“名称以vmlinuz开头”,分别用”-a“和”-o“二个条件,前者表示二个条件必须同时满足,后者只需要满足任何一个即可:

[root@localhost ~]# find /boot -size +14k -a -name "vmlinuz*"
/boot/vmlinuz-3.10.0-693.el7.x86_64
/boot/vmlinuz-0-rescue-c2f2ada5a4e74ce18e3f2b6faf0addeb
[root@localhost ~]#  find /boot -size +1024k -o -name "vmlinuz*"
/boot/grub2/fonts/unicode.pf2
/boot/System.map-3.10.0-693.el7.x86_64
/boot/vmlinuz-3.10.0-693.el7.x86_64
/boot/initrd-plymouth.img
/boot/initramfs-0-rescue-c2f2ada5a4e74ce18e3f2b6faf0addeb.img
/boot/vmlinuz-0-rescue-c2f2ada5a4e74ce18e3f2b6faf0addeb
/boot/initramfs-3.10.0-693.el7.x86_64.img
/boot/initramfs-3.10.0-693.el7.x86_64kdump.img
[root@localhost ~]# 

总结

1.要想更快捷效率的完成工作任务,就需要能够熟悉使用命令
2.平时可以多用帮助命令来解决遇到的问题
3.尽量用mv命令代替 “rm -rf ”命令,以免造成不必要的损失!

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-30 13:08:37  更:2021-07-30 13:09:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 17:50:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码