William的总结(十一):Linux

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_21918021/article/details/88094480

一、Linux 介绍

1.1什么是Linux

Linux是一套免费使用和自由传播的类Unix操作系统,是一个多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux出现于1991年,是由芬兰赫尔辛基大学学生Linus Torvalds和后来加入的众多爱好者共同开发完成。

企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于当今世界上的任何国家,当今任何国家无权将南极洲纳入其版图。

Linux选择企鹅图案作标志,其含意也是表明:开源的Linux,为全人类共同所有,任何公司无权将其私有。

Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机。
在这里插入图片描述

1.2什么是CentOS

CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件。

CentOS官网:http://www.centos.org/
CentOS搜狐镜像:http://mirrors.sohu.com/centos/
CentOS网易镜像:http://mirrors.163.com/centos/
CentOS北京理工大学镜像:http://mirror.bit.edu.cn/centos/

CentOS 6.4下载地址:
http://mirrors.sohu.com/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-bin-DVD1.iso
http://mirrors.sohu.com/centos/6.4/isos/x86_64/CentOS-6.4-x86_64-bin-DVD2.iso

二、VMware

2.1VMware介绍

VMware(简称VMW)是一个 “虚拟PC”软件公司,主要提供服务器、桌面虚拟化的解决方案。

VMware Workstation是VMV的主要产品,它是一种虚拟机软件,我们常说的VMware其实指的就是它。

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响 ,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类软件。

流行的虚拟机软件有VMware、Virtual Box和Virtual PC,它们都能在Windows系统上虚拟出多个计算机。

WMware Workstation界面如下:

2.2VMware安装(略)

2.3VMware网络模式

2.3.1、三种模式

  • 桥接模式

相当于独立虚拟出一台电脑,和宿主是平行关系。
虚拟机和宿主机使用的是同一块网卡。
在这里插入图片描述

  • Host-only

虚拟机可以访问虚拟机,可以访问宿主机,除此之外的机器不能访问。
宿主机器可以访问虚拟机,其他机器不能访问。
在这里插入图片描述

  • NAT

虚拟机可以访问虚拟机,也可以访问宿主机,也可以访问外网。
宿主机器可以访问虚拟机,其他外部机器不能访问虚拟机。
在这里插入图片描述
网络连接,需要使用网卡进行连接。VMware有三种网络模式,需要三块网卡:

  • 桥接模式,对应的是PC机的物理网卡;
  • 宿主模式,对应的是虚拟的net1网卡;
  • NAT模式,对应的是虚拟的net8网卡;
    在这里插入图片描述

3.2、SSH客户端安装

SSH客户端就是使用了SSH协议来连接远程服务器的客户端。SSH协议就是安全外壳协议,使用该协议连接远程服务器,无需重复输入用户名\密码。

使用这种协议的客户端有多种:SecureCRT 、xshell等。

3.3、Linux目录结构

在这里插入图片描述
在这里插入图片描述

四、Linux常用命令

4.1、操作文件及目录命令

4.1.1、ls

用途:显示文件和目录列表(list)
常用参数:

  • -l:查看列表详细信息。
  • -a:查询文件列表并显示隐藏的目录及文件。

ll:等价于ls -l命令

[root@redis01 ~]# ll
总用量 1528
-rw-r--r--. 1 root root   36582 10月  8 23:25 08.jpg
-rw-------. 1 root root    1639 10月 19 19:56 anaconda-ks.cfg
-rw-r--r--. 1 root root   48546 10月 19 19:56 install.log
-rw-r--r--. 1 root root   10726 10月 19 19:55 install.log.syslog
drwxrwxr-x. 6 root root    4096 10月 28 00:55 redis-3.0.0
-rw-r--r--. 1 root root   57856 10月  8 21:50 redis-3.0.0.gem
-rw-r--r--. 1 root root 1358081 10月  8 21:50 redis-3.0.0.tar.gz
drwxr-xr-x. 2 root root    4096 10月 21 04:55 公共的
drwxr-xr-x. 2 root root    4096 10月 21 04:55 模板
drwxr-xr-x. 2 root root    4096 10月 21 04:55 视频
drwxr-xr-x. 2 root root    4096 10月 21 04:55 图片
drwxr-xr-x. 2 root root    4096 10月 21 04:55 文档
drwxr-xr-x. 2 root root    4096 10月 21 04:55 下载
drwxr-xr-x. 2 root root    4096 10月 21 04:55 音乐
drwxr-xr-x. 2 root root    4096 10月 21 04:55 桌面
[root@redis01 ~]#

4.1.2、pwd

用途:显示当前目录(print working directory)

4.1.3、clear

作用:清屏
Ctrl+L 命令也可以完成清屏操作。

4.1.4、cd

作用:切换目录(change directory)

[root@redis01 local]# pwd
/usr/local
[root@redis01 local]# cd /root/
[root@redis01 ~]# pwd
/root
[root@redis01 ~]#

常见用法:

cd 目录:目录跳转
cd ~、cd:回到当前用户的root目录
cd -:后退上次命令的目录
cd ..:退到上级目录
cd /:到根目录

4.1.5mkdir

用途:创建目录(make directoriy)

常用参数:
-p 父目录不存在情况下先生成父目录 (parents)

mkdir room2/box/xiao-box -p

4.1.6、cp

用途:复制文件或目录(copy)

常用参数:
-r 递归处理,将指定目录下的文件与子目录一并拷贝(recursive)

cp redis-3.0.0 room1/ -r

4.1.7、mv

用途:
移动文件或目录
文件或目录改名(move)

文件重命名:

[root@localhost-0723 house]# mv roo3 room3

移动目录:

[root@redis01 room1]# mv door/ ../room2/

4.1.8、rm

用途:删除文件(remove)

常用参数:
-r 同时删除该目录下的所有文件(recursive)
-f 强制删除文件或目录(force)

[root@localhost-0723 house]# rm -rf room2

4.1.9、touch

用途:创建一个空的文件

[root@localhost-0723 house]# touch file1

4.1.10、tar(重点)

用途:解压缩文件
常用参数:

-c 建立一个压缩文件的参数指令(create)
-x 解开一个压缩文件的参数指令(extract)
-z 是否需要用 gzip 压缩
-v 压缩的过程中显示文件(verbose)
-f 使用档名,在 f 之后要立即接档名(file)

压缩命令:tar -zcvf 压缩之后的文件名 要压缩的文件或目录

tar -zcf tomcat.tar.gz apache-tomcat-7.0.47

解压缩命令:tar –zxf 要解压的文件名称 -C 要解压的目标目录

tar -zxf tomcat.tar.gz -C /usr/local

4.1.11、echo

用途:将内容写入指定文件,如果目标文件不存在,同时会把文件创建出来。
语法:echo 123 >> hello2.txt

用途:显示变量的值
语法:echo $PATH

4.1.12cat

用途:显示文本文件内容 (catenate)

[root@localhost-0723 house]# cat hello2.txt
123

4.1.13、head/tail

用途:查看文本中开头或结尾部分的内容

用法:
head -n 5 a.log 查看a.log文件的前5行
tail -f b.log 循环读取(fellow)

[root@redis01 ~]# head -n 20 install.log
安装 fontpackages-filesystem-1.41-1.1.el6.noarch
warning: fontpackages-filesystem-1.41-1.1.el6.noarch: Header V3 RSA/SHA256 Signature, key ID c105b9de: NOKEY
安装 m17n-db-1.5.5-1.1.el6.noarch
安装 ca-certificates-2010.63-3.el6_1.5.noarch
安装 setup-2.8.14-20.el6.noarch
安装 liberation-fonts-common-1.05.1.20090721-5.el6.noarch
安装 xkeyboard-config-2.6-6.el6.noarch
安装 xml-common-0.6.3-32.el6.noarch
安装 iso-codes-3.16-2.el6.noarch
安装 filesystem-2.4.30-3.el6.i686
安装 dejavu-fonts-common-2.30-2.el6.noarch
安装 lucene-2.3.1-5.9.el6.noarch
安装 control-center-filesystem-2.28.1-38.el6.i686
安装 paktype-fonts-common-2.0-8.el6.noarch
安装 mesa-dri-filesystem-9.0-0.7.el6.i686
安装 autocorr-zh-3.4.5.2-16.1.el6_3.noarch
安装 tzdata-2012j-1.el6.noarch
安装 mozilla-filesystem-1.9-5.1.el6.i686
安装 tzdata-java-2012j-1.el6.noarch
安装 foomatic-db-filesystem-4.0-7.20091126.el6.noarch
[root@redis01 ~]# tail -20f install.log  
安装 nano-2.0.9-7.el6.i686
安装 libitm-4.7.0-5.1.1.el6.i686
安装 attr-2.4.44-7.el6.i686
安装 nfs4-acl-tools-0.3.3-6.el6.i686
安装 scl-utils-20120927-2.el6.i686
安装 wdaemon-0.17-5.el6.i686
安装 mtr-0.75-5.el6.i686
安装 traceroute-2.0.14-2.el6.i686
安装 setserial-2.17-25.el6.i686
安装 vconfig-1.9-8.1.el6.i686
安装 rfkill-0.3-4.el6.i686
安装 rdate-1.4-16.el6.i686
安装 bridge-utils-1.2-10.el6.i686
安装 eject-2.1.5-17.el6.i686
安装 strace-4.5.19-1.17.el6.i686
安装 b43-fwcutter-012-2.2.el6.i686
安装 latrace-0.5.9-2.el6.i686
安装 trace-cmd-1.0.5-10.el6.i686
安装 crash-trace-command-1.0-4.el6.i686
*** FINISHED INSTALLING PACKAGES ***

4.1.14、ln

用途:建立链接文件(link)
常用参数:

-s 对源文件建立符号连接,而非硬连接(symbolic)

注意:源文件删除,建立的硬链接文件依然可用,而建立的软链接文件作废。

[root@redis01 room1]# echo 123 >> f1
[root@redis01 room1]# ln f1 f2
[root@redis01 room1]# ll
总用量 8
-rw-r--r--. 2 root root 4 10月 30 06:27 f1
-rw-r--r--. 2 root root 4 10月 30 06:27 f2
[root@redis01 room1]# ln -s f1 f3
[root@redis01 room1]# ll
总用量 8
-rw-r--r--. 2 root root 4 10月 30 06:27 f1
-rw-r--r--. 2 root root 4 10月 30 06:27 f2
lrwxrwxrwx. 1 root root 2 10月 30 06:27 f3 -> f1

4.2、系统命令

4.2.1find

用途:在文件系统中查找指定的文件
语法:find 目录 -name 文件名称
例子:find /usr/local/ -name "redis.conf"

4.2.2、grep (重点)

用途1:在指定的文本文件中查找指定的字符串
语法:grep 文本内容 文件名称
例子:grep linux install.log

用途2:在前边命令的结果中查找内容
语法:命令 | grep 文本内容
例子:ll | grep install

4.2.3、|

用途:管道
例子:ls -l | grep java

说明:
ls -l 命令的输出,会作为grep java命令的输入。

4.2.4、ps(重点)

用途:显示瞬间的进程状态
常用参数:

-a 显示所有用户的所有进程(包括其它用户)
-u 按用户名和启动时间的顺序来显示进程
-x 显示无控制终端的进程

例子:

ps aux | grep java
ps -ef | grep java

4.2.5、kill(重点)

用途:杀死一个进程
语法:kill pid或者kill -9 pid(强制终止)

4.2.6、su

用途:切换用户
语法:su - 或者 su
例子:su itcast

注意:

  1. 从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
  2. 当需要返回到原来用户时,使用exit指令。
  3. 如果 su – 没有带用户名,则默认切换到root用户。
    在这里插入图片描述

4.2.7、sudo

用途:获取临时目标用户权限,默认是root用户
语法:sudo cd /root

注意:
使用sudo命令获取临时,不需要知道目标用户的密码,只需要输入当前用户密码。

4.2.8、whoami

用途:查看当前用户
语法:whoami

4.2.9、which

用途:查看可执行文件在哪
语法:which 命令
例子:which mkdir

4.2.10、mount

用途:挂载外设、挂载目录
语法:mount <源目录> <目标目录>
例子:mount /usr/local/mnt /mnt/temp

4.2.11、umount

用途:解除挂载
语法:umount <目标目录>
例子:umount /mnt/temp

4.2.12、dirname

用途:显示文件所在目录
语法:dirname <目录/文件>
例子:dirname /usr/local

4.2.13、hostname

用途:查看当前主机名
语法:hostname

4.2.14、top

用途:显示当前系统中耗费资源最多的进程
语法:top

4.2.15、Ctrl+c

用途:退出命令

4.2.16、df

用途:显示文件系统磁盘空间的使用情况

4.2.17、free

用途:显示当前内存和交换空间的使用情况

4.2.18、shutdown

用途:关机/重启
常用参数:
-r 关机后立即重启
-h 关机后不重新启动
例子:

shutdown -r 10		10分钟后重新启动
halt 关机后关闭电源 
reboot 重新启动

4.3、帮助命令

4.3.1、help

用途:查看帮助文档
语法:help 命令
例子:help if

4.4、固定IP网络配置

4.4.1通过界面配置

进入Linux的系统界面,点击右上角的网络连接编辑网络选中要编辑的网卡(比如eth0)点击编辑,出现以下界面:
在这里插入图片描述

4.4.2通过配置文件配置

配置文件路径:/etc/sysconfig/network-scripts/ ifcfg-eth0
网络配置如下:

DEVICE=eth0
TYPE=Ethernet
UUID=b7a77d66-3d3e-40d7-bf4f-16eb5dacf3cb
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
HWADDR=00:0C:29:43:0B:D4
IPADDR=192.168.25.159
PREFIX=24
GATEWAY=192.168.25.2
DNS1=192.168.25.2
LAST_CONNECT=1443527057
~           

4.4.3通过setup命令界面配置

[root@redis01 ~]# setup

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、VIM文本编辑器

vi / vim是Unix / Linux上最常用的文本编辑器而且功能非常强大。

5.1、VIM工作模式

在这里插入图片描述

5.2、插入命令

i 在光标前插入
I 在光标当前行开始插入
I 在光标当前行开始插入
a 在光标后插入
A 在光标当前行末尾插入
o 在光标当前行的下一行插入新行
O 在光标当前行的

5.3、定位命令

:set nu 显示行号
:set nonu 取消行号
gg 到文本的第一行
G 到文本的最后一行
:n 到文本的第n行

5.4、删除命令

x 删除光标所在处字符
nx 删除光标所在处后的n个字符
dd 删除光标所在行。ndd删除n行
dG 删除光标所在行到末尾行的所以内容
D 删除光标所在处到行尾的内容
:n1,n2d 删除指定范围的行

5.5、复制粘贴

yy 复制当前行
p 粘贴

5.6、替换和取消命令

u undo,取消上一步操作
Ctrl + r redo,返回到undo之前
r 替换光标所在处的字符
R 从光标所在处开始替换,按Esc键结束

5.7、退出命令

:q 退出vi(没有做任何修改时)
:q! 强制退出不保存
:w 保存不退出
:wq 保存后退出

六、用户和组账户管理

linux操作系统是一个多用户操作系统,它允许多用户同时登录到系统上并使用资源。系统会根据账户来区分每个用户的文件,进程,任务和工作环境,使得每个用户工作都不受干扰。

6.1、配置文件

保存用户信息的文件:/etc/passwd
保存密码的文件:/etc/shadow
保存用户组的文件:/etc/group
保存用户组密码的文件:/etc/gshadow
用户配置文件:/etc/default/useradd

6.2、用户和用户组关系

每个用户至少属于一个用户组
每个用户组可以包含多个用户
同一个用户组的用户享有该组共有的权限

6.3、操作用户命令

6.3.1、useradd

用途:添加用户
常用参数:

-u 指定组ID(uid)
-g 指定所属的组名(gid)
-G 指定多个组,用逗号“,”分开(Groups)
-c 用户描述(comment)
-e 失效时间(expire date)

命令演示:

[root@redis01 home]# useradd hello2

在这里插入图片描述
增加用户时直接加上组
指令(基本语法)

useradd  –g 用户组 用户名    //增加一个用户 zwj, 直接将他指定到 wudang

在这里插入图片描述

6.3.2、passwd

用途:修改用户密码
语法:passwd 用户名

命令演示:

[root@redis01 home]# passwd hello
更改用户 hello 的密码 。
新的 密码:
无效的密码: 它基于字典单词
无效的密码: 过于简单
重新输入新的 密码:
passwd: 所有的身份验证令牌已经成功更新。
[root@redis01 home]#

6.3.3、usermod

用途:修改用户,即user modify
常用参数:

-l 修改用户名 (login)usermod -l a b(b改为a)
-g 添加组 usermod -g sys tom
-G添加多个组 usermod -G sys,root tom
–L 锁定用户账号密码(Lock)
–U 解锁用户账号(Unlock)

命令演示:

[root@redis01 home]# usermod -l hello3 hello2

6.3.4、userdel

用途:删除用户,即user delete
常用参数:
-r 删除账号时同时删除目录(remove)

命令演示:

[root@redis01 home]# userdel -r hello3

6.3.4、id

用途:查询用户信息指令

id 用户名

命令演示:
案例1:请查询root 信息
在这里插入图片描述

6.4、操作用户组命令

6.4.1、groupadd

用途:添加用户组
常用参数:
-g 指定gid

命令演示:

[root@redis01 home]# groupadd g1
[root@redis01 home]# groupadd -g 333  g2

6.4.2、groupmod

用途:修改用户组
常用参数:
-n 更改组名(new group)

命令演示:

[root@redis01 home]# groupmod -n newg1 g1

在这里插入图片描述

6.4.3、groupdel

用途:删除用户组

命令演示:

[root@redis01 home]# groupdel newg1

在这里插入图片描述

6.4.4、groups

用途:显示用户所属组
语法:groups 用户名

命令演示:

[root@redis01 home]# groups hello
hello : hello

6.4.4、练习

在这里插入图片描述

7、权限管理

7.1、三种基本权限

Linux的三种基本权限如下:

r 读权限(read)
w 写权限(write)
x 执行权限 (execute)

Linux的权限管理策略如下图所示:

在这里插入图片描述

7.2、更改操作权限

语法:chmod [options] mode files

注意:只能[文件属主]或[特权用户]才能进行文件权限的更改。

  • mode
    可以是数字形式
    可以用who opcode permission英文表达式表示。
    注意:可指定多个mode,以逗号分隔。

  • options
    -c,–changes
    只输出被改变文件的信息。
    -f,–silent,–quiet
    当chmod不能改变文件模式时,不通知文件的用户。
    –help
    输出帮助信息。
    -R,–recursive
    可递归遍历子目录,把修改应到目录下所有文件和子目录。

    –reference=filename
    参照filename的权限来设置权限。
    -v,–verbose
    无论修改是否成功,输出每个文件的信息。
    –version
    输出版本信息。

7.2.1、通过who opcode permission英文表达式修改权限

  • who

u:用户
g:组
o:其它
a:所有用户(默认)

  • opcode

+:增加权限
-:删除权限
=:重新分配权限

  • permission

r:读
w:写
x:执行
s:设置用户(或组)的ID号
t:设置粘着位(sticky bit),防止文件或目录被非属主删除
u:用户的当前权限
g:组的当前权限
o:其他用户的当前权限

命令演示:

[root@redis01 ~]# chmod u+x file

7.2.2、通过数字修改权限

可以使用三位[八进制数字]来表示权限,比如:777,751等,就可以表示权限。

第一位数字指定属主的权限。
第二位数字指定用户组的权限。
第三位数字指定其他用户的权限。

每个位置的数字是通过4(读)、2(写)、1(执行)三种数值的和来确定的。
如:
6(4+2)代表有读、写权限。
7(4+2+1)代表有读、写和执行的权限。

还可设置第四位,它位于三位权限序列的前面,第四位数字取值是4,2,1,代表意思如下:
4:执行时设置用户ID,用于授权给基于文件属主的进程,而不是给创建此进程的用户。
2:执行时设置用户组ID,用于授权给基于文件所在组的进程,而不是基于创建此进程的用户。
1:设置粘着位。

命令演示:

[root@redis01 ~]# chmod 751 house

7.2.3、常用修改权限方式

$ chmod u+x file            给file的属主增加执行权限
$ chmod 751 file            给file的属主分配读、写、执行(7)的权限,给file的所在组分配读、执行(5)的权限,给其他用户分配执行(1)的权限
$ chmod u=rwx,g=rx,o=x file      上例的另一种形式
$ chmod =r file                  为所有用户分配读权限
$ chmod 444 file               同上例
$ chmod a-wx,a+r   file     	同上例
$ chmod -R u+r directory       递归地给directory目录下所有文件和子目录的属主分配读的权限
$ chmod 4755                   设置用户ID,给属主分配读、写和执行权限,给组和其他用户分配读、执行的权限,并且该文件除了属主,不能被其用户进行删除或移动操作。

八、常用软件的安装

8.1、rpm软件包管理

RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括RedHat、CentOS、SUSE等Linux的分发版本都有采用,可以算是公认的行业标准了。RPM文件在Linux系统中的安装最为简便。

8.2、rpm命令使用

语法:rpm -ivh gcc-c+±4.4.7-3.el6.x86_64.rpm

常用参数:

i:安装应用程序(install)
e:卸载应用程序(erase)
vh:显示安装进度;(verbose   hash) 
U:升级软件包;(update) 
qa: 显示所有已安装软件包(query all),结合grep命令使用

[root@redis01 ~]# rpm -qa|grep mysql
mysql-libs-5.1.73-5.el6_6.i686
mysql-server-5.1.73-5.el6_6.i686
mysql-5.1.73-5.el6_6.i686
mysql-community-release-el6-5.noarch

8.3、yum命令使用

yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE、CentOS中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
例子(需要上网):
yum install gcc-c++
yum remove gcc-c++
yum update gcc-c++

8.5、防火墙

永久关闭:

[root@bogon bin]# chkconfig iptables off
[root@bogon bin]# chkconfig iptables on

临时关闭:

[root@bogon bin]# service iptables stop
[root@bogon bin]# service iptables start

修改防火墙规则:

[root@bogon bin]# vim /etc/sysconfig/iptables

猜你喜欢

转载自blog.csdn.net/qq_21918021/article/details/88094480