二:Linux 的基本命令、VI编辑器、Linux中软件安装
Linux 的基本命令
Linux面向多个用户,windows一般是面向一个用户使用。
1、 文件操作
a) Windows 是多根的文件系统,物理上是 1 到多块硬盘,逻辑上分为 C、D、E……盘, 每个盘都是一棵树。Linux 是单根的文件系统,不分 CDE 盘,多块硬盘/U 盘/光盘 也是相当于多个文件夹。不同硬盘/U 盘/光盘对应的文件夹叫做“挂载点”,把外 部存储设备放到文件系统树的过程又叫做“挂载(mount)”
b) Linux 下无论是文件还是命令都是大小写敏感的。
2、 小白说“文件夹”,专业人士说“目录”(Directory)
3、 Linux 常用根目录的作用:
1) boot 存放用于系统引导时使用的各种文件
2) bin 存放二进制可执行文件(ls,cat,mkdir 等)
3) sbin 存放二进制可执行文件,只有 root(自己设置的用户) 才能访问
4) usr 用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
5) opt 额外安装的可选应用程序包所放置的位置
6) dev 用于存放设备文件
7) etc 存放系统配置文件
8) home 存放所有用户文件的根目录(多个用户,在home文件夹中创建一个用户)
9) lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
10) tmp 用于存放各种临时文件
11) var 用于存放运行时需要改变数据的文件
12) mnt 安装临时文件系统的安装点
13) srv 存储系统提供的服务数据。
14) sys 系统设备和文件层次结构,并向用户程序提供详细的内核数据信息。
15) lost+found 一般为空,当非法关机时,会存放一些零散的文件。
16) proc 这是一个虚拟目录,它是内存的映射,包括系统信息和进程信息。
17) mnt 通常包括系统引导后被挂载的文件系统的挂载点。
18) media 存放Ubuntu系统自动挂载的设备文件。
/
代表根目录
~
代表家目录
root用户
pyvip@Vip:/$ -------->pyvip:用户名 @ Vip:主机名 /:根目录 $:普通用户
4、 常用文件操作命令:
工作目录(working directory)就是“当前目录”
显示当前工作目录 pwd (print work directory)
显示当前目录下的文件、目录 ls 或者 dir 或 ls -a (所有文件包含隐藏文件)
切换工作目录 cd (Change Directory):cd ./test 切换工作目录到当前目录下的 test 目录(cd 后不要忘了空格);cd .. 到上一级目录;cd /很显然就是返回根目录
新建目录 mkdir (Make Directory):mkdir test 有的系统目录下是没有权限创建文 件夹的。用户的文件一般放到 home 的自己的用户名下
删除目录:rmdir (Remove Directory) 删除空目录;rm(Remove)删除文件;rm -r testA 删除目录及其下所有文件(-r 就是 recursive 的简写。*坑人的指令:rm -rf /)。
touch 如果文件不存在,新建文件
mv 移动文件
cp 复制文件
查看文本文件内容:cat(一下子全显示,适合小文件);more(分页显示,q 退出)
查找文件:find -name 'a*' 在当前目录下查找文件名以 a 开始的文件。不要 丢了''
5、 ps 查看当前用户当前运行的进程;查看所有运行中的进程 ps –ef
6、 reboot 重启
7、shutdown now立即关机
8、 退出终端:exit
9、 clear 清理当前显示或者快捷键:ctrl+L
10、 上下键可以快速恢复历史命令。可以通过 tab 键完成当前目录下文件或者子目录的 自动填充,如果遇到多个前一部分一样的会自动完成一样的前一部分。ctrl+c 取消当前 输入的命令重新开始。
11、 tar 命令,将文件夹打包成一个文件,同时可进行压缩 命令格式 打包 tar -c -f 归档文件 需要打包的文件 解开 tar -x -C 解开到指定目录 -f 归档文件
12、 man 命令,各个命令的手册,比如 man dir;按 q 退出。
13、 Linux 管道命令:一个软件或一个命令 要想完成一件事情,通常都需要输入原始数 据 , 处理后 , 再把处理的结果输出到一个地方(保存到文件或者显示在屏幕上),Linux 的管道是这样一个东西,它可以把上一个命令的处理结果作为下一个命令的输入数据,供 下一个命令使用。例如: 1) ps -ef | grep bash 2) netstat -a | more 3) 因此 cat 1.txt|more 也可以达到 more 1.txt 的效果 14、 sudo:基于安全考虑,一般不建议使用超级用户权限登录 linux;而是平时使用低 权限用户访问,需要高权限的操作再用 sudo 后跟着指令。比如在/下无法创建文件夹, 但是 sudo mkdir a 就可以,当然需要输入密码。su 就是“super user”的简写,sudo 就 是“用超级用户权限执行命令”
cd .. 回到上一级目录
cd / 跳到根目录
cd ~ 回到家目录
cd 回到家目录
cd . 当前目录
cd - 回到上一次目录
区分:
cd 绝对路径 。是从根路径 / 开始的
cd 相对路径
# 常用参数
-a # 显示目录下所有的子目录和文件 包括以`.`开头的隐藏文件
-l # 以列表方式显示文件的详细信息
-h # 配合 `-l` 人性化的显示文件大小
-i # 会显示编号(id)
rmdir dirname # 删除空目录
# 常用参数
-v 显示过程
-p 递归 如:makdir -p w/d/c 可以创建多级文件夹
tree /home/pyvip
如:查看当前目录下的文件以树状图展示
rm filename # 删除文件
# 常用参数
-i 交互式删除,提醒
-f 强制删除
-r 递归式文件夹删除
* 通配
rm -rf * # rm 删除文件 -r 还可递归的删除文件夹 -f强制 *所有
cp filename1 dirname # 复制(默认赋值文件)
# 常用参数
-a # 复制目录 保留文件原有的属性
-i # 在覆盖之前提示
-r # 目标文件必须为一个目录名
-v # 显示进度
b 块文件也叫设备文件也叫特殊文件
c 字符文件
d 目录文件
p 管道文件
f(-) 普通文件/文本文件
l 链接文件
s(socket) unix/类unix套接字
-
-
shutdown
用sudo 权限-
-h now
立马关机 -
-r now
立马重启 now 为当前时间为 0 -
-h +10
系统再过十分钟后自动关机 -
-h 20:25
系统在今天的20:25
会关机 -
-c 取消
-
-
init
-
0
关机 -
6
重启
-
VI编辑器
1、VI 简介 如果使用 linux 桌面,也有一些图形化文本编辑器(类似于记事本),但 linux 的神级编 辑器是 vi,如果连 vi 都不会用就别说会用 linux。 在很多环境下是没有图形界面的,只能用 vi。VI 是全键盘操作,不能用鼠标。当然日常 开发还是在图形界面下使用 VS 等开发,使用 vi 一般是进行简单的修改或者配置文件的修改。 vi 刚接触感觉很痛苦,用熟了也挺爽的,vi 命令非常多,初学掌握基本的操作即可。vim 是 vi 的加强版。
2、vi 的运行模式
命令模式下可以进行行删除等命令的输入(相当于快键键);插入模式下可以进行 文本的输入;末行模式下是执行保存、退出等指令用。
易混:插入模式下如果直接输入:就是输入:了,因此要先 esc 退出插入模式,再: 末行模式的指令:
1):wq 保存然后退出 w→write,q→quit 如果是“vi 文件名”方式执行的,则直 接写入到指定的文件名中,否则要“:wq 文件名”。
2):q! 不保存退出
3):w 保存不退出 在末行模式中输入“!shell 指令”可以不离开 vi 执行 shell 指令
命令模式的命令
1) 移动输入光标,不能在插入模式下按上下左右键。要 esc 先回到命令模式下;
2) shift+^移到行首;shift +$移到行尾。联想一下正则表达式中就好记了;
3) ctrl+b:上滚一屏;ctrl+f 下滚一屏; b→backward;f→forward
4) dd:删除当前一行;x 删除当前字符
5) 撤销:上一次的操作 u;undo 的简写
6) o:在当前行下新增一行(因为如果移动到行尾再回车的话还是在最后一个字符前回 车)自动进入插入模式。
7) i:在当前光标前面插入,a:在当前光标后面插入。a→append(附加)也是自动进 入插入模式。 还有一个傻瓜化字符界面编辑器 nano,底下提示信息中^X 的意思就是 ctrl+X。不是每个 Linux 上都安装 nano,有时候需要自己装。
软件的安装
linux 下很多软件都是自己下载源代码、自己编译的,有点痛苦。因此很多发行版都有自 己的安装包格式。比如 RedHat 使用*.rpm 的文件,Ubuntu 使用*.deb 文件。 自己查找、下载安装还是很麻烦。因此很多发行版中都提供了类似于应用市场、NuGet 的东西。 Ubuntu 推荐使用 apt 进行下载、安装。会从 ubuntu 官网下载(中国区镜像),如果下载 速度慢的话,可以设置从其他镜像下载,具体搜索“Ubuntu apt-get 镜像” 执行某些程序的时候,如果程序没安装,还会提示你,比如执行 vim、tree 等。 安装软件需要 sudo 执行。如下:
1) 安装 “sudo apt-get install 程序名”,比如“sudo apt-get install vim”
2) 卸载“sudo apt-get remove 程序名”
网络配置
1、 使用 ifconfig 命令查看网络配置信息,查看 ip 地址和网卡物理地址(MAC 地址)
2、虚拟机和主机之间组建了一个局域网,虚拟机通过主机上网。虚拟机的设置的“网络” 中可以设置不同的连接方式。主机可以通过 ifconfig 看到的 ip 地址连接虚拟机的网络。
3、虚拟机的网络连接方式有很多种,最主要有三种:HostOnly 、NAT、桥接(Bridge)。HostOnly 配置较麻烦,需要懂很多网络工程的东西;NAT 是虚拟机借助于主机网卡访问网络,藏在主 机后面,网络中其他设备不能这个虚拟机,连主机都不能,但是虚拟机能连接主机的网络, 能上外网;桥接(Bridge)方式则是把虚拟主机也暴露为网络中的一个设备,主机和虚拟主 机在网络内是平等的,可以互相访问,但是要求网络中没有设备访问的限制(比如 Mac 地 址绑定或者终端个数限制),如果有限制要改路由器的配置。因为咱们需要主机和虚拟机互 相访问,除非网络有限制,否则最好配置为桥接(Bridge),配置桥接(Bridge)要选择通过 哪个网卡上外网,不能选错了,否则就无法访问外网了。后面我们都配置为桥接(Bridge)。
4、虚拟机的 ip 地址可能变化,注意。
SSH 服务
讲运维人员是怎么远程连接到机房上的服务器,很少使用图形界面(卡,无法自动化) 远程登录有专门的通信协议 telnet, telnet 就是通过网络进行命令行操作服务器。只有服 务器端开始了远程登录服务,客户端才能通过 telnet 协议控制服务器端。 但 telnet 协议使用明文传输数据,这会造成严重的安全性问题,所以现在几乎不推荐使用, 而替代协议是 SSH。SSH 通讯过程数据是加密的。
Linux 安装使用 OpenSSH
Ubuntu 默认只安装了客户端 openssh-client
安装服务器: sudo apt-get install openssh-server
查看服务器是否开启:netstat -tlp
启动 sudo /etc/init.d/ssh start
重启 sudo /etc/init.d/ssh restart
ssh 服务默认端口 22,可通过修改配置文件修改端口/etc/ssh/sshd_config
windows 下如何通过 ssh 连接到 linux :下载运行 putty,免安装。
如果编辑器出现乱码!!
如果显示中文乱码,则在 putty 标题栏点击右键,选【change settings】
新显示会不乱码,旧显示还会乱码。 后续都通过 ssh 连接操作,这也是平时连接服务器时候的常规操作:windows 下开 发,然后部署到 linux 下运行。
使用 mysql
1、安装 mysql 服务器
1) sudo apt-get install mysql-server
2) 根据提示设置 root 用户的密码,测试时候设置为 root
3) sudo apt-get install mysql-client 安装管理客户端
4) mysql -uroot -proot 通过管理 客户端连接 mysql,如果不报错就 ok。mysql –u 用 户名 –p 密码。mysql –uyzk –p123
5) mysql 客户端中执行(不要在 shell 中直接执行)show databases;(不要丢了结尾 的英文分号)查看有哪些数据库; 执行一下 select now();正确执行。执行“quit;” 退出 mysql 客户端。 6) 基于安全考虑,mysql 默认只能本机连接。如果想通过其他电脑连接(比如主机访 问虚拟机中的 mysql),就需要配置。最好不要配置成任意电脑都可以连接,因为危 险。要配置成只允许某些 ip 访问。
2、配置 MySQL 远程访问(需要网络配置为桥接网络):
1)编辑 mysql 的配置文件 mysqld.cnf ,由于 mysql 是系统服务,因此需要以 su 运行 vi,才 有权限,执行 sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf。由于不同 mysql 版本配置 文件的位置可能不一样,因此最好的找路径的方式就是 cd、dir 一级级的看看。(linux 下不 同版本差异性很大,之前查资料都是改/etc/mysql /conf.d/mysql.cnf,但是使用 status;命令查 询 mysql 版本之后搜索“mysql 5.7 远程访问”才找到正确的做法。 )
2)把 bind-address = 127.0.0.1 注释掉。
3)执行 sudo /etc/init.d/mysql restart 重启 mysql 服务
4)在主机上执行 ipconfig(Linux 下是 ifconfig、Windows 下是 ipconfig),查看主机的 ip 地址是多少(别看错了,也别看成虚拟机的 ip),假如是 192.168.0.11
5)执行 mysql –uroot –proot(-u 后面的是用户名、-p 后面的是密码,根据你的配置做修改。 不要在-u 和-p 输入空格)进入 mysql 服务器后 执行 grant all privileges on *.* to root@"192.168.0.11" identified by "这里 换成密码" with grant option; 注意:不要丢了末尾的分号,不要直接在命令行下输入, 要进入 mysql 再执行。 再执行 flush privileges; 注意:不要丢了末尾的分号,不要直接在命令行下输入,要进 入 mysql 再执行。
2、 主机上连接虚拟机内的 mysql 一定要连接虚拟机的 ip,别连错了。
3、 主机的 ip 如果变了就要重新配置。
安装 vsftp 服务器
1、什么是 ftp。通过 ftp 进行文件的上传下载
2、sudo apt-get install vsftpd
3、这时候可以用 linux 用户登录,能够访问/home/用户名的文件夹下。但是没有上传权 限。需要“sudo vi /etc/vsftpd.conf” 将“write_enable=YES”前面的#取消,然后执行 sudo /etc/init.d/vsftpd restart 重启
4、Windows 下可以使用 FileZilla FTP Client 等 FTP 客户端上传下载
5、中文会有乱码,不用处理,上传下载比较多的文件都压缩。linux 解压使用 unzip“unzip a.zip”。不要传 rar 等格式