Linux 的基本命令
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 存放所有用户文件的根目录
9) lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
10) tmp 用于存放各种临时文件
11) var 用于存放运行时需要改变数据的文件
12) mnt 安装临时文件系统的安装点
4、 常用文件操作命令:
? 工作目录(working directory)就是“当前目录”
? 显示当前工作目录 pwd (print work directory)
? 显示当前目录下的文件、目录 ls 或者 dir
? 切换工作目录 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 /)。
? 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 就 是“用超级用户权限执行命令”
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 等格式