2019-11-18 15:17:31 qq_41030935 阅读数 55
  • 马哥Linux教程-Linux操作系统基础由浅入深全面讲解1

    本课程为全新马哥Linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    19684 人正在学习 去看看 马永亮

Linux-C P1 Linux基础与Vi操作

Linux基础

Unix与Linux

什么是Linux,怎么又多出了一个Unix

Unix是什么?


在知道它是什么之前,我们先来了解一下它是怎么来的
1969年,在kenthompson在AT&T贝尔实验室出生,说的是汇编语言
1973年,KenThompson和DennisRitchie教会了它C语言,让它走了出去正式面向大众。

Unix是干什么的?

首先它是一个操作系统,除了可以作为网络操作系统,还可以作为单机操作系统使用。Unix作为一种开发平台和台式操作系统获得了广泛使用,目前主要用于工程应用和科学计算等领域

现在UNIX系统的用户日益增多,应用范围也日益扩大。无论在各种类型的微型机、小型机,还是在中、大型计算机,以及在计算机工作站甚至个人计算机上,很多都已配有UNIX系统。不仅新推出的机型配有UNIX系统,而且一些历史较久的生产厂商,也竞相将原有机型配上UNIX系统以便打开销路、争取市场。

那么Linux呢?

在这里插入图片描述
当然,Linux也是一种操作系统,但是比Unix出生的要晚。
1991年,芬兰赫尔辛基大学的学生Linux Torvals为了能在家里的PC机上使用与学校一样的操作系统,开始编写了类UNIX.

是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统,反正很好用就对了。。。

Linux的兄弟姐妹

在这里插入图片描述

Red Hat(红帽)公司(NYSE:RHT)是一家开源解决方案供应商,也是标准普尔500指数成员,是我们比较熟知的一个Linux发行版本

在这里插入图片描述

CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定释出的源代码所编译而成,跟Red Hat好像还挺亲的

在这里插入图片描述

接下来就是我们之后一直会用的Ubunto,Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu"一词,意思是“人性”“我的存在是因为大家的存在",是非洲传统的一种价值观。
从前人们认为Linux难以安装、难以使用,在Ubuntu出现后这些都成为了历史。
哈哈,所以我们就开始使用它吧!

Linux基本操作

在好好的玩耍之前

在快乐的玩耍之前我们首先需要一个Ubunto系统,这个吗?去官网下或者自行百度。
然后呢?有了它之后,我们的PC一般都是windows的吧!所以我们需要一个虚拟机来运行我们的Ubunto
在这里插入图片描述

好的,我们就下了VMware(软件安装管家可以了解一下),然后一顿操作之后我们就可以在虚拟机上运行我们的Ubunto了,好的我们可以开始玩耍了。
在这里插入图片描述
在这里插入图片描述
VMware:

命令终端

然后我们就进入到Ubunto的操作界面了!!!

好兴奋啊!我们要开始编程了吗?
还没,我们要先进入命令终端,知道怎么使用它之后。。。
因为是图像界面吗,所以可以直接点击打开
在这里插入图片描述
在这里插入图片描述
你是不是觉得这样一点都不高级,一点都不快捷啊
所以我们来点有趣的
Ctrl + Alt + T
我们就能打开一个终端了(Terminal是终端的英文容易记快捷键哦TTTTT)
在这里插入图片描述
这样我们就又打开了一个终端
接着我们可以再用用
Ctrl + Shift +T
我们就在同一终端打开了一个标签
在这里插入图片描述
好的,知道如何花式打开终端之后,我们就要开始看看如何使用终端

基本操作

在这里插入图片描述

目录处理(pwd/cd/ls)
内容
命令名称 pwd
命令格式 pwd [OPTION] …
命令功能 用于显示当前的工作目录
OPTION -L 从环境中使用pwd,即使它包含符号链接
-P 避免所有符号链接
–help 显示该帮助并退出
–version 显示版本信息并退出

在使用中pwd的常见用法就是用来查看当前所在目录
在这里插入图片描述


内容
命令名称 cd
命令格式 cd [dirname]
命令功能 用于切换当前目录到目标目录
dirname 要切换的目标目录

cd的基本用法实例
回到家目录

cd

回到上一级目录

cd ..

回到上一目录

cd -

到指定目录

cd ./pyystd/level2

在这里插入图片描述


内容
命令名称 ls
命令格式 ls [OPTION] [FILE]
命令功能 显示指定工作目录下的内容
OPTION -a 显示所有文件及目录
-l 除文件名称外,将文件型态、权限、拥有者、文件大小等资讯详细列出
-r 将文件以相反次序显示(原定依英文字母次序)
-t 将文件依建立时间之先后次序列出
-R 若目录下有文件,则以下之文件亦皆依序列出
FILE 指定目录(为空是当前目录)

ls的基本用法实例
显示当前目录内容

ls

显示以d开头的目录及目录下的所有文件

ls d*

显示所有文件目录

ls -a

若目录下有文件,则依次列出

ls -l

列出目录下文件及其详细信息

ls -r

以相反次序显示目录

ls -t

建立时间先后顺序显示

ls -R

列出指定地址里的目录

ls ./day2

在这里插入图片描述

在这里插入图片描述

查看文件内容(cat/head/tail)
内容
命令名称 cat
命令格式 cat [OPTION] [FILE]
命令功能
OPTION -n 由 1 开始对所有输出的行数编号
-b 和 -n 相似,只不过对于空白行不编号
-s 当遇到有连续两行以上的空白行,就代换为一行的空白行
FILE 指定目录(为空是当前目录)

cat基本用法实例
显示文件内容

cat hello.c

对文件进行行编号显示

cat -n hello.c

对文件进行行编号显示,空行不标号

cat -b hello.c

当遇到有连续两行以上的空白行,就代换为一行的空白行

cat -b hello.c

在这里插入图片描述


内容
命令名称 head
命令格式 head [OPTION] [FILE]
命令功能 连接文件并打印从头开始的指定内容到标准输出设备上
OPTION -c 打印每个文件的前c个字节
-n 打印每个文件的前n行内容
-q 不显示处理信息
-v 显示详细的处理信息
FILE 指定目录(为空是当前目录)

head基本用法实例
默认显示文件前10行

head s2.c

显示文件前100字节

head -c 100 s2.c

显示文件前20行

head -n 20 s2.c

显示详细的处理信息再默认显示前10行

head -v s2.c

在这里插入图片描述


内容
命令名称 tail
命令格式 tail [OPTION] [FILE]
命令功能 连接文件并打印从后开始的指定内容到标准输出设备上
OPTION -c 打印每个文件的后c个字节
-n 打印每个文件的后n行内容
-q 不显示处理信息
-v 显示详细的处理信息
FILE 指定目录(为空是当前目录)

tail的基本用法实例

默认显示文件后10行内容

tail s2.c

显示文件后200字符

tail -c 200 s2.c

显示文件后20行

tail -n 20 s2.c

显示文件的详细信息

tail -v s2.c

在这里插入图片描述

文件处理(touch/rm/mv/cp)
内容
命令名称 touch
命令格式 touch [OPTION] [FILE]
命令功能 创建一个文件或修改文件的属性
OPTION -a 改变档案的读取时间记录
-m 改变档案的修改时间记录
-c 假如目的档案不存在,不会建立新的档案
-f 不使用,是为了与其他 unix 系统的相容性而保留
-r 使用参考档的时间记录,与 --file 的效果一样
-d 设定时间与日期,可以使用各种不同的格式
-t 设定档案的时间记录
FILE 指定目录(为空是当前目录)

touch的基本用法实例
创建文件

touch a.c

在这里插入图片描述


内容
命令名称 rm
命令格式 rm [OPTION] [FILE]
命令功能 删除一个文件或目录
OPTION -i 删除前逐一询问确认
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认
-r 将目录及以下之档案亦逐一删除(用于删除目录)
FILE 指定目录(为空是当前目录)

rm的基本用法实例

删除文件

rm a.c

删除文件时查询

rm -i a.c

删除文件夹

rm -rf afile

在这里插入图片描述


内容
命令名称 mv
命令格式 mv [OPTION] 文件名 文件名 将源文件名改为目标文件名
mv [OPTION] 文件名 目录名 将文件移动到目标目录
mv [OPTION] 目录名 目录名 目标目录已存在,将源目录移动到目标目录
命令功能 用来为文件或目录改名或将文件或目录移入其他位置
OPTION -i 若指定目录已有同名文件,则先询问是否覆盖旧文件
-f 在mv操作要覆盖某已有的目标文件时不给任何指示

mv的基本用法实例
将文件的文件名aaa改为bbb

mv aaa bbb

将文件aaa移到unit4目录下

mv aaa ./unit4

将目录aaa移到unit4目录下

mv ./aaa ./unit4

在这里插入图片描述


内容
命令名称 cp
命令格式 cp [OPTION] sourse dest
命令功能 用于复制文件或目录
OPTION -a 此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容
-d 复制时保留链接
-f 覆盖已经存在的目标文件而不给出提示
-i 与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖
-p 除复制文件的内容外,还把修改时间和访问权限也复制到新文件中
-r 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件
-l 不复制文件,只是生成链接文件
sourse 源文件地址
dest 目标文件地址

cp的基本用法实例
复制文件aaa到unit1目录

cp aaa ./unit1

在这里插入图片描述

复制目录aaa到unit1目录

cp -r aaa ./unit1

在这里插入图片描述

创建文件夹(mkdir)
内容
命令名称 mkdir
命令格式 mkdir [OPTION] dirname
命令功能 建立名为dirname的子目录
OPTION -m 设置建立模式
-p 确保目录名称存在,不存在的就建一个
-v 为每个创建的文件夹打印一条消息
dirname 文件夹的名称

mkdir的基本用法实例
创建文件夹

mkdir aaa

在这里插入图片描述

帮助文档(man)
内容
命令名称 man
命令格式 man [章节] [内容]
命令功能 在线参考手册
章节
1 标准用户命令
2 系统调用
3 库函数
4 特殊文件(设备文件)的访问入口
5 文件格式(配置文件的语法),指定程序的运行特性
6 游戏
7 杂项
8 管理命令
9 跟kernel有关的文件
内容 需要查询帮助的内容
手册格式 NAME 命令名称及功能简要说明
SYNOPSIS 用法说明,包括可用的选项
DESRIPTION 命令功能的详细说明,可能包括每一个选项的意义
OPTIONS 说明每一项的意义
FILES 此命令相关的配置文件
BUGS
EXAMPLES 使用示例
SEE ALSO 另外参照

man 的基本用法实例
查询ls参考手册

man ls

在这里插入图片描述

对了,记得按q键退出帮助查询界面哦


vim由于要讲的东西很多,我们就单独放在后面详细讲讲
不过这里我可以先查查它的参数手册

man vi

在这里插入图片描述

vi操作

vi是什么呢?
在上一节中我们已经通过man命令查看一下它的参考手册,但是还是一头雾水是不是。
现在我们就来正式介绍它
我们的vi编辑器
vi编辑器是所有Unix及Linux系统标准的编辑器,它的强大不逊色于任何最新的文本编辑器
下面是它的键盘图欣赏一下(瑟瑟发抖)
在这里插入图片描述
当然这里不会讲解所有的命令,会讲解一些常用和好用的命令,其他的大家可以自己去扩展,有机会以后补充哦(主要是有些作者其实也不太会用-


好的,好的,我们进入正题,下面的思维导图给大家理清了整个结构和我要讲解的内容,大家可以先大致了解一下vi的一些基本操作
在这里插入图片描述
可以看出在vi编辑器下,我们大致可以分为三种模式,也就是命令行模式(Command mode)底行模式(Last line mode)输入模式(Insert mode)


命令行模式(Command mode):在命令行模式下用户可以输入命令来控制屏幕光标的移动,删除字符、单词或行,移动复制某区段,也可以进入到底行模式或者输入模式
在这里插入图片描述


底行模式(Last line mode):用户可以将文件保存或退出vi,也可以设置编辑环境,如查找字符串、显示行号等。
在这里插入图片描述


输入模式(Insert mode):用户只有在这个模式下才可以进行字符串输入
在这里插入图片描述

刚刚了解了三种模式,但是我们怎么才能进入vi编辑器呢?我们又该如何在不同的模式之间进行切换呢?不同模式又该如何使用呢?
可怕的三连问可难不倒我,现在就来一一进行解答

模式切换

在这里插入图片描述

首先让我们看看该如何进入和退出vi编辑器

进入和退出Vi编辑模式

进入vi编辑器
让我们先来到熟悉的命令终端
在这里插入图片描述
进入vi编辑器

vi test1.c

在这里插入图片描述
这样 我们就进入到vi编辑器了,同时当我们进入到vi编辑器之后,我们所处的默认模式就是命令行模式
除了这么直接的进入方法之外,还可以稍微扩展一下
在命令终端输入

vi test1.c +3

在这里插入图片描述
这样在我们进入vi编辑器的同时,光标会定位到指定的位置,这种用法一般在进行改错的时候比较常用,某行出了问题可以直接跳转过去(是不是很方便啊!!!)
在这里插入图片描述

退出vi编辑器
既然已经进来了,现在就来看看怎么出去
出去方法也有好几种,看你想怎么出去咯


普通的编辑结束,退出vi
在这里插入图片描述
这样就退出到命令终端了
在这里插入图片描述


不保存编辑过的文档,退出vi
在这里插入图片描述
在这里插入图片描述


保存文档
在这里插入图片描述
在这里插入图片描述


保存文档并退出
关于保存文档有两种方法,效果都是一样的,大家可以根据爱好自行选择使用
在这里插入图片描述
在这里插入图片描述

命令行模式(或底行模式)与输入模式切换

命令行模式(底行模式)——> 输入模式
在正式介绍之前,我们先来看个表格

指令 作用
a 从光标所在位置后面开始新增资料,光标后的资料随新增资料向后移动
A 从光标所在列最后面的地方开始新增资料
i 从光标所在位置前面开始插入资料,光标后的资料随新增资料向后移动
I 从光标所在列的第一个非空白字符前面开始输入资料
o 在光标所在列下新增一列,并进入输入模式
O 在光标所在列上方新增一列,并进入输入模式

看过之后对于进入输入模式应该有了初步了解,接下来就来详细说说
在这里插入图片描述
在命令行模式下输入a
在这里插入图片描述
在命令行模式下输入A
在这里插入图片描述


然后我们在同样的位置
在命令行模式下输入i
在这里插入图片描述
在命令行模式下输入I
在这里插入图片描述
使用这个命令是不是觉得很方便添加注释


在命令行模式下输入o
在这里插入图片描述
在命令行模式下输入O
在这里插入图片描述


好的这里我们总结一下,方便大家记忆
在这里插入图片描述

输入模式——>命令行模式(底行模式)

相对于命令行模式(底行模式)——> 输入模式,那么切换回去就相对简单了
在这里插入图片描述
只需要输入ESC(键盘左上角的那个)就能回到命令行模式
在这里插入图片描述

命令行模式与底行模式切换

在vi编辑器下,这两个模式的区别其实不大,只需要输入:,命令行模式就会切换到底行模式等待底行命令的输入
在这里插入图片描述
光标就会移动到底行
是不是很简单呢!

介绍完模式之间的切换,我们来看看各个模式都能干什么解决最后一个问题

模式操作

在这里插入图片描述
我们先通过思维导图来初步了解一下

命令行模式

在这里插入图片描述

删除
如果我们想在命令行模式对内容进行删除操作
那么就输入s,删除光标所在的字符,并进入输入模式
在这里插入图片描述
这样就完成了字符的删除以及模式的切换
在命令行模式输入S,删除光标所在的行,并进入输入模式
在这里插入图片描述

指令 作用
s 删除光标所在的字符,并进入输入模式
S 删除光标所在的行,并进入输入模式

剪切
在介绍剪切之前需要先介绍两个简单的命令
这两个命令使用,才能更好的观察剪切命令的使用效果
为了演示效果我们假设已经复制了该行
一个是p,将缓冲区的字符黏贴到光标所在的位置
在这里插入图片描述
一个是u,取消上一次的文本编辑操作
在这里插入图片描述
我们之前复制的操作就被取消了,并在底行给出了信息

命令 作用
p 将缓冲区的字符黏贴到光标所在的位置
u 取消上一次的文本编辑操作

介绍完他们开始正式介绍剪切
在这里插入图片描述
在命令行模式输入nx,剪切从光标所在的字符开始的n个字符
在这里插入图片描述
在命令行模式输入ncb,剪切光标所在的前n个单词
在这里插入图片描述
在命令行模式输入ncw,剪切光标所在的后n个单词
在这里插入图片描述
在命令行模式输入c$,剪切从光标所在的字符到行尾的所有字符
在这里插入图片描述
在命令行模式输入ndd,剪切自光标所在的行开始的n行,到结尾不足n行,则至结尾
在这里插入图片描述

命令 作用
nx 剪切从光标所在的字符开始的n个字符
ncb 剪切光标所在的前n个单词
ncw 剪切光标所在的后n个单词
c$ 剪切从光标所在的字符到行尾的所有字符
ndd 剪切自光标所在的行开始的n行,到结尾不足n行,则至结尾

修改
修改的命令一共有两个,也比较简单
在这里插入图片描述
在命令行模式输入** r** 待修改字符,修改光标所在的字符
在这里插入图片描述
在命令行模式输入R,进入取代状态,直到输入ESC退出
在这里插入图片描述
这个命令的好处是一次命令能进行多字符修改

命令 作用
r 待修改字符,修改光标所在的字符
R 进入取代状态,直到输入ESC退出

复制
复制命令与剪切命令很类似,选取内容不会消息,而是复制了一份
在这里插入图片描述
在命令行模式下输入nyb,复制光标所在的前n个单词
在这里插入图片描述
在命令行模式下输入nyw,复制光标所在的后n个单词
在这里插入图片描述

在命令行模式下输入y$,复制从光标所在的字符到行尾的所在字符
在这里插入图片描述

在命令行模式下输入nyy,复制光标自所在的行开始,向下n行
在这里插入图片描述

命令 作用
nyb 复制光标所在的前n个单词
nyw 复制光标所在的后n个单词
y$ 复制从光标所在的字符到行尾的所在字符
nyy 复制光标自所在的行开始,向下n行

光标移动
关于光标移动的内容有点多,这里就不一一讲解,下面给出功能列表

指令 作用 指令 作用
0 移动到光标所在行的最前面 h 光标向前移动一个字符
$ 移动到光标所在行的最后面 l 光标向后移动一个字符
Ctrl+d 光标向下移动半页 k 光标向上移动一行
Ctrl+f 光标向下移动一页 j 光标向下移动一行
H 光标移动到当前屏幕的第一列第一列 e 移动到下一个字的最后一个字母
gg 光标移动到当前屏幕的第一行第一列 ^ 移动到光标所在行的第一个非空白字符
M 光标移动到当前屏幕中间行的第一列 n- 向上移动n行
L 光标移动到当前屏幕最后行的第一列 n+ 向下移动n行
b 移动到上一个字的第一个字母 nG 移动到第n行
w 移动到下一个字的第一个字母 :n 光标移动到第n行

底行模式

查找
在命令行模式下输入/ <要查找的字符>或?<要查找的字符>,查找字符
在这里插入图片描述
在这里插入图片描述
就会高亮显示我们查找的内容
在这里插入图片描述

替换
在命令行模式下输入: range s/string1/string2/gc,替换字符
在这里插入图片描述
具体的参数说明,将在后面表格给出

行号显示
在命令行模式下输入set nu或set number,显示行号
在这里插入图片描述
在命令行模式下输入set nonu或set nonumber,隐藏行号
在这里插入图片描述

分类 命令 作用
查找 / <要查找的字符> 查找字符
?<要查找的字符> 查找字符
替换 range s/string1/string2/gc 替换字符:range要替换的范围(%所有行,.当前行,$最末行)s:转入替换模式 string1查找的内容 string2替换成的内容g只替换第一字符c替换前询问
行号显示 set nu或set number 显示行号
set nonu或set nonumber 隐藏行号

输入模式

输入模式就是正常程序编写的操作,这里就不多做讲解了

在这里插入图片描述

总结

梳理

本文主要讲了什么是Linux,什么是Vi编辑器;同时详细的讲解了如何进行基本的Linux操作和Vi操作。希望能给读者带来帮助

更多内容

Linux-C P2 数据类型

Linux-C P3 运算符和表达式

Linux-C P4 输入输出

Linux-C P5 控制语句

Linux-C P6 数组

Linux-C P7 指针

Linux-C P8 函数

Linux-C P9 内存管理

Linux-C P10 结构体细讲

2013-10-28 23:11:52 seekcreation 阅读数 5158
  • 马哥Linux教程-Linux操作系统基础由浅入深全面讲解1

    本课程为全新马哥Linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    19684 人正在学习 去看看 马永亮

1  Linux普通到root用户切换

1.1 Linux中的用户切换:su和su - 的区别

大部分Linux发行版的默认账户是普通用户,而更改系统文件或者执行某些命令,需要root身份才能进行,这就需要从当前用户切换到root用户,Linux中切换用户的命令是su或su -,下面就su命令和su -命令最大的本质区别给大家详解一下:

前者只是切换了root身份,但Shell环境仍然是普通用户的Shell,而后者连用户和Shell环境一起切换成root身份了。只有切换了Shell环境才不会出现PATH环境变量错误。su切换成root用户以后,pwd一下,发现工作目录仍然是普通用户的工作目录;而用su -命令切换以后,工作目录变成root的工作目录了。用echo $PATH命令看一下su和su - 以后的环境变量有何不同。以此类推,要从当前用户切换到其它用户也一样,应该使用su -命令。

打个比方:在普通用户下输入:

$pwd   /home/test (当前用户目录)

$su  ****** (输入密码)

#pwd (再次查看路径)

/home/test (还是当前用户目录)

但是如果换成su-的话结果如下:

$pwd

/home/test(当前用户目录)

$su -

****** (输入密码)

#pwd (再次查看路径)

 

/root (切换到超级用户目录)

1.2、创建root用户终端输入:sudo passwd root

******(输入原先的root口令)

 

******(输入新的root口令,可以保持原样。我就保持的原样)

 

 ******(再次输入新的root口令)

在终端中输入:su root 即可进入root用户下了

以#‟头,普通用户下为$‟开头

1.3今天在普通用户weil下,想切换到root。结果提示“密码不正确”

#su -

#密码: @键入密码

#su:    密码不正确

重复试了几次,密码绝对没记错;然后试图切换到另一个普通用户kail

下,同样提示“密码不正确”。

  查看/etc下passw和shadow权限。

#ls -l /etc/{passwd,shadow}

-rw------- 1 rootroot 2434 03-05 19:52 /etc/passwd

 

-rw------- 1 rootroot 1700 03-06 09:49 /etc/shadow

 

发现普通用户没有读passwd文件的权限。然后修改passwd权限:

#chmod 644/etc/passwd

在重新切换到root

#su -

#su: cannot setgroups: Operation not permitted

 

上网搜索发现,错误原因是/bin/su文件被取消了s位,所以解决方法是

chmod a+s /bin/su

 

#ls -l /bin/su

 

-rwxr-xr-x 1 rootroot 39948 03-05 14:38 /bin/su

 

 

#chmod a+s/bin/su

 

#ls -l /bin/su

 

-rwsr-sr-x 1 rootroot 39948 03-05 14:38 /bin/su

再重新登录root,问题解决。


2009-08-21 11:45:00 jajapopo 阅读数 411
  • 马哥Linux教程-Linux操作系统基础由浅入深全面讲解1

    本课程为全新马哥Linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    19684 人正在学习 去看看 马永亮

1 linux下安装mysql linux下安装mysql

一、引言   想使用Linux已经很长时间了,由于没有硬性任务一直也没有系统学习,近日由于工作需要必须使用Linux下的MySQL。

本以为有Windows下使用SQL Server的经验,觉得在Linux下安装MySql应该是易如反掌的事,可在真正安装和使用MySQL时走了很多弯路,遇见很多问题,毕竟Linux 和Windows本身就有很大区别。为了让和我一样的初学者在学习的过程中少走弯路,尽快入门,写了此文,希望对您有所帮助。

 二、安装Mysql   

 1、下载MySQL的安装文件    安装MySQL需要下面两个文件:    MySQL-server-5.0.9-0.i386.rpm       MySQL-client-5.0.9-0.i386.rpm    下载地址为:http://dev.mysql.com/downloads/mysql/5.0.html,打开此网页,下拉网页找到“Linux x86 RPM downloads”项,找到“Server”和“Client programs”项,下载需要的上述两个rpm文件。   

 2、安装MySQL    rpm文件是Red Hat公司开发的软件安装包,rpm可让Linux在安装软件包时免除许多复杂的手续。该命令在安装时常用的参数是 –ivh ,其中i表示将安装指定的rmp软件包,V表示安装时的详细信息,h表示在安装期间出现“#”符号来显示目前的安装过程。这个符号将持续到安装完成后才停止。   

1)安装服务器端    在有两个rmp文件的目录下运行如下命令:    [root@test1 local]# rpm -ivh MySQL-server-5.0.9-0.i386.rpm    显示如下信息。     warning: MySQL-server-5.0.9-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5    Preparing...       ########################################### [100%]    1:MySQL-server     ########################################### [100%]     。。。。。。(省略显示)    /usr/bin/mysqladmin -u root password 'new-password'    /usr/bin/mysqladmin -u root -h test1 password 'new-password'     。。。。。。(省略显示)    Starting mysqld daemon with databases from /var/lib/mysql   如出现如上信息,服务端安装完毕。测试是否成功可运行netstat看Mysql端口是否打开,如打开表示服务已经启动,安装成功。Mysql默认的端口是3306。    [root@test1 local]# netstat -nat    Active Internet connections (servers and established)    Proto Recv-Q Send-Q Local Address      Foreign Address     State       tcp  0  0 0.0.0.0:3306     0.0.0.0:*      LISTEN       上面显示可以看出MySQL服务已经启动。    2)安装客户端    运行如下命令:    [root@test1 local]# rpm -ivh MySQL-client-5.0.9-0.i386.rpm    warning: MySQL-client-5.0.9-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5    Preparing...    ########################################### [100%]    1:MySQL-client  ########################################### [100%]    显示安装完毕。    用下面的命令连接mysql,测试是否成功。   三、登录MySQL    登录MySQL的命令是mysql, mysql 的使用语法如下:    mysql [-u username] [-h host] [-p[password]] [dbname]    username 与 password 分别是 MySQL 的用户名与密码,mysql的初始管理帐号是root,没有密码,注意:这个root用户不是Linux的系统用户。MySQL默认用户是root,由于初始没有密码,第一次进时只需键入mysql即可。    [root@test1 local]# mysql    Welcome to the MySQL monitor. Commands end with ; or /g.    Your MySQL connection id is 1 to server version: 4.0.16-standard 2 linux下安装mysql    Type 'help;' or '/h' for help. Type '/c' to clear the buffer.    mysql>    出现了“mysql>”提示符,恭喜你,安装成功!    增加了密码后的登录格式如下:    mysql -u root -p    Enter password: (输入密码)   其中-u后跟的是用户名,-p要求输入密码,回车后在输入密码处输入密码。   注意:这个mysql文件在/usr/bin目录下,与后面讲的启动文件/etc/init.d/mysql不是一个文件。    四、MySQL的几个重要目录    MySQL安装完成后不象SQL Server默认安装在一个目录,它的数据库文件、配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为 Linux本身的目录结构就比较复杂,如果搞不清楚MySQL的安装目录那就无从谈起深入学习。    下面就介绍一下这几个目录。    1、数据库目录    /var/lib/mysql/    2、配置文件    /usr/share/mysql(mysql.server命令及配置文件)    3、相关命令    /usr/bin(mysqladmin mysqldump等命令)    4、启动脚本    /etc/rc.d/init.d/(启动脚本文件mysql的目录)   五、修改登录密码    MySQL默认没有密码,安装完毕增加密码的重要性是不言而喻的。    1、命令    usr/bin/mysqladmin -u root password 'new-password'    格式:mysqladmin -u用户名 -p旧密码 password 新密码    2、例子    例1:给root加个密码123456。    键入以下命令 :    [root@test1 local]# /usr/bin/mysqladmin -u root password 123456   注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。    3、测试是否修改成功    1)不用密码登录    [root@test1 local]# mysql    ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)    显示错误,说明密码已经修改。    2)用修改后的密码登录    [root@test1 local]# mysql -u root -p    Enter password: (输入修改后的密码123456)    Welcome to the MySQL monitor. Commands end with ; or /g.    Your MySQL connection id is 4 to server version: 4.0.16-standard    Type 'help;' or '/h' for help. Type '/c' to clear the buffer.    mysql>    成功!   这是通过mysqladmin命令修改口令,也可通过修改库来更改口令。    六、启动与停止    1、启动    MySQL安装完成后启动文件mysql在/etc/init.d目录下,在需要启动时运行下面命令即可。    [root@test1 init.d]# /etc/init.d/mysql start    2、停止    /usr/bin/mysqladmin -u root -p shutdown    3、自动启动    1)察看mysql是否在自动启动列表中    [root@test1 local]# /sbin/chkconfig –list    2)把MySQL添加到你系统的启动服务组里面去    [root@test1 local]# /sbin/chkconfig – add mysql    3)把MySQL从启动服务组里面删除。    [root@test1 local]# /sbin/chkconfig – del mysql 七、更改MySQL目录    MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:    1、home目录下建立data目录    cd /home    mkdir data    2、把MySQL服务进程停掉:    mysqladmin -u root -p shutdown    3、把/var/lib/mysql整个目录移到/home/data    mv /var/lib/mysql /home/data/    这样就把MySQL的数据文件移动到了/home/data/mysql下    4、找到my.cnf配置文件   如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下: 3 linux下安装mysql    [root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf    5、编辑MySQL的配置文件/etc/my.cnf    为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。操作如下:    vi  my.cnf    (用vi工具编辑my.cnf文件,找到下列数据修改之)    # The MySQL server     [mysqld]     port   = 3306     #socket  = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)     socket  = /home/data/mysql/mysql.sock   (加上此行)    6、修改MySQL启动脚本/etc/rc.d/init.d/mysql   最后,需要修改MySQL启动脚本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:home/data/mysql。    [root@test1 etc]# vi /etc/rc.d/init.d/mysql    #datadir=/var/lib/mysql    (注释此行)    datadir=/home/data/mysql   (加上此行)    7、重新启动MySQL服务    /etc/rc.d/init.d/mysql start    或用reboot命令重启Linux    如果工作正常移动就成功了,否则对照前面的7步再检查一下。    八、MySQL的常用操作    注意:MySQL中每个命令后都要以分号;结尾。    1、显示数据库    mysql> show databases;    +----------+    | Database |    +----------+    | mysql  |    | test   |    +----------+    2 rows in set (0.04 sec)    Mysql刚安装完有两个数据库:mysql和test。mysql库非常重要,它里面有MySQL的系统信息,我们改密码和新增用户,实际上就是用这个库中的相关表进行操作。    2、显示数据库中的表    mysql> use mysql; (打开库,对每个库进行操作就要打开此库,类似于foxpro )    Database changed    mysql> show tables;    +-----------------+    | Tables_in_mysql |    +-----------------+    | columns_priv  |    | db       |    | func      |    | host      |    | tables_priv   |    | user      |    +-----------------+    6 rows in set (0.01 sec)    3、显示数据表的结构:    describe 表名;    4、显示表中的记录:    select * from 表名;   例如:显示mysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中。    Select * from user;    5、建库:    create database 库名;    例如:创建一个名字位aaa的库    mysql> create databases aaa; 6、建表:    use 库名;    create table 表名 (字段设定列表);   例如:在刚创建的aaa库中建立表name,表中有id(序号,自动增长),xm(姓名),xb(性别),csny(出身年月)四个字段    use aaa;    mysql> create table name (id int(3) auto_increment not null primary key, xm char(8),xb char(2),csny date);    可以用describe命令察看刚建立的表结构。   mysql> describe name;    +-------+---------+------+-----+---------+----------------+    | Field | Type  | Null | Key | Default | Extra     |    +-------+---------+------+-----+---------+----------------+    | id  | int(3) |   | PRI | NULL  | auto_increment |    | xm  | char(8) | YES |   | NULL  |        |    | xb  | char(2) | YES |   | NULL  |        |    | csny | date  | YES |   | NULL  |        | +-------+---------+------+-----+---------+----------------+    7、增加记录    例如:增加几条相关纪录。    mysql> insert into name values('','张三','男','1971-10-01');    mysql> insert into name values('','白云','女','1972-05-20');    可用select命令来验证结果。    mysql> select * from name;    +----+------+------+------------+    | id | xm  | xb  | csny    |    +----+------+------+------------+    | 1 | 张三 | 男  | 1971-10-01 |    | 2 | 白云 | 女  | 1972-05-20 |    +----+------+------+------------+    8、修改纪录    例如:将张三的出生年月改为1971-01-10    mysql> update name set csny='1971-01-10' where xm='张三';    9、删除纪录    例如:删除张三的纪录。    mysql> delete from name where xm='张三';    10、删库和删表    drop database 库名;    drop table 表名;    九、增加MySQL用户    格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码" 例1、增加一个用户user_1密码为123,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令:    mysql> grant select,insert,update,delete on *.* to user_1@"%" Identified by "123"; 例1增加的用户是十分危险的,如果知道了user_1的密码,那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了,解决办法见例2。   例2、增加一个用户user_2密码为123,让此用户只可以在localhost上登录,并可以对数据库aaa进行查询、插入、修改、删除的操作(localhost指本地主机,即MySQL数据库所在的那台主机),这样用户即使用知道user_2的密码,他也无法从网上直接访问数据库,只能通过 MYSQL主机来操作aaa库。    mysql>grant select,insert,update,delete on aaa.* to user_2@localhost identified by "123";    用新增的用户如果登录不了MySQL,在登录时用如下命令:    mysql -u user_1 -p -h 192.168.113.50 (-h后跟的是要登录主机的ip地址)    十、备份与恢复    1、备份    例如:将上例创建的aaa库备份到文件back_aaa中    [root@test1 root]# cd /home/data/mysql (进入到库目录,本例库已由val/lib/mysql转到/home/data/mysql,见上述第七部分内容)    [root@test1 mysql]# mysqldump -u root -p --opt aaa > back_aaa    2、恢复    [root@test mysql]# mysql -u root -p ccc < back_aaa

2017-11-30 21:47:11 baidu_36536257 阅读数 565
  • 马哥Linux教程-Linux操作系统基础由浅入深全面讲解1

    本课程为全新马哥Linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    19684 人正在学习 去看看 马永亮

实验1 Linux系统的安装及基本指令使用

一、实验目的

1.了解Linux操作系统的发行版本。

2.掌握Red Hat Linux 系统的安装方法。

3.学会不同Linux用户登录的方法

4. 掌握常用Linux命令的使用方法

二、实验环境

实验环境:VMware, Red Hat Enterprise Linux 6(内核版本2.6.18)

硬件环境:内存2G以上,硬盘空间20G以上

三、实验内容和步骤

1VMware安装Linux系统

2linux常用指令

添加用户

adduser wt                           

passwd wt1988                          

用户切换

   su - root

Password:wt1988

文件夹创建、删除、修改权限、切换、查看、复制、查找

创建文件夹:

   Mkdir wtwt

删除:

   Rm -r wtwt

修改权限:

   chmod 777 wtwt 然后用ls -l 查看权限

切换:

   cd ~ 进入当前用户的家目录 cd "cd ~"命令相同,都为进入当前用户的家目录 cd - 进入上次所在的目录 cd .. 进入上级目录 cd . 进入当前目录

查看:

   Ls,ls -l,ls -lh,ll -h

 

复制:

   先建立两个文件夹wtwtwt,wtwt下所有文件复制到wt  cp -r wtwt wt

查找:

   使用find命令搜索在根目录下的wtwt文件所在位置,命令格式为find / -name  'wtwt'

文件、文件夹压缩及解压:

先创建一个空的文件取名bbb

压缩:Tar -cvf  bbb.tar wwtt

 

解压:

Tar zxvf  bbb.tar

其他常用命令:

1、显示日期的指令: date

2、显示日历的指令:cal 2017显示2017年日历

3、计算器

bc

1+2+3*4/2

9

quit

4.shutdown

5.查看版本信息uname -r

 

 

四、实验总结

1.写出实验报告。

2.分析安装Red Hat Linux过程中出现问题的原因。

3. 举例和联系说明Linux常用的指令操作。

 

 

 

2014-10-21 10:24:17 u014621518 阅读数 1477
  • 马哥Linux教程-Linux操作系统基础由浅入深全面讲解1

    本课程为全新马哥Linux全套系列课程之一--Linux基础入门和架构了解,从Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    19684 人正在学习 去看看 马永亮

Kali Linux安全渗透教程1.1Linux安全渗透简介

渗透测试是对用户信息安全措施积极评估的过程。通过系统化的操作和分析,积极发现系统和网络中存在的各种缺陷和弱点,如设计缺陷、技术缺陷。本章将简要介绍Linux安全渗透及安全渗透工具的相关内容。本章主要知识点如下:本文选自《Kali Linux安全渗透教程》

q  什么是安全渗透

q  安全渗透所需工具

q  Kali Linux简介

q  安装Kali Linux

q  Kali Linux基本设置

1.1  什么是安全渗透

渗透测试并没有一个标准的定义。国外一些安全组织达成共识的通用说法是,渗透测试是通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析。这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。

渗透测试与其它评估方法不同。通常的评估方法是根据已知信息资源或其它被评估对象,去发现所有相关的安全问题。渗透测试是根据已知可利用的安全漏洞,去发现是否存在相应的信息资源。相比较而言,通常评估方法对评估结果更具有全面性,而渗透测试更注重安全漏洞的严重性。本文选自《Kali Linux安全渗透教程》

渗透测试有黑盒和白盒两种测试方法。黑盒测试是指在对基础设施不知情的情况下进行测试。白盒测试是指在完整了解结构的情况下进行测试。不论测试方法不同,渗透测试通常具有两个显著特点。

q  渗透测试是一个渐进的并且逐步深入的过程。

q  渗透测试是选择不影响业务系统正常运行的攻击方法进行的测试。本文选自《Kali Linux安全渗透教程》

1.1.1 Linux是什么

阅读数 328

没有更多推荐了,返回首页