Linux操作系统(Centos7)零基础入门,超详细!1

简介: Linux操作系统(Centos7)零基础入门,超详细!

1.Linux入门

1.1.Linux CentOS7的网络设置

  • 入门命令
重启主机的命令:reboot
重启网卡的命令:systemctl restart network.service
查看ip地址的命令:ip addr
ping网络是否畅通:ping ip地址
  • 桥接模式(Bridged)
可以访问外网
容易与局域网的其他集器ip地址冲突
  • Host-Only仅主机模式
一般情况下不可以访问外网
不会与局域网的其他机器ip地址冲突
  • NAT模式
可以访问外网
不会与局域网的其他机器ip地址冲突

1.2.虚拟机的快速克隆


9972db3e9f534a729a29c6e7a5bf6bd1.jpg

克隆之后,systemctl restart network.service 命令会报错,原因试MAC地址不正确,会复制原来的MAC地址。

网卡路径:/etc/sysconfig/network-scripts/ifcfg-eno16777728,修改MAC地址后保存

1.3.虚拟机的快照


b427b35f22ac4143a158ce8a11b63a65.jpg

2.Linux常用操作

2.1.Linux常用基础命令(一)

(1)cd命令

  • 功能说明:切换目录
  • 举例:cd /usr/local/ ; cd … ; cd - ; cd(回到家目录)

(2)ls命令

  • 功能说明:列出目录内容
  • 举例:ls -ltr ; ls -ltr /home ; ll

(3)pwd命令

  • 功能说明:查询所在目录
  • 举例:pwd
  • (4)cat命令
  • 功能说明:查看小文件内容
  • 举例:cat -n 123.txt

(5)more命令

  • 功能说明:查看大文件内容
  • 举例:more System.map-3.10.0-123.e17.x86_64

(6)head命令

  • 功能说明:查看文件的前N行,默认查看前10行
  • 举例:head -20 System.txt

(7)tail命令

  • 功能说明:查看文件的后面N行,默认查看后10行
  • 举例:tail - f access.log ; tail -20 access.log

(8)touch命令

  • 功能说明:创建一个空文件
  • 举例:touch 123.txt

(9)mkdir命令

  • 功能说明:创建目录
  • 举例:mkdir -p /tmp/xd (注意不加-p,不能多级创建) ;mkdir /tmp/xd/test{1…10} ; mkdir /tmp/xd/test{1…10}.txt

(10)rmdir命令

  • 功能说明:删除目录
  • 举例:rmdir /tmp/xd

(11)cp命令

  • 功能说明:拷贝文件
  • 举例:cp 123.txt class/(复制123.txt到class目录) ; cp -a 123.txt class/ 789.txt(复制123.txt重命名位789.txt到class目录下,-a完全复制)

(12)mv命令

  • 功能说明:移动或更名现有的文件和目录
  • 举例:mv 123.txt 345.php ; mv 789.txt /home/789.php

(13)rm命令

  • 功能说明:删除文件或目录
  • 举例:rm 987.txt ; rm -rf 456.txt

(14)diff命令

  • 功能说明:对比文件差异
  • 举例:diff 123.txt 456.txt

(15)exit命令

  • 功能说明:退出命令

(16)ssh命令

  • 功能说明:远程安全登录方式
  • 举例:ssh ip

(17)id命令

  • 功能说明:查看用户
  • 举例:id root

(18)uname命令

  • 功能说明:查询主机信息
  • 举例:uname -a

(19)ping命令

  • 功能说明:查看网络是否畅通
  • 举例:ping ip

(20)echo命令

  • 功能说明:标准输出命令
  • 举例:echo “this is echo 命令”

(21)man命令

  • 功能说明:查看帮助文档
  • 举例:man ls

(22)help命令

  • 功能说明:查看内部命令帮助
  • 举例:help if

2.2.Linux常用基础命令(二)

(1)clear命令

  • 功能说明:清屏
  • 举例:clear ; ctrl+L

(2)who命令

  • 功能说明:当前在本地系统上的所有用户信息
  • 举例:whoami ; who

(3)uptime命令

  • 功能说明:显示当前时间,系统运行了多长时间,多少用户登陆过,负载信息
  • 举例:load average: 0.00,0.01,0.05 (1分钟的负载,5分钟的负载,15分钟的负载)

(4)w命令

  • 功能说明:查询系统信息
  • 举例:w

(5)free命令

  • 功能说明:查看系统内存
  • 举例:free -h ; free -m
  • (6)wc命令
  • 功能说明:统计文件的行数
  • 举例:wc -l 123.txt

(7)grep 命令

  • 功能说明:查找文件里符合条件的字符串
  • 举例:grep ‘11111111111’ 123.txt | wc -l
  • -n:输出记录对应的行号 grep -n ‘1111111’ 123.txt
  • -w:精确匹配 grep -w ‘111111’ 123.txt
  • -i:忽略大小写 grep -i ‘1111111’ 123.txt
  • -v:反向选择 grep -v ‘1111111’ 123.txt
  • (8)find命令
  • 功能说明:查询文件
  • 举例:
  • find / -name 123.txt (查询名称为123.txt的文件或者文件夹)
  • find / -type f -name 123.txt (查询名称为123.txt的文件)
  • 注意:find 最好不要从根目录开始查,非常消耗性能,生产不要用

(9)uniq命令

  • 功能说明:对排序好的内容进行统计
  • 举例:uniq -c 123.txt |sort -n

(10)sort命令

  • 功能说明:对内容进行排序
  • 举例:uniq -c 123.txt | sort -n

(11)df命令

  • 功能说明:文件系统的磁盘使用情况统计
  • 举例:df -h

(12)hostname命令

  • 功能说明:查看主机名
  • 举例:hostname

(13)netstat命令

  • 功能说明:查看网络端口的使用情况
  • 举例:netstat -tunlp |grep nginx
  • -t:显示tcp端口
  • -u:显示UDP端口
  • -n:指明拒绝显示别名
  • -l:指明监听的内容
  • -p:指明显示建立相关连接的程序名
  • centos中默认没有netstat命令,须安装:yum install net-tools

(14)ps命令

  • 功能说明:显示所有进程信息。ps与grep常用组合,查找特定的进程
  • 举例:
  • ps aux | grep nginx
  • ps -ef | grep nginx

(15)kill命令

  • 功能说明:杀进程
  • 举例:kill -9 进程号
  • (16)top命令
  • 功能说明:监控Linux系统状况,比如cpu、内存的使用
  • 举例:top ;按住q退出

(17)du命令

  • 功能说明:统计大小
  • 举例:du -sh ; du -sm *

(18)firewall-cmd命令

  • 功能说明:查看防火墙的状态
  • 举例:firewall-cmd --state
  • centos7关闭防火墙的命令:systemctl stop firewall.service

(19)echo命令

  • 功能说明:判断上一个命令是否正确
  • 举例:echo $?

(20)cal命令

  • 功能说明:查看日历
  • 举例:cal 2008

2.3.Linux的输入输出错误重定向

(1)什么是输入重定向?

输入重定向就是把要输入的信息写入到指定的文件去

(2)什么是输出重定向?

输出重定向就是把要输出的信息写道一个文件中去,而不是将要输出的信息打印到控制台

(3)什么是错误重定向?

错误重定向就是把错误的信息写入到一个文件中去

(4)Linux中一切皆文件

文件描述符 posix名称 用途
/dev/stdin 0 标准输入
/dev/stdout 1 标准输出
/dev/stderr 2 标准错误输出

(5)输入重定向:<

举例:wc -l < 123.txt

(6)输出重定向:> 代表覆盖写入;>> 代表追加写入

举例:cat >>123.txt(追加输入) ;cat >123.txt(覆盖输入);ls -lrt >123.txt(ls-lrt查询结果覆盖到123.txt中); echo ‘123123’ >123.txt(直接写入)

(7)错误重定向:2>

举例:llll 2> 123.txt(将错误信息写到123.txt中);llll 2>/dev/null 将一些无用的错误报错写到这里

(8)符号:

&:代表等同于的意思:ls -lrt /boot /test 1>/root/123.txt 2>&1

&>:代表部分正确还是错误的意思:ls -lrt /boot /test &>123.txt

|:管道符:用于将前面的执行结果作为后面执行的条件

;:代表可以执行多条命令,cat etc/password; grep root

&&:前面的命令执行成功的话,后面才可以执行,前面执行失败的话,后面不执行 :llll && grep root

||:前面的命令执行成功,后面的不执行,面前的执行失败,后面的才执行:grep root || ls -lrt

2.4.Linux下的目录分类与作用


a870ce35e015409082a9f132c66fdf3c.jpg

/:根目录,一般根目录下之村放目录,不要存放文件,也不要修改,或者删除目录下的文件
/mnt:测试目录
/root:root用户的家目录
/home:普通用户的家目录
/tmp:临时文件(比如文件上传时)
/var:存放经常修改的数据,比如程序运行的日志文件
/boot:存放启动linux时使用的内核文件,包括链接文件以及镜像文件
/etc:系统默认放置配置文件的地方
/bin:所有用户都能执行的程序
/sbin:只有root才能执行的程序
/usr:用户自己的软件都可以放到这里
/dev:存放硬件设备的地方(dev/cdrom)
/media:挂载光盘使用
挂载光盘:mount /dev/cdrom /media
卸载光盘:umount /dev/cdrom

2.5.虚拟机与外部物理机时间同步

(1)卸载光盘的时候出现:


3f365d7198f64a70b88eca5f3a63ed3f.jpg

解决办法:

首先确认联网状态

  • yum install -y psmisc
  • fuser -mv /media
  • fuser -kv /media

(2)date命令

  • date “+%Y-%m-%d %H:%M:%S” 时间格式刷
  • date -s “2020-10-1 22:00:00” 指定当前时间
  • date -d yesterday “+%Y-%m-%d %H:%M:%S” 查看昨天日期
  • date “+%w” 显示星期几
  • (3)安装VMwareTools
  • 打开虚拟机,安装VMwareTools使工具软件包下载到光盘
  • 挂载光盘到linux系统:mount /dev/cdrom /mnt
  • cp VMwareTools-10.2.0-7259539.tar.gz /root/
  • umount /dev/cdrom
  • root目录解压:tar -xf VMwareTools-10.2.0-7259539.tar.gz
  • cd vmware-tools-distrib
  • yum -y install perl-Data-Dumper
  • ./vmware-install.pl
  • 安装过程全部yes或者默认

2.6.Linux编辑器vi的使用

(1)vi的基本概念(三种模式)

插入模式:按住键盘的i(当前位置前面插入)或者o(当前位置的下一行)或者a(当前位置的后面插入)
命令模式:按住esc
底行模式:前提是在命令模式,按住:进入

(2)在命令行模式的基本操作

$ #移动到这一行的行尾
gg  #移动到当前文本的行首
G #移动到文档最后一行的行首
x #删除内容,删除一个字符
dd  #删除游标所在的那一整行,多行删除3dd
u #复原原来的操作
v #选中范围按y即复制
p #当前光标所在行,向下粘贴
P   #当前光标所在行,向上粘贴
yy  #复制当前光标所在行,多行复制3yy

(3)在底行模式中的操作

n #n为数字,光标移动到第n行
/字符串  #寻找内容,从上往下查找,按n查找下一个
%s/word1/word2/g    #从第一行到最后一行寻找word1字符串,并将该字符串取代为word2
n1,n2s/word1/word2/g  #n1与n2为数字。在第n1与n2行之间寻找2word1的单词替换成word2
set nu  #显示行号
set nonu  #取消行号
q!  #强制离开不保存
wq! #强制离开并保存
!ls #暂时离开
?   #模糊查找,从下往上开始查找,按n查找下一个
s   #作替换,s/t/A 当前行的第一个t字符替换成A,s/t/A/g当前行的所有t字符替换成A,%s/t/A全文t替换成A
r   #读文件,将读到的文件内容插入在当前文件的末尾

(4)编辑模式操作

A #直接在光标行末尾插入
a #在光标后插入
i #在光标前插入
I #在光标所在的行首插入
o #在下一行插入
O #在上一行插入

2.7.Linux的用户管理与组管理

(1)Linux用户的分类

Linux是一个多用户、多任务的操作系统

超级用户root:拥有至高无上的权限UID:0
普通用户:权限有一定的限制,可以登录系统。一版可以执行/usr/local/bin或者/usr/bin或者自己的家目录。
    UID:500-10000(centos6)  UID:1000-10000(centos7)
系统用户(伪用户):一般不会登录系统,一版情况下是用来维持某个程序的服务。
    UID:1-499(centos6)  UID:1-999(centos7)

(2)关于用户的相关配置文件

  • 账号信息:/etc/passwd


e8b69d846c9742dc8a9456cd9559a14b.jpg

  • 密码信息:/etc/shadow
    2e7daf8e518446e782c88473cc1ae1c6.jpg

(3)账号信息解析

lixiang:x:1230:0::/home/lixiang:/bin/bash
lixiang :x :1230 :0 : :/home/lixiang :/bin/bash
用户 密码占位符 UID GID 描述 用户家目录 登陆后使用shell解释
/sbin/nologin #不可登录的
/bin/bash   #可以登录

(4)密码信息解析

lixiang:xxxx:18794:0:99999:7:::
lixiang :xxxx :18794 :0 :99999 :7 :空 :空
用户账号名 密码的密文 账号上次修改距离1970-01-01过去多长时间 距离上次修改密码多少天不能修改密码,0表示随时可以修改 密码过期天数 强制密码修改提醒时间,表示密码过期前7天开始警告 当密码过期后多少天该账号被禁用 用户过期日期,若设置则显示过期日期为距1970-01-01有多少天

(5)添加用户命令:useradd

  • -u #指定用户UID
  • -d #指定用户主目录
  • -g #指定用户所属组
  • -r #指定用户是系统用户
  • -s #用户登录shell解释器
  • -M #不创建主目录

举例:创建一个用户lixiang,指定UID为1010,指定家目录为home/lixiang,指定所属组root组,指定登录shell为/bin/bash

useradd -u 1010 -d /home/lixiang -g root -s /bin/bash lixiang

(6)删除用户命令:userdel

userdel -r lixiang
-r #连同家目录一起删除

(7)添加用户组命令:groupadd

(8)修改用户的信息命令:usermod

  • -u #指定用户的UID
  • -d #指定用户的主目录
  • -g #指定用户所属组
  • -s #修改用户的登录Shell,默认是bin/bash
  • -e #修改用户的失效日期,格式为”YYYY-MM-DD“
usermod -u 1300 -g 0 -d /usr/local/lixiang lixiang

(9)设置用户密码命令:passwd

passwd lixiang
echo '123456' | passwd --stdin lixiang

(10)用户登录出现如下信息

如下: 
bash-4.2$
bash-4.2$
解决:复制/etc/skel 中bash相关的文件到家目录当中
cp -r /etc/skel/.bash* /home/lixiang/

(11)获取主机ip

hostname -I
ifconfig | grep -Eo "([0-9]{1,3}\.){3}[0-9]{1,3}" | head -1

2.8.Linux文件属性与权限操作

(1)文件的属性:ls -lrti

135088935 -rw-------. 1 root root 1778 Oct 1 2020 yum.log
135088935
第一列:i节点,i节点可以理解为文件的id,一个i节点号可以对应多个文件,但是一个文件只能对应一个i节点号。
-rw-------.
第二列:文件的类型与权限
(1)-   #代表的是文件  
  d   #代表的是目录 
  l #代表的是软链接  
  b #代表是块设备 
  c #代表的是硬件设备
(2)r:读权限  w:写权限 x:执行权限
  4:读权限  2:写权限   1:执行权限
- rw- --- ---:分为三列,第一列为所属者的权限,第二列为所属组的权限,第三列为其他权限
1
第三列:有多少文件名链接到这个节点
root
第四列:文件的所有者
root
第五列:文件的所有组
1778
第六列:容量大小,单位默认为B
Oct 1 2020
第七列:创建或最近修改的时间
yum.log
第八列:文件名

(2)文件链接

原始文件:

92dc06983d674f42b11b11b3055c6c50.jpg

软链接:ln -s
举例:ln -s /home/lixiang/yum.log /usr/local/
i节点号根源文件不一样,源文件一旦删除,软链接将找不到源文件。

8c15635c20fd4b5ca62ede7e9ac751db.jpg

硬链接:ln
举例:ln /home/lixiang/yum.log /usr/local/lixiang/
i节点与源文件一模一样,源文件删除,硬链接还可以继续使用,常用于防止重要文件被误删。

68b70702f1854134bab09202aa1da3e2.jpg

(3)修改文件的权限命令:chmod

  • -R:递归的意思
  • chmod -R 777 /home/lixiang

举例:

文件权限修改之前:


74fb187aa6454f27b0255a4f2266481b.jpg

执行命令:chmod u+x,g+w,o+w 123.txt

b1457b748d8c4034a00786456b550787.jpg

撤销权限:chmod u-w,g-r,o-w 123.txt

47803df3f1f54730bb067a251b81201d.jpg

举例:
chmod u+x,g+w,o+w boot.log
chmod u-x,g-w,o-w 123.txt
chmod 777 boot.log

(4)修改文件的所有者跟所属组的命令:chown

更改文件目录lixiang 的所属者为root用户和所属组为lixiang组

chown -R root:lixiang lixiang


ee6bd31a24fe427f8170f0fb7e015d00.jpg

2.9.Linux的文件归档与解压缩

(1)文件归档与文件压缩

  • 文件归档:
文件归档也称为打包,指的是一个文件或者多个文件或者目录的一个集合,这个集合存储在一个文件内。归档文件是没有进行压缩的,所以占用的空间是所有文件或者目录的总和。工作中常于压缩结合在一起。
  • 文件压缩:
节约磁盘空间,加快文件的传输速率。

(2)压缩解压缩命令:gzip、xz

  • gzip:不能压缩目录,只能压缩文件,压缩速度最快,但是压缩比例比较低。扩展名:.gz
不保留源文件压缩:gzip 123.txt
保留源文件压缩:gzip -c 123.txt >123.txt.gz
不保留源文件的解压:gunzip 123.txt.gz
保留源文件的解压:gunzip -c 345.txt.gz > 234.txt
不保留源文件解压:gzip -d 345.txt.gz
  • xz:可以压缩目录和文件,压缩的速度比较慢,但是压缩的比例最高。扩展名:.xz
不保留源文件的压缩:xz 123.txt
保留源文件的压缩:xz -c 345.txt > 345.txt.xz
不保留源文件的解压:unxz 345.txt.xz
保留源文件的解压:xz -d -k 123.txt.xz
不保留源文件的解压:xz -d 123.txt.xz

(3)归档与压缩命令:tar

  • 参数:
-c #创建新文件
-f #指定文件格式
-v #显示详细过程
  • 压缩:
tar -cvf vmware.tar vmware-tools-distrib
-z 以gzip方式归档压缩:tar -zcvf vmware.tar.gz vmware-tools-distrib
-J 以xz方式进行归档压缩:tar -Jcvf vmware.tar.xz vmware-tools-distrib
           tar -Jcvf /home/lixiang/vmware.tar.xz vmware-tools-distrib
  • 解压缩:
-x 解档解压缩操作:tar -xvf vmware-tools.tar.xz
-C 解压指定路径:tar -xvf vmware-tools.tar.xz -C /home/lixiang



相关实践学习
CentOS 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
5天前
|
Oracle Java 关系型数据库
CentOS 7.6操作系统部署JDK实战案例
这篇文章介绍了在CentOS 7.6操作系统上通过多种方式部署JDK的详细步骤,包括使用yum安装openjdk、基于rpm包和二进制包安装Oracle JDK,并提供了配置环境变量的方法。
154 80
|
7天前
|
安全 Linux 开发工具
探索Linux操作系统:从命令行到脚本编程
【8月更文挑战第31天】在这篇文章中,我们将一起潜入Linux操作系统的海洋,从最基础的命令行操作开始,逐步深入到编写实用的脚本。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和实用技能。我们将通过实际代码示例,展示如何在日常工作中利用Linux的强大功能来简化任务和提高效率。准备好了吗?让我们一起开启这段旅程,探索Linux的奥秘吧!
|
8天前
|
存储 人工智能 数据管理
深入理解Linux操作系统之文件系统管理探索人工智能:从理论到实践的旅程
【8月更文挑战第30天】在探索Linux的无限可能时,我们不可避免地会遇到文件系统管理这一核心话题。本文将深入浅出地介绍Linux文件系统的基础知识、操作命令及高级技巧,帮助你更有效地管理和维护你的系统。从基础概念到实践应用,我们将一步步揭开Linux文件系统的神秘面纱。
|
6天前
|
Linux
centos linux内核下载
centos linux内核下载
|
7天前
|
网络协议 Linux Shell
探索Linux操作系统:从基础到高级编程
【8月更文挑战第31天】本文旨在为读者提供一条清晰的路径,从Linux操作系统的基础知识出发,逐步深入到高级编程技巧。我们将一起揭开Linux神秘的面纱,了解其内部工作原理,并通过实际代码示例加深理解。无论你是初学者还是有一定经验的开发者,这篇文章都将为你带来新的视角和技能提升。
|
7天前
|
Linux
探索Linux操作系统:命令行与脚本编程基础
【8月更文挑战第31天】在这篇文章中,我们将一起踏上一段旅程,深入探索Linux操作系统的奥秘。通过学习命令行的使用和编写简单的脚本,你将能够更高效地与你的计算机进行交流。无论你是新手还是有经验的用户,本文都将为你打开一扇通往Linux世界的大门。准备好了吗?让我们开始吧!
|
7天前
|
Linux
探索Linux操作系统的启动过程
【8月更文挑战第31天】本文将深入探讨Linux系统从按下电源键到登录界面出现之间的神秘世界。我们将一步步揭开内核加载、初始化进程启动和系统服务运行的面纱,同时通过实际代码示例,揭示这一切是如何精妙地编织在一起的。无论你是系统管理员还是对操作系统感兴趣的爱好者,这篇文章都将给你带来新的视角和深刻的见解。
|
7天前
|
存储 Linux 调度
深入理解Linux操作系统的启动过程
【8月更文挑战第31天】本文将深入探讨Linux操作系统的启动过程,包括BIOS、内核、init进程等关键步骤。我们将通过实际代码示例,揭示Linux启动过程中的奥秘,帮助读者更好地理解和掌握Linux系统。
|
4月前
|
Ubuntu Linux Shell
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
96 0
|
4月前
|
Ubuntu Linux Shell
【Linux操作系统】探秘Linux奥秘:用户、组、密码及权限管理的解密与实战
【Linux操作系统】探秘Linux奥秘:用户、组、密码及权限管理的解密与实战
102 0

热门文章

最新文章

下一篇
DDNS