Linux基础

目录

一、Linux的安装及相关配置

二、UNIX和Linux操作系统概述

三、Linux命令及获取帮助

四、目录文件的浏览、管理及维护

五、用户、群组和权限

六、用户、群组及权限的深入讨论 

七、文件的归档、合并及压缩命令

八、利用vim编辑器创建和编辑正文文件 

九、系统的初始化和服务  

十、网络配置

十一、软件包的管理

十二、yum管理RPM包 

十三、Samba服务

一、Linux的安装及相关配置

1. 计算机操作系统简介

  • 操作系统是一个用来协调、管理和控制计算机硬件和软件资源的系统程序,它位于硬件和应用程序之间。

  • 操作系统的内核是一个管理和控制程序,负责管理计算机的所有物理资源,其中包括。文件系统、内存管理、设备管理和进程管理。

  • 两种操作系统用户界面 :图形界面、命令行界面

2、LINUX主要发行版:CENTOS(免费,使用最广)、RHEL(企业收费版)、FEDORA、UBUNTU、SUSE

3、安装Linux操作系统

  • 掌握安装Linux操作系统时对内存的最低要求为:512M

  • 掌握安装过程中的各选项的含义:安装过程语言的选择为简体中文的选项为:Chinese(Simplified)

    • install or upgrade an existing system:安装或升级现有的系统
    • install system witn basic video driver:安装系统和基本的视频驱动程序
    • rescue installed system:救援安装系统
    • boot from local drive:从本地硬盘启动
  • 默认的主机名为:localhost.localdomian

  • 选择skip按钮跳过对安装介质的检测

  • 磁盘分区:/boot 系统的C盘,512即可;swap,虚拟交换分区,大小为系统内存的1.5-2倍,小于8G;/根目录,剩下的都归根目录;

  • 最小化安装时无法开启图形桌面

  • 文本界面下用户登陆输入的密码不显示

  • 最小化安装系统时默认缺失的程序为:x-window

  • 默认的管理员为root

二、UNIX和Linux操作系统概述

1、UNIX

  • UNIX是一个计算机操作系统,一个用来协调、管理和控制计算机硬件和软件资源的控制程序。

  • 特点:多用户和多任务

    • 多用户表示在同一时刻可以有多个用户同时使用UNIX操作系统而且他们互不干扰;

    • 多任务表示任何一个用户在同一时间可以在UNIX操作系统上运行多个程序。

2、GNU项目与自由软件

  • GUN计划,是由Richard Stallman在1983年9月27日公开发起的,它的目标是创建一套完全自由的操作系统。

  • GPL条款是为保证GNU软件可以自由地使用、复制、修改和发布,所有GNU软件都有一份在禁止其他人添加任何限制的情况下授予所有权利给任何人的协议条款。

  • 自由软件意味着:

    • 你有自由以任何目的来运行该程序

    • 你有修改程序满足自己需求的自由

    • 你有权利重新发布副件,既可以白送也可以收取一定费用

    • 你有权利发布该程序修改过的版本,从而让其他人得益于你的改进

3、Linux简介

  • 定义:Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统

  • 主要用途:主要用于服务器,特别是网络服务器

  • 两种常见的桌面环境:KDE和GNOME

三、Linux命令及获取帮助

1、Linux命令的语法格式:命令 【选项】 【参数】

  • 命令:告诉Linux(UNIX)操作系统做(执行)什么

  • 选项:说明命令运行的方式(可以改变命令的功能)。选项部分是以“-”字符开始的

  • 参数:说明命令影响(操作)的是什么(如一个文件、一个目录或是一段正文文字)

2、基本命令

  • init 0:关闭Linux系统的命令

  • Ctrl+Alt+F[1~6]:切换虚拟终端的方法,如想切换到第二号虚拟终端,则同时按Ctrl+Alt+F2

  • $:普通用户登录后系统的提示符

  • #:root用户登录后系统的提示符

  • exit:退出命令

  • whoami:列出目前登陆Linux系统所使用的用户名(账号)

  • who:列出目前哪些用户在系统上工作

  • date -u:显示系统当前的UTC日期和时间

  • date 月日时分年:设置时间时间的格式(扩展:hwclock –s 同步硬件 –w 同步系统)

  • cal:显示某月的日历,例如:cal 8 2008

  • clear:清除屏幕

  • ctrl+l:清除屏幕

  • su:从当前的用户切换到另一个指定的其他用户,例如:su – root

  • passwd:修改用户(既可以是普通用户,也可以是root用户)的密码,查看用户的密码状态等

  • useradd:添加用户,例如:useradd lw

  • man:获取某个Linux命令的使用说明

  • 命令名 --help:查看某个命令的帮助

  • Ctrl+a:跳到命令行的首部;

  • Ctrl+e:跳到命令行的尾部;

  • hostname:查看主机名,hostname 主机名--临时修改;

  • vim /etc/sysconfig/network:修改文件内容,永久修改;

四、目录文件的浏览、管理及维护

1. Linux文件系统的层次结构

  • 在Linux或UNIX操作系统中,所有的文件和目录都被组织成一个以根节点开始的倒置的树状结构。

  • 目录的定义:目录相当于Windows中的文件夹,目录中存放的既可以是文件,也可以是其他的子目录

  • “/”来表示根目录

  • 文件系统中的两个特殊目录:

    • . 表示当前目录,即用户所在的工作目录

    • .. 表示父目录,即当前目录的上一层目录

2. Linux系统中的一些重要的目录

  • bin目录:用来存放常用的可执行文件

  • sbin目录:用来存放系统的可执行文件

  • 家目录:用来存放用户自己的文件或目录,其中,超级用户root的家目录是/root,而普通用户的家目录被存放在/home目录下,并使用用户名作为最后一级目录(家目录)的名称,如cat用户的家目录为/home/cat

  • dev目录:设备文件目录

  • etc目录:配置文件目录

  • 挂载点(目录):通常可移除式硬件会被挂载在/media或/mnt目录之下

3、绝对和相对路径

  • 绝对路径:必须以一个正斜线(/)开始。绝对路径包括从文件系统的根节点开始到要查找的对象(目录或文件)所必须遍历的每一个目录的名字,它是文件位置的完整路标,因此在任何情况下都可以使用绝对路径找到所需的文件;

  • 相对路径:不是以正斜线(/)开始,相对路径可以包含从当前目到要查找的对象(目录或文件)所必须遍历的每一个目录的名字;

4、确定和切换目录

  • pwd:确定现在所在的工作目录

  • cd:切换到用户的家目录

  • cd ..:进入上一级目录

  • cd ~:切换到用户的家目录

  • cd –:切换到用户之前的工作目录

  • cd 目录名:切换到指定的目录

5、列出目录中的内容

  • ls:列出当前目录(默认为当前目录)或指定目录中的内容

  • ls -a:列出目录下的所有文件,包括以“.”开头的隐含文件,例如:列出/home/dog目录中的所有文件,包括隐藏文件的命令:ls -a /home/dog

  • ls –all:同ls –a

  • ls –l:列出某个目录中每一个文件的详细资料

  • du -sh 文件夹:统计一个文件夹中的文件总共有多大

6、复制文件和目录

  • cp 源文件 目标文件:将文件(可以是多个)复制成一个指定的目的文件或复制到一个指定的目标目录中。

  • cp命令的常用选项

    •  –r(recursive,递归的):递归地复制目录。当复制一个目录时,复制该目录中所有的内容,其中包括子目录的全部内容;例如:cp –r /home/dog /home/cat

    •  -f(force,强制):在目标文件已经存在的时候不询问直接强制复制

7. 移动及修改文件和目录名

  • mv 原文件 新文件目录:将原文件目录中的文件移动到新文件目录中;例如:将当前目录中的lists文件移动到其子目录babydog中的命令:mv lists babydog;

  • mv 原文件 新文件目录+新文件名:将原文件目录中的文件移动到新文件目录中,并修改名字;例如:将bigdog目录名改为babydog的命令:mv bigdog babydog;

  • mv 原文件 新文件目录:不用提示是否覆盖,直接覆盖;

8、创建目录

  • mkdir 目录名:创建一个新目录

9、创建文件

  • touch 文件名:在当前目录中创建一个文件;可以创建一个空文件,也可以同时创建多个文件
  • touch /test/{a..z}.txt:在指定文件夹下创建a-z个txt文件;

10、删除文件和目录

  • rm –r(recursive,递归的) 文件目录:递归地删除目录。当删除一个目录时,删除该目录中所有的内容,其中包括子目录中的全部内容;

  • rm –f(force,强制)文件目录:系统并不询问而是强制删除,即直接删除原有的文件;

  • rmdir 目录:删除指定目录下的空目录;

  • rm -rf 文件/目录:删除一切

11、浏览正文文件的内容

  • cat 文件:将一个或多个文件的内容显示在屏幕上,该命令会不停的以只读的方式显示整个文件的内容;例如:cat game.txt

  • head -n 文件:显示一个文件的前n行,默认前10行;

  • tail -n 文件 :显示一个文件的最后n行,默认后10行;

  • more 文件:每次在屏幕上显示一屏(一页)的文件内容,回车键继续显示,并且在屏幕的尾部将会出现“—More--(n%)”的信息,其中,n%是已经显示文件内容的百分比;

  • less 文件:每次在屏幕上显示一屏(一页)的文件内容,向下键继续显示;

五、用户、群组和权限

1、/etc文件夹下的passwd文件

  • /etc/passwd:存储所有用户的相关信息,该文件也被称为用户信息数据库(Database);

  • 文件每个字段的具体含义:

    • 第1个字段(列)记录的是这个用户的名字(在创建用户时root用户起的)

    • 第2个字段(列)如果是x,表示该用户登录Linux系统时必须使用密码;如果为空,则该用户在登录时无须提供密码;

    • 第3个字段(列)记录的是这个用户的uid;

    • 第4个字段(列)记录的是这个用户所属群组的gid;

    • 第5个字段(列)记录的是有关这个用户的注释信息(如全名或通信地址);

    • 第6个字段(列)记录的是这个用户的家目录的路径;

    • 第7个字段(列)记录的是这个用户登录后,第一个要执行的进程;

2、/etc文件夹下的shadow文件

  • /etc/shadow文件的功能:存储所有用户的密码,每一个用户占用一行记录,该文件实际上就是存放用户密码的数据库(Database);

  • 文件每个字段的具体含义:

    • 第1个字段(列)是用户名

    • 第2个字段(列)是密码,这个密码是经过MD5加密算法加密过的密码;

3、/etc文件夹下的group文件

  • /etc/group文件的功能:存放了Linux系统中所有群组的信息,它实际上就是一个存放群组信息的数据库(Database);

  • 文件每个字段的具体含义:

    • 第1个字段是这个群组的名字;

    • 第2个字段中的x表示这个群组在登录Linux系统时必须使用密码;

    • 第3个字段记录的是这个群组的gid;

    • 第4个字段记录的是这个群组里还有哪些群组成员;

4、添加一个新的用户账户

  • useradd 用户名:新增一个用户

  • useradd –u 用户名:指定用户的UID

  • useradd –g 用户名:指定用户所属的群组

  • useradd –d 用户名:指定用户的家目录

  • useradd –c 用户名:指定用户的备注信息

  • useradd –s 用户名:指定用户所用的shell

  • 例如:在系统中新增一个用户user01,属组为police以及uid为600的命令:useradd –u 600 –g police user01

5、修改用户账户

  • usermod –u 用户名:修改用户的UID

  • usermod –g 用户名:修改用户的GID

  • usermod –G 用户名:将一个用户加入到指定的群组中

  • usermod –d 用户名:修改用户的家目录

  • usermod –c 用户名:修改用户的备注信息

  • usermod –s 用户名:修改用户所用的shell

  • 例如:

    • 修改baby用户的家目录为/home/babies:usermod –d /home/babies baby

    • 将baby这个用户添加到baby这个群组中:usermod –G baby baby

6、锁住用户及将用户解锁

  • usermod –L 用户名:将用户的账号锁住

  • usermod –U 用户名:将用户的账号解锁

7、删除用户账号

  • userdel 用户名:仅删除用户,不删除其家目录;

  • userdel -r 用户名:在删除用户的同时删除这个用户的家目录及其邮箱;

8、群组的管理

  • groupadd 群组名:创建一个新的群组账号;

  • groupadd -g 群组名:指定群组的GID;

  • groupmod 群组名:修改一个群组账号的信息;

  • groupmod –g 群组名:修改群组的GID;例如:修改police群组的gid为521的命令:groupmod –g 521 police

  • groupmod –n 群组名:修改群组的名称;

  • groupdel 群组名:删除群组;

六、用户、群组及权限的深入讨论 

1、查看文件的权限

  • ls –l:查看文件上所设定的权限

  • ls –l命令的显示结果中的第一列分成4组,其中:

    • 第1个字符为第1组,代表这是一个文件(-)或是一个目录(d),也可以是其他资源。

    • 第2、3、4个字符为第2组,定义了文件或目录的所有者(owner)所具有限的权,使用u代表所有者(owner)对文件的所有权限。

    • 第5、6、7个字符为第3组,定义了文件或目录的所有者所在的群组中其他(用户)所具有的权限,使用g代表这一组(group)权限。

    • 第8、9、10个字符为第4组,定义了既不是owner也不和owner在同一群组的其他用户对文件或目录所具有的权限。使用o代表这一组(other)权限。

  • ls –l命令的显示结果中的第三列、第四列为文件的属主和属组;

2、 root用户及文件的安全控制

  • root用户的定义:root用户也称为超级用户,它可以完全不受限制地访问任何用户的账户和所有文件及目录;

  • Linux系统是将系统中的所有用户分成了3类:

    • 第1类:所有者
    • 第2类:同组用户(修正:所属组,因为你创建一个用户的过程会以为这个用户名为名字创建一个同名的组);
    • 第3类:非同组的其他用户
  • Linux操作系统在显示权限时,使用如下4个字符来表示文件操作权限:

    • r:表示read权限,也就是可以阅读文件或者ls命令列出目录内容的权限

    • w:表示write权限,也就是可以编辑文件或者在一个目录中创建和删除文件的权限

    • x:表示execute权限,也就是可以执行程序或者使用cd命令切换到这个目录以及使用带有-l选项的ls命令列出这个目录中详细内容的权限等;

    • -:表示没有相应的权限(与所在位置的r、w或x相对应);

3、 修改文件的属主和属组

  • chown root file1:修改文件file1的属主为root;

  • chgrp wg file1:修改文件file1的属组为wg;

4、符号法设定文件或目录上的权限

  • 权限状态可以分为3个部分:

    • 第1个部分,表示要设定或更改谁的权限状态:

      • u:表示所有者(owner)的权限

      • g:表示群组(group)的权限

      • o:表示既不是owner也不与owner在同一个group的其他用户(other)的权限

      • a:表示以上3组,也就是所有用户(all)的权限

    • 第2部分,是运算符(operator),也有人称为操作符:

      • +:表示加入权限

      • -:表示去掉权限

      • =:表示设定权限

    • 第3部分,表示权限(permission)

      • r:表示read(读)权限

      • w:表示write(写)权限

      • x:表示execut(执行)权限

  • chmod 权限 file:设定或更改文件或目录上的权限
  • chmod 权限 -R file:不但设置(或更改)该目录权限,而且还要递归地设置(或)更改该目录中所有文件或子目录的权限;

  • 例如:在dog_wolf文件上添加所有者和同组用户的可执行权限:chmod ug+x dog_wolf

5、数字表示法设定文件或目录上的权限

  • 数字表示法是指使用一组三位数的数字来表示文件或目录上的权限状态;

    • 第1个数字代表所有者(owner)的权限(u)

    • 第2个数字代表群组(group)的权限(g)

    • 第3个数字代表其他用户(other)的权限(o)

  • 数字代表的资源权限状态:

    • 4:表示具有读(read)权限

    • 2:表示具有写(write)权限

    • 1:表示具有执行(execute)权限

    • 0:表示没有相应的权限

  • 例如:使用数字表示法对owner开放/home/dog/babydog目录和其中所有文件的一切权限,但是对同组用户开放读和执行权限,而对其他用户只开放读权限:chmod -R 754 /home/dog/babydog 

七、文件的归档、合并及压缩命令

1、文件的纵向合并

  • >:将前面的内容覆盖到后面的文件中;

  • >>:将前面的内容追加到后面的文件中;

  • cat 文件1 文件2 >文件3:将文件1和文件2合并为文件3,如果文件3不存在,就新建一个文件3;

  • 例如:使用cat命令将baby.age、baby.kg和baby.sex这三个文件纵向合并为baby文件的方法:cat baby.age baby.kg baby.sex >baby

  • cat 文件1 >>文件2:将文件1的内容添加到文件2中;

  • echo 'hello' > 文件 :覆盖文件内容

  • echo 'hello' >> 文件 :追加文件内容

  • 大于号前面的命令只要有输出命令,就可以用上面的格式创建和修改文件,例如:ls -l;

  • wc -l 文件名:统计文件有多少行
  • ll 文件名:查看文件大小,字节;

2. 归档文件和归档技术

  • 归档(archiving)就是将许多文件(或目录)打包成一个文件,方便备份、还原及文件的传输操作。

  • tar 选项 file.tar file:将多个文件(也可能包括目录,因为目录本身也是文件)放在一起存放到一个磁带或磁盘归档文件中。并且将来可以根据需要只还原归档文件中的某些指定的文件;

  • tar命令的常用选项:

    • c:创建一个新的tar文件

    • t:列出tar文件中目录的内容

    • x:从tar文件中抽取文件

    • f:指定归档文件或磁带(也可能是软盘)设备(一般都要选);

    • v:显示所打包的文件的详细信息,v是verbose的第1个字母;

    • z:使用gzip压缩算法来压缩打包后的文件;

    • j:使用bzip2压缩算法来压缩打包后的文件;

  • 例如:将arch目录打包成一个名为arch.tar的归档文件(要求显示所有打包的文件和目录):tar cvf arch.tar arch
    • 显示arch.tar这个归档文件(包)中的所有文件:tar tf arch.tar

    • 解压b.tar中的全部文件到指定路径:tar xvf b.tar -C test2,路径文件夹必须存在

 3、文件的压缩和解压缩

  • gzip file1 –c > /路径/name.gz:将文件file1压缩成.gz格式的压缩包;

  • gunzip file1.gz >/路径:将压缩文件file1.gz解压缩

  • bzip2 file1 >:将文件file1压缩成.bz2格式的压缩包

  • bunzip2 file1.bz2 >:将压缩文件file1.bz2解压缩

  • tar cvfz arch.tar.gz arch:将arch目录打包而且同时使用gzip的技术压缩打包后文件的方法(打包后的文件名为arch.tar.gz);

4、同时归档和压缩以及解压

  • tar cvzf file.tar.gz 目录:将目录压缩

  • tar cvzf file.tar.gz /dir1/*.txt:将目录下所有txt文件压缩;

  • tar xvf file.tar.gz -C 目录:将压缩包解压到指定目录,这个目录必须存在;

  • 如果只想将目录下所有文件压缩,必须cd到目录下,压缩所有文件;

八、利用vim编辑器创建和编辑正文文件 

1、创建和编辑正文文件

  • vim是一个UNIX和Linux系统内嵌的标准正文(文字)编辑器,它是一种交互类型的正文编辑器,它可以用来创建和修改正文文件。

  • vim编辑器的3中基本模式:

    • 命令行模式:vim的默认模式。在这一模式中,所有的输入被解释成vim命令,可以执行修改、复制、移动、粘贴和删除正文等命令,也可以进行移动光标、搜索字符串和退出vim的操作等。

    • 查找模式:输入/+查找内容即可;
    • 编辑模式:在编辑模式中,可以往一个文件中输入正文。在这一模式下,输入的每一个字符都被vim编辑器解释为输入的正文。使用ESC键返回命令行模式。

    • 扩展模式:在一些UNIX系统上也叫最后一行模式。在这一模式下,可以使用一些高级编辑命令,如搜寻和替代字符串、存盘或退出vim编辑器等。要进入最后一行模式,需要在命令行模式中输入冒号(:),冒号这一操作将把光标移到屏幕的最后一行。

2、在vim编辑器中光标的移动

  • $:光标移动到当前行的结尾;

  • 0:光标移动到当前行的开始;

3、插入模式

  • a:进入插入模式并在光标之后进行添加

  • i:进入插入模式并在光标之前进行插入

  • o:进入插入模式并在当前(光标所在)行之下开启新的一行

4、在命令行模式下删除与复制的操作

  • dd:删除光标所在的那一行;

  • ndd:删除光标所在的向下n行;

  • yy:复制光标所在的那一行;

  • nyy:复制光标所在的向下n行;

5、粘贴命令

  • p:将已复制的数据在光标下一行粘贴;

  • P:将已复制的数据在光标上一行粘贴;

  • 先dd,后yy:剪切命令
  • 先yy,后nyy:复制n行;

6、复原和重做命令

  • u:复原前一个操作;

  • Ctrl+r:重做上一次操作;跟u是来回切换的;

7、扩展模式与文件的存储和退出

  • :w:将文件写入或存入磁盘;

  • :q:退出vi编辑器,并不存盘;

  • :wq:将文件写入或存入磁盘并退出;

  • :q!:不保存,直接退出;

8、快速移动光标在文件中的位置

  • G:光标移动到这个文件的最后一行;

  • nG:光标移动到这个文件的第n行;

  • gg:光标移动到这个文件的第一行;

9、快速移动光标在屏幕中的位置

  • H:光标移动到屏幕最上方那一行的第一个字符;

  • M:光标移动到屏幕中央那一行的第一个字符;

  • L:光标移动到屏幕最下方那一行的第一个字符;

10、set nu:设置行号;在扩展模式下输入命令,:set nu

九、系统的初始化和服务 

1、常用的可以关闭系统的命令:

  • shutdown -h now 
  • halt
  • poweroff
  • init 0

2、常用的可以重启系统的命令:

  • shutdown -r now
  • reboot
  • init 6
  • Ctrl+Alt+Delete键

3、BIOS的定义:BIOS(Basic Input/Output System)(基本输入/输出系统的缩写),它是硬件与软件之间的接口,而且是非常基本的接口。开机进入BIOS的命令是:DEL或者F2

4、GRUB程序和grub.conf文件

  • GRUB是Grand Unified Bootloader(多重操作系统启动管理器)的缩写;

  • grub的配置文件为:grub.conf。

  • grub Md5加密命令 grub-MD5-crypt

5、内核的初始化和init的初始化

  • init的配置文件为:/etc/inittab 

  • init程序要做的工作:

    •  决定预设(默认)要使用哪个run levels(运行级别)

    • 执行一些系统初始化的脚本(程序)来初始化操作系统

    • 根据run level的设置来执行所对应目录中的程序,以决定要启动哪些服务

    • 设定某些组合键

    • 定义UPS不间断电源系统,即当电源出现问题时或电源恢复时要执行哪些程序

    • 产生6个virtual consoles,也就是tty1~tty6

6、run levels(运行级别)

十、网络配置

1、ifconfig:显示所有正在启动的网卡的详细信息或设定系统中网卡的IP地址;eth0是第一块被激活的网卡;

2、临时设定网卡的IP地址:

例如:修改eth0网卡的IP地址为172.18.48.56和子网掩码255.255.255.128的命令:ifconfig eth0 172.18.48.56 netmask 255.255.255.128

3、启动和停止网卡

  • ifup:启动系统上指定的网卡,例如:启动eth0网卡的命令:ifup eth0

  • ifdown:停止系统上指定的网卡,例如:停用eth0网卡的命令:ifdown eth0

4、网络配置文件

  • 网卡的配置文件存放在/etc/sysconfig/network-scripts目录中,且每个网卡对应的配置文件的文件名以ifcfg-开始,如eth0这个网卡对应的网络配置文件就是ifcfg-eth0

  • 注意:虚拟机新添加网卡没有配置文件需手动添加配置或图形添加网卡;

  • 网络配置的定义:所谓的网络配置(设定)就是要修改网卡所对应的网络配置文件,可以通过使用文字编辑器(vi)直接编辑网络配置文件来重新配置网络。

  • ONBOOT=yes:重启的时候激活网卡

  • NM_CONTROLLED=no:这个不要启动,会影响你的配置;

  • BOOTPROTO=dhcp:自动获取IP地址;nat模式

  • BOOTPROTO=static:手动设置IP地址,桥接模式:
    • IPADDR=192.168.11.109,IP地址;

    • NETMASK=255.255.255.0,子网掩码;

    • GATEWAY=192.168.11.1,默认网关;

    • DNS1=218.30.118.6

    • DNS2=114.114.114.114

  • service NetworkManager stop:停止守护进程,这样才能重启网络配置,这里只是临时关闭,重启之后又会自动启动;

  • chkconfig --list|grep 'NetworkManager':先查看每个级别下的默认状态;0、1、6级别不要动;

  • chkconfig --level 35 NetworkManager off:设置NetworkManager在开机时默认关闭;

  • service network restart :重启网络,先ifdown,后ifup,功能一样,也是重启网络;

  • route -n :查看网关
  • route add default gw 192.168.1.1:临时添加网关,永久添加都要编辑文件;

  • cat /etc/resolv.conf:查看DNS

  • netstat -tulnp  查看当前端口

6、虚拟机网络配置

  • 桥接模式,手动设置IP、子网掩码、默认网关;

  • nat模式:BOOTPROTO=dhcp,自动获取IP
  • 可以使用ping ip地址 测试是否能通信;例如:ping 192.168.197.1;ping www.baidu.com

十一、软件包的管理

1、RPM就是Red Hat Package Manger(红帽软件包管理工具)的缩写。RPM软件包是Linux官方把一些稳定的软件编译成二进制包,可以直接安装,其他的包都需要先编译;

2、rpm的文件名分为5部分,其中:

  • 第1部分是name,表示这个rpm软件包的名称;

  • 第2部分是version,表示这个rpm软件包的版本编号,编号最后一位是偶数的是稳定版;

  • 第3部分是release,表示这个rpm软件包的版本发布次数(修正号码);

  • 第4部分是architectures,表示这个rpm软件包适用于哪些平台;

  • 最后一部分是rpm,表示这个rpm软件包的文件扩展名。

3、rpm软件安装与移除工作中经常使用的选项:

  •  –i:安装(Install)软件,

  • rpm -ivh 软件包 --force:覆盖安装

  • –U:升级(Upgrade)旧版本的软件

  • –e:移除/删除(Erase)软件;

  • rpm -e 软件包 --nodeps:卸载软件时忽略依赖性;

  • –v:显示详细的处理信息

  •  –h:显示安装进度,卸载不能用;

  • 一般使用rpm -ivh 软件包

4、查看RPM软件包中的信息

  • rpm –qa:显示目前操作系统上安装的全部软件包,其中q是query(查询)的第1个字母,a是all(全部)的第1个字母;例如:Rpm –qa | grep dhcp,查询所有dhcp开头的;

  • rpm –qf 文件名:显示这个文件是由哪个软件包安装的,f是file(文件)的第1个字母。

  • rpm –qi 软件包名:显示这个软件包的信息,i是information(信息)的第1个字母;

  • rpm –ql 软件包名:列出这个软件包中所包含的全部文件,其中l是list的第1个字母;

5、从网络下载软件包

  • rpm -ivh url:下载完成后自动安装,URL包括完整的软件包名;

  • 如果网络配置完成,仍然不能访问百度,关闭防火墙:iptables -F或者service iptables stop

  • wget url :先cd到一个文件夹,再下载,之后安装;

十二、yum管理RPM包

1. yum的功能:yum是Yellow dog Updater, Modified的缩写,目的就是为了解决RPM的依赖关系的问题,方便使用者进行软件的安装、升级等等工作。

2、yum的配置一般有两种方式,一种是直接配置/etc目录下的yum.conf文件,另外一种是在/etc/yum.repos.d目录下增加.repo文件。

3、桌面版配置:

  • vim /etc/yum.repos.d/local.repo 

  • 安装软件:yum -y install 软件包,-y表示不提示是否安装,直接安装;

  • 如果忘记软件包的名字,只记得几个字母:yum -y install *xxx*,会把带有字母的程序都安装;
  • 其中,光盘下文件夹repodata存放的是软件包的依赖关系,yum的安装流程就是先到这个文件夹下,找到依赖关系,再根据依赖关系找到Packages文件夹下的软件包;

4、自定义yum源的步骤

5、非桌面版本地yum配置

  • 永久挂载光盘到/media目录,即修改系统文件/etc/fstab,添加一条信息:

    • echo "/dev/sr0 /media iso9660 defaults 0 0" >> /etc/fstab

    • mount -a
    • 如果上面的无效:mount /dev/sr0 /media 

    • 现在很多发行版中,光驱都不是/dev/cdrom了,而是/dev/sr0,命令ls -l /dev/cdrom |grep cdrom查看结果
[root@ocdp1 cdrom]#  ls -l /dev/cdrom |grep cdrom
lrwxrwxrwx. 1 root root 3 9月   4 18:31 /dev/cdrom -> sr0
    • mount /dev/sr0 /media   光盘文件默认在/dev/sr0中,需要挂载到文件夹中,卸载umount /media

    • 如果要写的较为完整,可以是/mount -t iso9660 -o,loop /dev/sr0 /media

  • vim local.repo编辑配置文件如下:

    • [local] #模块名称,须修改不能与其他.repo文件中的重名

    • name=local yum #名称随便起

    • baseurl=file:///media #指定rpm仓库的位置;

    • enabled=1 :1开启该配置,0为关闭

    • gpgcheck=0 :1为校对软件,这里不用校对;

  • 测试yum:yum -y install httpd #安装httpd

6、yum基本使用方法

  • yum –y install 软件名:安装软件

  • yum –y remove 软件名:删除软件

  • yum –y groupinstall 组件名:安装组件

  • yum –y groupremove 组件名:删除组件

  • yum clean all:清除yum缓存

  • yum search:查找软件包

  • yum makecache:制作缓存,yum安装软件每次都会挨个读取yum源,速度很慢,先制作缓存,安装软件时就省去了这一步;
  • ps aux | grep yum,得到YUM的PID,root后面的就是PID,kill -s 9 PID:停止yum进程

7、网络yum源配置

8、源码安装软件方法

  • 下载:wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz,root用户下载的软件包在/root文件夹中

  • 解压:tar xvf Python-3.7.1.tgz

  • cd Python-3.7.1

  • 先安装必须的C语言软件:yum -y install gcc-* glibc-* 

  • 查看环境变量:echo $PATH

  • 修改环境变量:

    • 桌面版本:vim /etc/profile ,最后加上两行:把前面获取的环境变量复制进去,再加上自己的Python目录,PATH=...:/usr/local/python3.7/bin/,第二行:export PATH;执行命令 source /etc/profile 使其修改生效;注意:这里两个环境变量之间加的是冒号,Windows是分号;

    • 非桌面版本:

      • 使用xshell,步骤同上

 

9、安装Python模块

  • 安装Django和paramiko
pip3 install -i http://pypi.douban.com/simple/ paramiko --trusted-host pypi.douban.com
pip3 install -i http://pypi.douban.com/simple/ django --trusted-host pypi.douban.com
  ########如果出现错误 Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-z18k0zhw/pynacl/
###更新pip的版本
[root@Server tmp]# python3 -m pip install -i http://pypi.douban.com/simple/ --upgrade pip --trusted-host pypi.douban.com

10、ssh服务:远程连接服务(xshell)

  • 服务器上默认安装服务端和客户端,客户端软件可以安装Xshell、putty、secureCRT,有图形界面的软件:VNC
  • 通过service sshd status启动服务端,打开xshell,通过ssh ip地址链接,成功之后可以远程控制服务器;

  • 修改sshd配置文件:vim /etc/ssh/sshd_config,端口改为:大于1024即可,因为0-1024是系统端口号;UseDNS改为no;

  • Linux服务器既有服务端也有客户端,所以自己可以链接自己:ssh ip -p 端口号;

  • xshell链接指定端口:ssh ip 端口;

  • ssh新建链接,这样每次就不用手动输入命令连接了

  • 如果连接失败或者速度很慢,查看服务器防火墙iptables -L,关闭防火墙步骤:iptables -F(清除防火墙规则)---service iptables stop(临时关闭)---chkconfig iptables off(设置开机关闭)

  • 查看防火墙状态:service iptables status;iptables:未运行防火墙。

  • 开启防火墙:service iptables start

  • 复制之后,在xshell中编辑一个文件,shift+insert,直接粘贴

11、httpd(Apache)服务:布置服务的步骤

  • 准备环境:
    • 关闭防火墙:chkconfig iptables off(临时关闭:setenforce 0),检查防火墙是否关闭:service iptables status

    • 关闭selinux:修改配置文件:vim /etc/sysconfig/selinux,SELINUX=disabled

    • 配置IP

  • 安装软件包:yum -y install httpd

  • 修改配置文件:vim /etc/httpd/conf/httpd.conf ,一般是设置好的,不用修改:

    • Listen 80
    • DocumentRoot "/var/www/html"--网站根目录,给根目录下添加一些文件vim /var/www/html/a.txt,要有内容;

  • 重启服务:service httpd restart

  • 修改hostname:vim /etc/hosts ,改为三段式:www.charlie.com,不修改效果也是一样的,hosts文件中只要有ip对应的主机名就行;

  • 测试:浏览器输入:http://192.168.11.200/a.txt,浏览器默认添加80端口,如果你的端口修改了,就写上端口,浏览器自动导航到网站根目录下找到a.txt文件;

  • 如果不写文件名,默认访问index.html文件;需要先在根目录下添加index.html

十三、Samba服务

1、samba的功能: samba是一个网络服务器,用于Linux和Windows之间共享文件,提供的是网盘服务。

2、samba服务的启动、停止、重启:service smb start|stop|restart

3、安装samba,修改配置文件 /etc/samba/smb.conf

  • security = user(用户密码访问)或者share(匿名访问,不需要密码)
  • 先在另一个窗口创建一个文件夹和一些文件

  • 在配置文件最下面创建共享设置

  • 保存退出,重启服务

  • 客户端添加映射:\服务器地址smb.conf中共享文件【】中的名字,此时客户端只能读和执行,不能写

  • 如果无法访问,关闭防火墙,getenforce--查看防火墙状态,如果是Enforcing,输入setenforce 0,变成Permissive,即可访问;
  • 服务器放权:chmod o+w /company/,这样只能对文件夹里的文件进行操作,不能修改文件内容

  • 服务器对单个文件进行放权:chmod o+w a.txt

4、如果是用户共享模式

  • 添加用户,创建密码:useradd u 、smbpasswd –a 用户

  • 映射用户的家目录,输入你访问的用户名、密码;

  • 此时你可以对文件夹中的文件进行删除、添加,但是不能修改文件内容,需要系统放权;

  • 如果你只想让tom做一个Samba用户,不想让他登陆服务器:usermod -s /sbin/nologin tom

  • 此时添加映射:勾选使用其他凭据链接

5、注意

  • 客户端要对目录是否有权限,必须samba软件放权:writeable=yes,+系统放权:chmod o+w /company/

  • 每个用户的访问方式是:\服务端ip用户名,默认访问自己的家目录(该用户对该目录有w权限,且samba对用户的家目录开启了writeable=yes的权限)

  • printable=no:对于共享的目录,是所有人打开目录进行操作的,而不是一个打印机,所以printable一定要设置no;

  • writeable=yes代表对所有用户放行了写权限,write list=user1,user2无效,因为放行的所有用户中已然包含user1和user2;

  • writeable=no,write list=user1,user2代表所有人都没有写权限,唯独user1和user2有;

  • comment = ......   设置共享注译

  • path =    设置共享目录的物理路径

  • valid users = @组名,用户名   设置允许哪些合法组或用户访问

  • public = yes|no  设置共享资源是否能给游客帐号访问

  • browseable = yes|no  设置该共享为隐藏共享

  • writable = yes|no 设置是否允许客户端写入数据

  • hosts allow =  设置允许访问该共享的合法网段或IP

  • 添加smb用户和设置密码:useradd u 、smbpasswd –a 用户

原文地址:https://www.cnblogs.com/charliedaifu/p/10104183.html