Linux笔记

  • Post author:
  • Post category:linux




Linux介绍



1.Linux可以用在哪些地方

在这里插入图片描述



2.Linux的应用领域

1.服务器领域。(最主要领域) linux免费、稳定、高效

2.嵌入式领域 linux运行稳定,对网络有良好的支持性,低成本,且可以根据需要进行软件裁剪,内和最小可以达到几百KB。以后会在物联网应用更加广泛

3.个人桌面领域。(薄弱领域)



网络连接的三种模式



1.桥接模式
在桥接模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立的主机(主机和虚拟机处于对等地

位),它可以访问网内任何一台机器。在桥接模式下,我们往往需要为虚拟主机配置IP地址、子网掩码等(注

意虚拟主机的ip地址要和主机ip地址在同一网段)。

虚拟系统可以和外部系统通讯,但是容易造成IP冲突

在这里插入图片描述



2.NAT模式
使用NAT模式虚拟系统可把物理主机作为路由器访问互联网,使用NAT模式网络连接时,VMware

会在主机上建立单独的专用网络,用以在主机和虚拟机之间相互通信。虚拟机在外部网络中不必具有自己的IP地

址。从外部网络来看,虚拟机和主机在共享一个IP地址,默认情况下,外部网络终端也无法访问到虚拟机外,在

一台主机上只允许有一个NAT模式的虚拟网络。因此,同一台主机上的多个采用NAT模式网络连接的虚拟机也可

以相互访问的。

NAT模式,网络地址转换模式,虚拟系统可以和外部系统通讯,并且不造成IP冲突

在这里插入图片描述

王五的虚拟系统可以访问同一教室网络中的张三和李四主机,但是张三和李四无法访问王五的虚拟系统。



3.主机模式

一个独立的系统。



在centos中安装vmtools



1.进入centos,用root账户


2.在虚拟机(M)–>安装vmware tools


3.双击桌面上的VMware Tools


4.将其中的xx,tar.gz拷贝到/opt中


5.使用解压命令 tar,得到一个安装文件

在桌面右键,打开终端,输入cd /opt 【进入到 opt 目录】

tar -zxvf xx.tar.gz



6.进入该vm解压的目录,在/opt目录下输入 cd vmware…


7.安装./vmware-install.pl


8.全部使用默认设置即可,就可以安装成功


9.注意:安装vmtools 需要有 GCC

如何检查是否安装gcc?打开终端 输入gcc -v



设置共享文件夹

1.在主机磁盘上新建一个共享文件夹,比如d:/vmshare

2.右击库中的系统,菜单->设置->选项->共享文件夹->文件夹共享选择总是启用,点击添加->

下一步->浏览->找到d:/vmshare->点击确定。windows主机和centos就可以通过d:/vmshare读写文件了

3.共享文件夹在centos的/mnt/hgfs/下



注意事项和细节说明

1.在实际开发中,文件的上传下载是需要使用

远程方式

完成的



基础篇



Linux文件系统


挂载点_百度百科 (baidu.com)

在这里插入图片描述

  • /:根目录,一般根目录下只存放目录,在Linux下有且只有一个根目录。所有的东西都是从这里开始。当你在终端里输入“/home”,你其实是在告诉电脑,先从/(根目录)开始,再进入到home目录。
  • /bin: /usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
  • /boot:放置linux系统启动时用到的一些文件,如Linux的内核文件:/boot/vmlinuz,系统引导管理器:/boot/grub。
  • /dev:存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱 mount /dev/cdrom /mnt。
  • /etc:系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有 /etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d。
  • /home:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,表示当前用户的家目录,edu 表示用户 edu 的家目录。
  • /lib: /usr/lib: /usr/local/lib:系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助。
  • /lost+fount:系统异常产生错误时,会将一些遗失的片段放置于此目录下。
  • /mnt: /media:光盘默认挂载点,通常光盘挂载于 /mnt/cdrom 下,也不一定,可以选择任意位置进行挂载。
  • /opt:给主机额外安装软件所摆放的目录。
  • /proc:此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有 /proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/* 等。
  • /root:系统管理员root的家目录。
  • /sbin: /usr/sbin: /usr/local/sbin:放置系统管理员使用的可执行命令,如fdisk、shutdown、mount 等。与 /bin 不同的是,这几个目录是给系统管理员 root使用的命令,一般用户只能”查看”而不能设置和使用。
  • /tmp:一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下。
  • /srv:服务启动之后需要访问的数据目录,如 www 服务需要访问的网页数据存放在 /srv/www 内。
  • /usr:应用程序存放目录,/usr/bin 存放应用程序,/usr/share 存放共享数据,/usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。/usr/local: 存放软件升级包。/usr/share/doc: 系统说明文件存放目录。/usr/share/man: 程序说明文件存放目录。
  • /var:放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message:所有的登录文件存放目录,/var/spool/mail:邮件存放的目录,/var/run:程序或服务启动后,其PID存放在该目录下。



VI/VIM编辑器



是什么

在这里插入图片描述



模式间转换

在这里插入图片描述



一般模式

在这里插入图片描述

数字yy或者y数字y 复制光标当前往后数字行

想要连续粘贴的行数n+p 连续粘贴n次

如3p 粘贴3次

dd 删除光标当前行

u 撤销

shift+4($) 移动到行尾

shift+6(^) 移动到行头

y+shift+4($) 复制光标当前直到当前行结束的内容

y+shift+6(^) 复制光标之前直到行头内容

w 移动到下一个词的词头

b 移动到上一个词的词头

e 移动到当前词的词尾,再按一次跳转到下一个词的词尾

yw 复制一个词(带空格)

dw 删除一个词

:set nu 显示每一行的行号

:set nonu 取消显示行号



编辑模式

  • 常用语法

    在这里插入图片描述

  • 退出编辑模式

​ ESC

如按i进入

在光标之前的位置插入



命令模式

在这里插入图片描述

:w Write 写入(保存)

:q quit 退出

! 强制执行
在这里插入图片描述



vi/vim键盘图



网络配置



三种网络连接方式

在这里插入图片描述

桥接模式

在这里插入图片描述

NAT模式

在这里插入图片描述

仅主机模式

在这里插入图片描述



修改静态IP

  • 配置ifcfg-ens33
vim /etc/sysconfig/network-scripts/ifcfg-ens33
  • 修改网络配置参数(BOOTPROTO)
BOOTPROTO="static"

4+shift+g(G) 将光标移动到第4行

连按w切换到下一词的词头,切换到dhcp(动态ip)

dw删除dhcp

i进入编辑模式

输入static

esc退出编辑模式

  • 配置IP地址、网关、域名解析器
#IPADDR
IPADDR=192.168.178.100
#GATEWAY
GATEWAY=192.168.178.2
#DNS
DNS1=192.168.178.2
  • 保存并退出
:wq
  • 重启网络服务
service network restart
  • 查看修改是否成功
ifconfig

  • 在主机cmd中进行测试

在这里插入图片描述

成功!



创建主机集群的配置

修改主机名称

vim /etc/hostname

配置主机集群

vim /etc/hosts

在这里插入图片描述

​ 配置主机hosts文件

  • 在本机cmd中进行测试

在这里插入图片描述



远程登录

最简单的ssh

在这里插入图片描述

Xshell+Xftp

在这里插入图片描述



系统管理

Linux中的进程和服务

在这里插入图片描述



服务管理

基本语法(了解)

service 服务名 start|stop|restart|status

查看当前服务

ls /etc/init.d/



systemctl(CentOS 7 版本-重点掌握)

  • 基本语法
systemctl start|stop|restart|status	服务名
  • 经验技巧

查看服务的方法

/usr/lib/systemd/system



系统运行级别

在这里插入图片描述


init 3

切换到运行级别3(多用户有网,无图形界面)

在这里插入图片描述


init 5

切换到运行级别5(多用户有网,GUI图形界面)

在这里插入图片描述



配置服务开机启动和关闭防火墙

查看防火墙状态

systemctl status firewalld

在这里插入图片描述

关闭防火墙

systemctl stop firewalld.service

关闭防火墙开机自启

systemctl disable firewalld.service

开启防火墙

systemctl start firewalld.service

开启防火墙开机自启

systemctl enable firewalld.service



关机重启

关机命令

#默认在一分钟之后关机
shutdown

取消关机

shutdown -c

立刻关机

shutdown now

在某个时刻关机

#在num分钟后关机
shutdown num
#在xx点xx分关机
shutdown xx:xx

在这里插入图片描述

在这里插入图片描述



实操篇

查找尚硅谷linux资料



常用基本命令



帮助命令



man

基本语法

man [命令或配置文件] (功能描述:获得帮助信息)

显示说明

在这里插入图片描述

示例–查看ls帮助信息

 man ls

在这里插入图片描述



help-获得 shell 内置命令的帮助信息

一部分基础功能的系统命令是直接内嵌在 shell 中的,系统加载启动之后会随着 shell 一起加载,常驻系统内存中。这部分命令被称为“内置(built-in)命令”;相应的其它命令 被称为“外部命令”

基本语法

help 命令(功能描述:获得 shell 内置命令的帮助信息)

查看 cd 命令的帮助信息

help cd

在这里插入图片描述



命令 –help

获取简短的帮助信息

获取ls的帮助信息

ls --help



常用快捷键

在这里插入图片描述



文件目录类



pwd显示当前工作目录的绝对路径

pwd:print working directory 打印工作目录

pwd

在这里插入图片描述

pwd is a shell builtin

在这里插入图片描述



ls 列出目录的内容

ls:list the contents of the directory

在这里插入图片描述



cd 切换目录

在这里插入图片描述

mkdir 创建一个新的目

rmdir 删除一个空的目录

touch 创建空文件

cp 复制文件或目录

rm 删除文件或目录

mv 移动文件与目录或重命名

cat 查看文件内容

more 文件内容分屏查看器

less 分屏显示文件内容(比more功能更强大,推荐)

echo 输出内容到控制台

head 显示文件头部

tail 输出文件尾部内容

> 输出重定向和 >> 追加



Shell



概述

计算机最底层是硬件(cpu、内存、io设备等)

我们进行编程进行操作的过程本质上都要翻译成对硬件的操作指令

真正能对硬件操作的是操作系统

Linux内核是Linux操作系统最核心的部分(对用户不友好)

一般用户使用的是外层应用程序

Linux内核和外层应用程序的操作语言不通,需要Shell来解释外层应用程序的操作命令,来调用操作系统内核。

在这里插入图片描述

Shell还是一个功能强大的编程语言,易编写、易调试、灵活性强。

在这里插入图片描述



脚本入门



脚本格式

脚本以#!/bin/bash 开头(指定解析器)



第一个 Shell 脚本:helloworld.sh

在这里插入图片描述



脚本的常用执行方式

第一种:采用 bash 或 sh+脚本的相对路径或绝对路径(不用赋予脚本+x 权限)

在这里插入图片描述

第二种:采用输入脚本的绝对路径或相对路径执行脚本(必须具有可执行权限+x)

在这里插入图片描述

注意:第一种执行方法,本质是 bash 解析器帮你执行脚本,所以脚本本身不需要执行 权限。第二种执行方法,本质是脚本需要自己执行,所以需要执行权限。

在这里插入图片描述

原因: 前两种方式都是在当前 shell 中打开一个子 shell 来执行脚本内容,当脚本内容结束,则 子 shell 关闭,回到父 shell 中。 第三种,也就是使用在脚本路径前加“.”或者 source 的方式,可以使脚本内容在当前 shell 里执行,而无需打开子 shell!这也是为什么我们每次要修改完/etc/profile 文件以后,需 要 source 一下的原因。 开子 shell 与不开子 shell 的区别就在于,环境变量的继承关系,如在子 shell 中设置的 当前变量,父 shell 是不可见的

子shell

Shell:子shell概念 – 不羁的罗恩 – 博客园 (cnblogs.com)



变量



变量类型

全局变量

在当前shell生效的话,在当前shell的子shell也会生效

局部变量

只在当前shell生效,子shell不能访问父shell的局部变量

系统预定义变量(环境变量)

所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。

查看环境变量


env | less


printenv | less


printenv 变量名

查看某个变量

自定义变量

my_var="Hello,world"
a=2
输出自定义变量
echo $my_var
echo $a

在这里插入图片描述

可以发现my_var不是全局变量



版权声明:本文为qq_64137391原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。