Linux

Linux

一、Linux 简介

1.1 为什么要了解Linux

开源、稳定、漏洞少、靠谱公司都用它。

1.2 Linux是什么

Linux是一套免费试用和自由传播的类Unix操作系统。

1.3 Linux 与 Unix的那些事

1.4 不同时代不同选择

1.5 Linux 家族

各个Linux系统的主要区别

  • 选择不同的内核版本
  • 集成不同的应用程序
  • 定制不同的图形界面

二、VM 与 Linux 的安装

2.1 从哪下载

  • 网易镜像: http://mirrors.163.com/centos/7/isos/
  • 搜狐镜像: http://mirrors.sohu.com/centos/7/isos/

2.2 BIOS中开启虚拟化设备支持

注意:先进行安装,如果出现虚拟化不支持的错误,再进入到BIOS进行设置,部分电脑默

认已经开启。

虚拟化设备支持未开启在安装是会出现如下错误:

2.3 安装虚拟机-组装电脑

安装步骤详见本博客Linux的安装

2.4 安装Linux-装系统

安装步骤详见本博客Linux的安装

2.5 xshell 和 xftp 工具的安装

  • xShell的作用: 远程命令行访问服务器端的Linux系统。

  • xftp的作用 :远程访问及传输文件

  • 扩展: 一个小型云服务网站架构

三、Linux文件与目录结构

3.1 Linux一切皆文件

3.2 目录结构

/bin (/usr/bin、/usr\local\bin)是Binary的缩写, 这个目录存放着最经常使用的命令
/sbin(/usr/sbin 、/usr/local/sbin)s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/home存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/root该目录为系统管理员,也称作超级权限者的用户主目录。
/lib系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件
/etc所有的系统管理所需要的配置文件和子目录
/usr这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与windows下的program files目录。
/boot这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件,自己的安装别放这里
/proc这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/srvservice缩写,该目录存放一些服务启动之后需要提取的数据
/sys这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs
/tmp这个目录是用来存放一些临时文件的。
/dev类似于windows的设备管理器,把所有的硬件用文件的形式存储
/media(centos6)linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/run进程产生的临时文件,虚拟机加载光盘映像在:/run/media/root/ 目录下
/mnt系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将外部的存储挂载在/mnt/上,然后进入该目录就可以查看里的内容了。
/opt这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/usr/local这是另一个给主机额外安装软件所摆放的目录。一般是通过编译源码方式安装的程序。
/var这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

四、VI、VIM 编辑器

4.1 VI、VIM是什么

VI、VIM是Linux系统命令行下的文本编辑器.

通过命令 vi 文件名 或者是 vim 文件名 来使用。

4.2 三种模式

  • 一般模式(默认模式)
  1. 通过vi或者是vim打开文档后默认进入到一般模式,该模式下主要负责查看和一些基础的修剪工作
  2. 常用的操作
dd删除光标当前行
dnd删除n行
u撤销上一步
x删除一个字母,类似于键盘上Delete功能
X删除一个字母,类似于键盘Backspace功能
yy复制光标当前行
p粘贴
dw删除一个词
yw复制一个词
Shift+g移动到页尾
1+Shift+g移动到目标行
N+shift+g移动到第N行
Shift+6移动到行头
Shift+4移动到行尾
  • 编辑模式
  1. 在一般模式下通过字母 i 、a 、 o 进入到编辑模式,进入后左下角会有【插入】的字样.如想退出编辑模式,需要按下【ESC】按键
  2. 常用的操作
i当前光标前录入
a当前光标后录入
o当前光标行的下一行录入
I行首录入
A行尾录入
O当前光标行的上一行录入
  • 命令模式
  1. 在一般模式下输入 / 或者 : 进入命令模式,命令模式一般用于存盘、退出VIM 、显示行号、搜索、批量替换等操作.
  2. 常用的操作
:w保存
:q退出
:!强制执行
:%/s/old字符/new字符批量替换
/要查找的词搜索,n查找下一个,N查找上一个
:set nu显示行号
:set nonu关闭行号
noh取消高亮显示

4.3 三个模式之间的切换关系

4.4 VI、VIM键盘图

五、常用命令

5.1 基本命令

man帮助手册
–help帮助手册
date日期
cal日历
pwd显示当前所在目录
cd切换目录
ls显示当前目录下的内容
grep通过|管道符,配置grep进行过滤筛选
mkdir创建目录 -p :同时创建多级目录
Touch创建文件
rmdir删除一个空目录
rm删除文件或者目录 -rvf:递归删除所有目录内容,有提示 -rf:递归删除所有目录内容,无提示[慎用]
cp复制 -r : 递归复制整个目录 -v:显示复制过程中文件的列表 \cp:强制覆盖不提示
mv重命名或者移动文件 mv oldFileName newFileName 重命名 mv /原目录/原文件 /新目录 移动文件
cat查看文件 cat 文件名 查看轻量级的文本文件 cat 文件1 文件2 连接显示多个文件 cat 文件1 > 文件2 合并为新文件 cat 文件1 >> 文件2 追加
more查看比较长的文件 空格键: 向下翻一页 回车键: 向下翻一行 q:代表立刻离开more ctrl+F 向下滚动一屏 ctrl+B 向上滚动一屏
less同more类似,比more功能更多 pageDown:向下滚动一页 pageUp:向上滚动一页 /字符串: 向下搜索指定字符串 ?字符串:向上搜索执行字符串 n:重复前一个搜索 N:反向重复前一个搜索
tail从尾部开始查看文件,比较适合看日志 -f:跟随查看
history查看历史命令
echo回显,输出 一般在shell脚本中使用较多
find查找文件,提供了丰富的模糊搜索及条件搜索 Find+搜索路径+参数+搜索关键字 按文件名: find /目录/… -name “*.txt”
locate查找文件,基于索引,查询速度更快 通过updatedb来更新索引
ln软链接 Ln -s 原文件或者目录 软链接名
tar压缩文件 、解压缩文件 tar -zcvf xxx.tar.gz xxxx 压缩文件 tar -zxvf xxx.tar.gz 解压缩文件 -c:创建一个新归档 -x:从归档中解出文件 -v:显示详细信息 -f:指定压缩后的文件名 -z:通过gzip过滤归档
zip压缩文件 zip xxx.zip xxxx zip -r xxx.zip 目录/*
unzip解压缩文件 upzip xxx.zip

5.2 磁盘分区类命令

  1. Windows下的磁盘分区

  2. 常用的两种磁盘分区类型

  • mbr

    操作系统要安装在主分区

    只支持4个主分区

    扩展分区占一个主分区

  • gpt(win7 64位以后)

    无限主分区

    支持超大硬盘 3T以上

  1. linux下查看所有设备挂在情况

​ sblk 或者 lsblk -f

  1. 增加一块新硬盘,通过命令进行分区
  • 虚拟机插入新硬盘

    在【虚拟机】菜单中,选择【设置】,然后设备列表里添加硬盘,然后一路【下一步】,中间只有选择磁盘大小的地方需要修改,至到完成。然后重启系统

  • 进行分区

通过 fdisk /dev/sdb 开始对 /sdb进行分区,

m 显示命令列表

p 显示磁盘

n 新增分区

d 删除分区

w 写入并退出分区

分区步骤如下: 开始分区后输入n,新增分区,然后选择p ,分区类型为主分区。两次回车默认剩余全部空间。最后输入w写入分区并退出,若不保存退出输入q。

  • 格式化磁盘

命令: mkfs -t ext4 /dev/sdb1

  • 挂载

将一个分区与一个目录联系起来,

mount 设备名称 挂载目录

例如: mount /dev/sdb1 /newdisk

umount 设备名称 或者 挂载目录

例如: umount /dev/sdb1 或者 umount /newdisk

注意: 用命令行挂载重启后会失效

  • 永久挂载

通过修改/etc/fstab实现挂载

添加完成后 执行mount –a 即刻生效

/etc/fatab文件参数介绍

第一列:磁盘设备文件或者该设备的Label或者UUID

第二列: 设备的挂载点,就是你要挂载到哪个目录下

第三列: 磁盘文件系统的格式,

包括ext2、ext3、reiserfs、nfs、vfat等

第四列: 文件系统的参数 ,defaults代表同时具有

rw,suid,dev,exec,auto,nouser,async等默认参数的设置

第五列: 能否被dump备份命令作用

0 代表不要做dump备份

1 代表要每天进行dump的操作

2 代表不定日期的进行dump操作

第六列: 是否检验扇区

0 不要检验

1 最早检验(一般根目录会选择)

2 1级别检验完成之后进行检验

5.3 磁盘情况查询

df -h 查询系统整体磁盘使用情况

du -h /目录

查询指定目录的磁盘占用情况,默认为当前目录

-s 指定目录占用大小汇总

-h 带计量单位

-a 含文件

–max-depth=1 子目录深度

-c 列出明细的同时,增加汇总值

例: du -ach --max-depth=1 /opt

5.4 网络配置类

  1. ifconfig 查看网络配置
  2. 如何修改ip
  • 图形化操作

  • 命令行方式 vi /etc/sysconfig/network-scripts/ifcfg-ens33

DEVICE=eth0 #接口名(设备,网卡)

BOOTPROTO=none # IP的配置方法[none|static|bootp|dhcp](引导时不使用协

议|静态分配IP|BOOTP协议|DHCP 协议)

BROADCAST=192.168.1.255 #广播地址

HWADDR=00:0C:2x:6x:0x:xx #MAC地址

IPADDR=192.168.1.23 #IP地址

NETMASK=255.255.255.0 # 网络掩码

NETWORK=192.168.1.0 #网络地址

ONBOOT=yes #系统启动的时候网络接口是否有效(yes/no)

TYPE=Ethernet #网络类型(通常是Ethemet)

5.5 进程类

  1. ps(process)

  2. ps -aux

    -a : 显示当前总段的所有进行信息

    -u : 以用户的格式显示进程信息

    -x : 显示后台进程运行的参数

  • 详细内容解释

    ps –aux|grep xxx

    System V展示风格

    USER:用户名称

    PID:进程号

    %CPU:进程占用CPU的百分比

    %MEM:进程占用物理内存的百分比

    VSZ:进程占用的虚拟内存大小(单位:KB)

    RSS:进程占用的物理内存大小(单位:KB)

    TT:终端名称,缩写

    STAT:进程状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等

    STARTED:进程的启动时间

    TIME:CPU时间,即进程使用CPU的总时间

    COMMAND:启动进程所用的命令和参数,如果过长会被截断显示

​ 3.ps -ef

​ ps -ef是以全格式显示当前所有的进程

​ -e 显示所有进程。-f 全格式。

​ ps -ef|grep xxx

​ 是BSD风格

​ UID:用户ID

​ PID:进程ID

​ PPID:父进程ID

​ C:CPU用于计算执行优先级的因子。数值越大,表明进程是CPU密集型运算,执行优先级会降低;数值越小,表明进程是I/O密集型运算,执行优先级会提高

​ STIME:进程启动的时间

​ TTY:完整的终端名称

​ TIME:CPU时间

​ CMD:启动进程所用的命令和参数

  1. kill pid 杀死指定pid对应的进程.

    -9: 强行杀死进程

5.6 服务类

  1. service(CentOS6)
  • 注册在系统中的标准化程序

  • 有方便统一的管理方式(常用的方法)

    service 服务名 start

    service 服务名 stop

    service 服务名 restart

    service 服务名 reload

    service 服务名 status

  • 查看服务的方法 /etc/init.d/服务名

  • 通过chkconfig 命令设置自启动

    查看服务 chkconfig --list|grep xxx

    chkconfig --level 5 服务名 on

  • 运行级别

    查看默认级别: vi /etc/inittab

    Linux系统有7种运行级别(runlevel):常用的是级别3和5

    运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动

    运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆

    运行级别2:多用户状态(没有NFS),不支持网络

    运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式

    运行级别4:系统未使用,保留

    运行级别5:X11控制台,登陆后进入图形GUI模式

    运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

  1. systemctl(CentOS7)
  • 注册在系统中的标准化程序
  • 有方便统一的管理方式(常用的方法)

​ systemctl start 服务名(xxxx.service)

​ systemctl restart 服务名(xxxx.service)

​ systemctl stop 服务名(xxxx.service)

​ systemctl reload 服务名(xxxx.service)

​ systemctl status 服务名(xxxx.service)

  • 查看服务的方法 /usr/lib/systemd/system
  • 查看服务的命令

​ systemctl list-unit-files

​ systemctl --type service

  • 通过systemctl 命令设置自启动

​ 自启动 systemctl enable service_name

​ 不自启动systemctl disable service_name

  • 运行级别

    查看默认级别: vim /etc/inittab

    Centos7运行级别简化为:

    multi-user.target 等价于原运行级别3(多用户有网,无图形界面)

    multi-user.target 等价于原运行级别5(多用户有网,有图形界面)

5.7 netstat

查看系统的网络情况

-an 按一定顺序排列输出

-p 显示哪个进程在调用

netstat –anp|grep 8080 查看占用8080端口的进程

六、Linux 用户与权限管理

6.1 用户

  1. Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
  2. 对用户的操作

​ 新增用户:useradd 新用户名

​ 设置密码: passwd 用户名

​ 用户是否存在:id 用户名

​ 切换用户:su – 切换用户名

​ 查看当前用户/登录用户:whoami/ who am I

​ 删除用户:userdel

6.2 用户组

  1. 类似于角色,系统可以对有共性的多个用户进行统一的管理。
  2. 对用户组的操作

​ 新增组:groupadd 组名

​ 删除组:groupdel 组名

​ 修改用户的组:usermod –g 用户组 用户名

​ 增加用户时直接加上组:useradd –g 用户组 用户名

6.3 系统中用户和组的相关文件

1.用户(user)的配置文件: /etc/passwd

​ 每行的含义:用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

2.口令的配置文件: /etc/shadow

​ 每行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时 间:不活动时间:失效时间:标志

3.组(group)的配置文件: /etc/group

​ 每行含义:组名:口令:组标识号:组内用户列表

6.4 文件的权限管理

  1. 再说 ls -l

  • 0-9位说明

    第0位确定文件类型(d, - , l , c , b)

    第1-3位确定所有者(该文件的所有者)拥有该文件的权限。—User

    第4-6位确定所属组(同用户组的)拥有该文件的权限,—Group

    第7-9位确定其他用户拥有该文件的权限 —Other

  • 作用到文件

​ [ r ]代表可读(read): 可以读取,查看

​ [ w ]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件 是对该文件所在的目录有写权限,才能删除该文件.

​ [ x ]代表可执行(execute):可以被系统执行

  • 作用到目录

​ [ r ]代表可读(read): 可以读取,ls查看目录内容

​ [ w ]代表可写(write): 可以修改,目录内创建+删除+重命名目录

​ [ x ]代表可执行(execute):可以进入该目录

  1. chmod

  • 第一种方式:+ 、-、= 变更权限

​ u:所有者 g:所有组 o:其他人

​ a:所有人(u、g、o的总和)

​ chmod u=rwx,g=rx,o=x 文件目录名

​ chmod o+w 文件目录名

​ chmod a-x 文件目录名

  • 第二种方式:通过数字变更权限

​ r=4 w=2 x=1 rwx=4+2+1=7

​ chmod u=rwx,g=rx,o=x 文件目录名

​ 相当于 chmod 751 文件目录名

  1. chown

​ chown newowner file 改变文件的所有者

​ chown newowner:newgroup file 改变用户的所有者和所有组

​ -R 如果是目录 则使其下所有子文件或目录递归生效

  1. chgrp

​ chgrp newgroup file 改变文件的所有组

七、rpm 与 yum

7.1 rpm

  1. RPM(RedHat Package Manager),Rethat软件包管理工具,类似windows里面的setup.exe是Linux这系列操作系统里面的打包安装工具,它虽然是RedHat的标志,但理念是通用的。

  2. 查询已安装的rpm列表 rpm –qa|grep xx

  3. rpm包的名称:firefox-52.5.0-1.el7.centos.x86_64

​ 名称:firefox

​ 版本号:52.6.0-1

​ 适用操作系统: el7.centos.x86_64

​ 表示centos7.x的64位系统。

  1. 安装rpm

​ rpm –ivh rpm包名

​ -i 安装 install

​ -v 查看信息

​ -h 查看进度条

  1. 卸载rpm

​ rpm -e RPM软件包

7.2 yum

  1. 类似于我们java开发中的maven工具,可以从镜像网站上下载应用程序,并直接安装
  2. Yum 操作

​ yum list|grep xx软件列表

​ yum install xxx 下载安装

第8章 搭建开发环境

8.1 安装JDK

  1. 将JDK解压缩到opt目录下

  2. 配置环境变量 , vim /etc/profile

    JAVA_HOME=/opt/jdk1.8.0_152

    PATH=/opt/jdk1.8.0_152/bin:$PATH

    export JAVA_HOME PATH

  3. 配置完成后执行如下操作

    安装完成注销重新登录一下

    source /etc/profile

    重启系统[最靠谱]

8.2 安装Tomcat

  1. 解压缩到/opt
  2. 进入到Tomcat目录下的bin目录中,启动tomcat ./startup.sh

8.3 安装Eclipse

8.4 安装MySQL

  1. 检查工作
  • CentOS6

    rpm -qa|grep mysql

    如果存在mysql-libs的旧版本包如下:

    请先执行卸载命令:rpm -e --nodeps mysql-libs

  • CentOS7

    rpm -qa|grep mariadb

    如果存在如下:

    请先执行卸载命令:rpm -e --nodeps mariadb-libs

  • 检查/tmp文件夹权限

    执行 :chmod -R 777 /tmp

  1. 安装MySQL
  • 拷贝安装包到opt目录下

    MySQL-client-5.5.54-1.linux2.6.x86_64.rpm

    MySQL-server-5.5.54-1.linux2.6.x86_64.rpm

  • 执行如下命令进行安装

    rpm -ivh MySQL-client-5.5.54-1.linux2.6.x86_64.rpm

    rpm -ivh MySQL-server-5.5.54-1.linux2.6.x86_64.rpm

  1. 检查安装是否成功
  • 安装完成后查看MySQL的版本

    执行 mysqladmin –version,如果打印出消息,即为成功

    或者通过rpm查询

    rpm –qa|grep –i mysql(-i 表示忽略大小写)

  1. MySQL服务的启停

​ 启动: service mysql start

​ 停止: service mysql stop

  1. 设置root用户的密码

​ mysqladmin -u root password ‘123123’

  1. 登录MySQL

​ mysql -uroot -p123123

  1. 建库

​ create database 库名

  1. 建表

​ create table 表名 (字段名 字段类型(长度)约束 …)

  1. 字符集问题
  • 查看字符集 show variables like 'character%’;

  • 查看MySQL的安装位置.

  • 修改字符集

    将/usr/share/mysql/中的my-huge.cnf 拷贝到/etc/下,改名为my.cnf

    tips: mysql启动时,会优先读取/etc/my.cnf文件。

    在[client] [mysqld] [mysql]中添加相关的字符集设置

    [client]

    default-character-set=utf8

    [mysqld]

    character_set_server=utf8

    character_set_client=utf8

    collation-server=utf8_general_ci

    [mysql]

    default-character-set=utf8

    重启MySQL服务,查看字符集

    service mysql restart

  • 修改已有库表的字符集

    修改库的字符集

    alter database 库名 character set ‘utf8’;

    修改表的字符集

    alter table 表名 convert to character set ‘utf8’;

  1. 远程访问
  • MySQL默认的root用户只允许本机登录,远程通过SQLyog工具不能登录.

  • 查看MySQL mysql库中的用户表

    列显示: select * from user\G;

    查询常用字段: select host,user,password,select_priv from mysql.user;

  • 创建可以远程访问的root用户并授予所有权限

    grant all privileges on *.* to root@‘%’ identified by '123123‘;

  • 修改用户的密码

    修改当前用户的密码

    set password =password('123456’)

    修改某个用户的密码

    update mysql.user set password=password(‘123456’) where user=‘li4’;

  • 注意: 所有通过user表的修改,必须使用flush privileges 命令才能生效.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值