文章目录
- Linux
-
- 1. 认识Linux
-
- 1.1. Linux的发展历史
- 1.2. Linux的版本
-
- 1.2.1. 内核版
- 1.2.2. 发行版
- 1.3. 开源软件简介
-
- 1.3.1. 最伟大的开源项目
- 1.3.2. 更多开源项目举例
- 1.4. Linux的应用领域
- 1.5. 给Linux初学者的提示
- 2. Linux的安装和使用
-
- 2.1. VMware虚拟机
-
- 2.1.1. VMware虚拟机安装
- 2.1.2. VMware虚拟机设置
- 2.1.3. VMware使用
- 2.2. Linux安装
- 修改主机名
- 2.3. Linux的树型目录结构
- 2.4. 远程登录管理工具
-
- 2.4.1. 虚拟机网卡适配器
- 2.4.2. 远程登录管理工具
- 3. Linux常用命令
-
- 3.1. 目录相关命令
-
- 3.1.1. 显示目录文件
- 3.1.2. 创建新目录
- 3.1.3. 切换目录
- 3.1.4. 显示当前目录
- ~~3.1.5. 删除空目录~~
- 3.1.6. 删除文件或目录
- 3.1.7. 复制
- 3.1.8. 剪切文件、改名
- 3.2. 文件相关命令
-
- ~~3.2.1. 创建空文件~~
- ~~3.2.2. 显示文件内容~~
- 3.2.3. 分页显示文件内容(向后)
- 3.2.4. 分页显示文件内容(可向前也可向后)
- ~~3.2.5. 显示文件前面几行的内容~~
- ~~3.2.6. 显示文件后面几行的内容~~
- ~~3.2.7. 生成链接文件~~
- 3.3. 搜索相关命令
-
- 3.3.1. 根据字符串进行文本搜索,并输出匹配的行
- 3.3.2. 文件搜索
- ~~3.3.3. 搜索命令所在目录~~
- 3.4. 权限相关命令
-
- 3.4.1. 改变文件或目录的权限
- 3.4.2. 改变文件或目录的所有者
- 3.4.3. 改变文件或目录的所属组
- 3.5. 用户相关命令
-
- 3.5.1. 添加新用户
- 3.5.2. 设置、修改用户密码
- 3.5.3 查看登录用户信息
- 3.5.4. 切换用户登录
- 3.5.5. 注销
- 3.5.6. 关机命令
- 3.5.7. 重启命令
- 3.5.8. 关于系统的运行级别
- ~~3.5.9. 给指定在线用户发信息~~
- ~~3.5.10. 给所有在线用户发信息~~
- ~~3.5.11. 用户之间通信的邮件系统~~
- 3.6. 网络相关命令
-
- 3.6.1. 查看和设置网卡信息
- 3.6.2. 测试网络连接
- 3.6.3. 永久设置网络ip
- ~~3.6.4. 显示数据包到主机间的路径~~
- 3.6.5. 显示端口占用信息
- 3.7. 压缩与解压缩相关命令
-
- ~~3.7.1. 压缩解压命令一:*.gz~~
- 3.7.2. 压缩解压命令二:*.tar.gz
- ~~3.7.3. 压缩解压命令三:*.zip~~
- ~~3.7.4. 压缩解压命令四:*.tar.bz2~~
- 3.8. 挂载设备
- 3.9. 其它常用命令
- 4. 文本编辑器Vim
-
- 4.1. Vim编辑器简介
- 4.2. Vim编辑器常用操作
- 5. 软件包管理
-
- 5.1. 软件包管理简介
- 5.2. RPM包管理
-
- 5.2.1. RPM包命名原则
- 5.2.2. RPM包的依赖
- 5.2.3. rpm命令管理(手工处理依赖性)
- 5.2.4. yum在线管理(自动处理依赖性)
- 5.2.5. 使用yum安装apache
- 5.3. 源码包管理
-
- 5.3.1. 源码包与RPM包安装的位置不同
- 5.3.2. 源码包与RPM包安装的启动方式不同
- 5.3.3. 源码安装方式
- 6. 相关软件的安装与配置
-
- 6.1. 安装JDK
- 6.2. 安装Tomcat
- 6.3. 安装MySQL
- 6.4. 安装Apache
- 7. 用户和用户组管理
-
- 7.1用户的管理
- 7.2组管理:
- 7.3 id,su命令
- 8. 权限管理
-
- 8.1文件权限
- 8.2 Linux三种文件类型:
- 8.3文件类型标识
- 8.4 文件权限管理:
- 9. 文件系统管理
- 10. Linux服务管理
- 11. Linux系统管理
- 12. 日志管理
- 13. 启动管理
- 14. 备份与恢复
- 15. Shell编程
- 附录
-
- 1. 相关面试题
Linux
1. 认识Linux
1.1. Linux的发展历史
- Linux是由Unix演变而来。
- UNIX操作系统,是一个强大的
、多用户
、多任务
操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由Ken Thompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。高安全性
- 1971年,Dennis Ritchie发明了C语言,1973年,Unix系统的绝大部分源代码用C语言重写,提高了Unix系统的可移植性。
- Linux是一套
和免费使用
的类Unix操作系统。它诞生于1991年,由芬兰大学生李纳斯(Linus Torvalds)和后来陆续加入的众多爱好者共同开发完成。自由传播
1.2. Linux的版本
1.2.1. 内核版
Linux内核官网:www.kernel.org,目前最新稳定版本为4.17.8
如果想在已装的系统上查询系统内核,可使用uname -a命令
1.2.2. 发行版
主要发行版本介绍:http://www.cnblogs.com/lcword/p/5865533.html
1.3. 开源软件简介
1.3.1. 最伟大的开源项目
Linux是开源免费的,它Github上的托管地址:https://github.com/torvalds/linux
1.3.2. 更多开源项目举例
开源项目特点:
- 使用的自由,绝大多数开源软件免费
- 研究的自由,可以获得软件源代码
- 散布及改良的自由,可以自由传播、改良甚至销售
1.4. Linux的应用领域
- 服务器应用领域: http://www.netcraft.com/
- 嵌入式应用领域:智能手机、智能家居、智能卡系统、取款机、电梯…
- 桌面应用领域
1.5. 给Linux初学者的提示
- Linux更推荐使用命令行
- 忘掉Windows的思维
- 良好的学习方式和习惯
- 不怕害怕英文带来的困惑
- Command not found
- No Such file or directory
2. Linux的安装和使用
2.1. VMware虚拟机
- VMware是一个虚拟PC的软件,可以在现有的操作系统上虚拟出一个新的硬件环境,相当于模拟出一台新的PC,以此来实现在一台机器上真正同时运行两个独立的操作系统。
- 下载VMware并安装:http://www.vmware.com
除了VMware,Oracle的 VitrualBox也是较常用的虚拟机!
2.1.1. VMware虚拟机安装
第1步,创建虚拟机
第2步,选择典型安装;
第3步,选择稍后安装操作系统
第4步,选择客户机操作系统与版本
第5步,给创建的虚拟机命名,并选择要存储的位置
第6步,在指定磁盘容量处,直接点击下一步
第7步,单击完成创建虚拟机
2.1.2. VMware虚拟机设置
- 设置内存
- 设置处理器
- 其它设置
2.1.3. VMware使用
- 快照生成
- 系统克隆
- 链接克隆
- 依赖于源虚拟机(称为父虚拟机)。由于链接克隆是通过父虚拟机的快照创建而成,因此节省了磁盘空间,而且克隆速度非常快,但是克隆后的虚拟机性能能会有所下降。
- 对父虚拟机的虚拟磁盘进行的更改不会影响链接克隆,对链接克隆磁盘所做的更改也不会影响父虚拟机。但是如果父虚拟机损坏或快照点删除,链接克隆的虚拟机也不能使用;如果父虚拟机移动位置,需要重新指定父虚拟机的位置,再启动链接克隆虚拟机。
- 完整克隆
- 完全克隆的虚拟机不依赖源虚拟机,是完全独立的虚拟机,它的性能与被克隆虚拟机相同。
- 由于完整克隆不与父虚拟机共享虚拟磁盘,所以创建完整克隆所需的时间比链接克隆更长。如果涉及的文件较大,完整克隆可能需要数分钟才能创建完成。完整克隆只复制克隆操作时的虚拟机状态,因此无法访问父虚拟机的快照。
注:以上两种方式克隆出来的系统,网卡都变成eth1,因此需要将eth1修改成eth0:
https://www.cnblogs.com/zhangjxblog/p/6479740.html
- 链接克隆
- 点击虚拟机屏幕可操作虚拟机,按CTRL+ALT可退出操作虚拟机
- 如果虚拟机有更改,在重新导入并启动时,可能会有弹出提示”我已移动该虚拟机”或“我已复制该虚拟机”:
-
移动:网络配置不发生变化。要使用图片服务器,需要保证网络配置不变。
复制:重新生成一块网卡MAC地址是新地址,原来的网络配置信息会丢失。
-
2.2. Linux安装
百度上偷了3篇文章:
CentOS 7安装:https://jingyan.baidu.com/article/20095761d65c67cb0721b4a8.html
CentOS 7与6的不同:http://blog.51cto.com/liuqun/2044542
CentOS7网络连接配置:https://jingyan.baidu.com/article/6b1823098a4d9eba58e159ea.html
CentOS7防火墙配置:https://www.cnblogs.com/moxiaoan/p/5683743.html
第1步,打开虚拟机设置,点击cd/dvd,选择使用iso映像,并确定
第2步,开启虚拟机准备安装
如果在这一步有VMware 报错“Intel VT-x处于禁止状态”, 需要开启进入本机的bios开启虚拟化支持
第3步,在安装选项界面选择“Install or upgrade an existing system”
第4步,接下来选择skip
第5步,在接下来显示屏幕的右下角,点击next进行安装
第6步,选择English,然后点击next
第7步,选择美国英文式键盘,然后点击next
第8步,选择基本存储设备,然后点击next
第9步,在弹出框中选择“是,忽略所有数据”
第10步,设置主机名,然后点击next
第11步,默认时区,然后点击next
第12步,设置根帐号(root)的密码,然后点击next
第13步,点击创建自定义布局,然后点击next
第14步,设置分区,然后点击next,基本分区规则如下:
-
推荐分区
/boot(启动分区,200MB以上) 我的是20G
- 必须分区
- swap分区(交换分区,在内存不足时可当作虚拟内存,不超过2GB)4096
- /(根分区,使用全部可用空间)
第15步,在弹出框中选择格式化
第16步,在弹出框中选择将修改写入磁盘
第17步,点击next
第18步,选择Basic Server,然后点击next
第19步,等安装完成…,安装完成后点击重新引导
第20步,等启动完成,便可使用Linux。
root登录默认进入/root,普通用户登录将进入/home
修改主机名
//永久性的修改主机名称,重启后能保持修改后的。
hostnamectl set-hostname xxx
//删除hostname
hostnamectl set-hostname ""
hostnamectl set-hostname "" --static
hostnamectl set-hostname "" --pretty
reboot 重启生效
还有一种方法是直接修改主机名文件,vi /etc/hostname,这种方法修改也是永久是生效的:
2.3. Linux的树型目录结构
- 重要目录介绍:
- /boot,系统引导程序
- /root,根用户目录,root用户登录默认进入此目录
- /home,普通用户目录,普通用户登录默认进入此目录
- /bin,普通用户命令
- /sbin,管理员命令
- /etc,系统配置目录
- /tmp,临时目录,系统重启后tmp目录会清空
- /dev,设备目录,配合mnt目录挂载外部设备
- /mnt,挂载目录
- /lib,程序运行时使用的共享库
- /var,程序运行时要改变的数据
- /usr,系统级的程序目录,类似Windows的c://windows,另外还有几个重要的子目录:
- /usr/lib,类似Windows的c://sytem32;
- /usr/local,用户级的程序目录,类似Windows的c://Program Files;
- /usr/src,系统级的源码目录;
- /usr/local/src:用户级的源码目录;
- /opt,存放可选的三方程序,如尝新或临时使用的软件等
- …
- 重要配置文件介绍:
- /etc/profile,全局环境变量配置文件
- /etc/inittab,运行等级配置文件
- /etc/rc.d/init.d/,系统现有的服务目录
- /etc/sysconfig/network,查看网络和机器名的配置文件
- /etc/sysconfig/network-scripts/ifcfg-eth0,IP地址配置文件
- /etc/sysconfig/iptables,防火墙配置文件
/etc/hosts,hosts配置文件
设置用户名:vi /etc/hostname
如果上线的项目运行时有“java.net.UnknownHostException: xxx: 未知的名称或服务”异常,可参考修改hosts文件解决:https://blog.csdn.net/yuxuan_08/article/details/52925993?locationNum=6&fps=1- …
2.4. 远程登录管理工具
2.4.1. 虚拟机网卡适配器
- 仅主机模式:虚拟机只能和本机通信,使用VMnet1虚拟网卡通信。
优点:适合于电脑没插网线时,当前系统与虚拟机里的Linux连接。
缺点:虚拟机只能和本机通信,并且不能配置虚拟机上网。
- NAT 模式:虚拟机可以和本机通信,还可以配置连接上网,使用VMnet8虚拟网卡通信。
推荐使用静态IP配置连接上网,这样可以做到网络变化时,虚拟机IP仍然保持不变,具体实现步骤:
- 第1步,使用NAT模式
- 第2步,找到NAT模式下的网关地址
- 第3步,进入网络配置文件
并配置网络信息(我修改的地方都有注释标注):vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no # 把默认的自动分配IP(dhcp)改成手动指定IP(static) BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=ens33 UUID=100cb451-54f9-4b74-80d8-d8d9b098b926 DEVICE=ens33 # 把ONBOOT参数改成随系统启动(yes) ONBOOT=yes # 指定IP,需要在刚才查看的网关地址段 IPADDR=192.168.26.26 # 指定子网掩码 NETMASK=255.255.255.0 # 指定刚才查看的网关地址 GATEWAY=192.168.26.2 # 指定一个DNS服务器地址,这里是用的Google的,你也可以改成其它的。 # 注:DNS1的1千万不能少,少了就配置无效,之前我掉这个坑了。 DNS1=8.8.8.8 ZONE=public
- 第4步,指定虚拟机所在主机的VMnet8虚拟网卡
- 第5步,全部配置完成后,测试主机是否能够ping通虚拟机,虚拟机是否又能够ping通百度。
- 桥接模式:虚拟机只要与本机同在一个网段就会使用真实网卡与本机进行通信。
优点:配置连接上网简单,只要在同一个网段即可。
缺点:此方式会占用本机所在网段的IP。
-
虚拟机VMware3种网络模式(桥接、NAT、Host-only)的工作原理
https://www.cnblogs.com/hehexiaoxia/p/4042583.html
注意:
- 临时设置IP的命令:ifconfig eth0 192.168.1.2
- 只有先保证与本机同在一个IP段,才能进一步实现远程登录。
2.4.2. 远程登录管理工具
- putty:一个Linux连接客户端
相关设置:
第1步,解决Putty中文显示乱码问题,Category->Window->Translation -> UTF-8;
第2步,解决Putty3分钟不动需要重登的问题,putty->Connection->Seconds between keepalives ( 0 to turn off ), 默认为0, 改为60
第3步,save 此 session,保存此设置。
- flashfxp:文件上传工具
- Xshell + Xftp(推荐)
- 命令终端和文件传输功能绑定
- 方便管理多个会话
- 界面美观
- SecureCRT
3. Linux常用命令
命令格式说明: 命令 [-选项] [参数],如ls -la /etc
- 个别命令使用不遵循此格式
- 当有多个选项时,可以写在一起
- 简化选项和完整选项,-a等于 --all
- 当遇到不熟悉的命令要常用帮助命令,如ls --help
- 想获取shell内置命令的帮助信息可使用help,如help|man cd
- root命令:/sbin或者/usr/sbin, 普通用户:/bin或者/usr/bin
- Linux命令大全:http://man.linuxde.net/
3.1. 目录相关命令
3.1.1. 显示目录文件
- 命令:ls,原意list -
-
语法:ls [-alhi] [文件或目录]
-rw-r–r--. 1 root root 27K 9月 8 22:52 install.log
drwxr-xr-x. 2 root root 4.0K 9月 8 23:38 test
- rwx(所有者,可读可行可执行)
- r-x(所属组,可读可执行)
- r-x(其他人,可读可执行)
3.1.2. 创建新目录
- 命令:mkdir,原意make directory
- 语法:mkdir [-p] 目录…
在Linux中除了 / 不可以用作文件名外,其它都可以但是最好不要以一些怪异符号。另外Linux下以.开关的文件都是隐藏文件!
3.1.3. 切换目录
- 命令:cd,原意change directory
- 语法:cd [目录|…|~]
3.1.4. 显示当前目录
- 命令:pwd,原意print working directory
- 语法:pwd
3.1.5. 删除空目录
- 命令:rmdir,原意remove empty directory
- 语法:rmdir [-p] 目录…
3.1.6. 删除文件或目录
- 命令:rm,原意remove
- 语法:rm [-rf] 文件或目录…
- 如果使用rm -rf还可以递归删除带有文件的目录!
- 删除还支持模糊匹配模式,如:rm -rf *、rm -rf *b*
3.1.7. 复制
- 命令:cp,原意copy
- 语法:cp [-rfp] 原文件或目录… 目标目录
复制时-f强制覆盖的命令无效的解决方法是\cp -f …
3.1.8. 剪切文件、改名
- 命令:mv,原意move
- 语法:mv 原文件或目录… 目标目录
3.2. 文件相关命令
3.2.1. 创建空文件
- 命令:touch
- 语法:touch 文件…
可以使用echo “内容” >|>> 文件位置,给文件添加内容。
3.2.2. 显示文件内容
- 命令:cat
- 语法:cat [-n] 文件
如果需要反向显示文件内容,请用tac,如tac /etc/issue
3.2.3. 分页显示文件内容(向后)
- 命令:more
- 语法:more 文件
空格向后翻页、回车向后换行、q退出
3.2.4. 分页显示文件内容(可向前也可向后)
- 命令:less
- 语法:less 文件
- PageUp向上一页,PageDown向下一页;
- 先按[ESC],再按[ > ],显示最后一行;
- 先按[ESC],再按[ < ],显示第一行;
- 上下键换行;
- q退出。
3.2.5. 显示文件前面几行的内容
- 命令:head
- 语法:head -n 行数 /etc/services
3.2.6. 显示文件后面几行的内容
- 命令:tail
- 语法:tail -n 行数 /etc/services
3.2.7. 生成链接文件
- 命令:ln,原意link
- 语法:ln [-s] 原文件 目标文件
- 在创建链接时,原文件一定要指定完全路径,如/root/a;
- 软链接lrwxrwxrwx. 1 root root 1 9月 9 00:57 a->/root/a;
- 硬链接cp -p + 同步更新,可通过i节点识别。
3.3. 搜索相关命令
3.3.1. 根据字符串进行文本搜索,并输出匹配的行
- 命令:grep
- 语法:grep [-i] 指定字符串 文件 --color
- 在搜索结果中过滤:ls -al /etc | grep sys
- 查询tomcat所占的进程:ps -ef | grep tomcat
- 查看占用8080端口的程序:netstat -ant | grep 8080
3.3.2. 文件搜索
- 命令:find
- 语法:find [搜索范围] [匹配条件]
- find /etc -name “init”
- find /home -user “hsu”
- find /etc -name “init*”
- find /etc -type l|d|f
3.3.3. 搜索命令所在目录
- 命令:whereis|which
- 语法:whereis|which 命令名称
3.4. 权限相关命令
3.4.1. 改变文件或目录的权限
- 命令:chmod,原意change the permissions mode of a file
- 语法:chmod [-R] 权限数字 文件或目录
权限数字表示:r-4,w-2,x-1,因此rwxrw-r–的权限数字为764
3.4.2. 改变文件或目录的所有者
- 命令:chown,原意change file ownership
- 语法:chown 用户名 文件或目录
3.4.3. 改变文件或目录的所属组
- 命令:chgrp,原意change file group ownership
- 语法:chgrp 所属组名 文件或目录
3.5. 用户相关命令
3.5.1. 添加新用户
- 命令:useradd
- 语法:useradd 用户名
3.5.2. 设置、修改用户密码
- 命令:passwd
- 语法:passwd 用户名
3.5.3 查看登录用户信息
- 命令:who|w
- 语法:who|w
如果想列出登录过的用户信息可使用last或lastlog -u 用户名
3.5.4. 切换用户登录
- 命令:su, 原意switch user
- 语法:su 用户名
如果用su切换了用户,可以使用exit命令退出当前用户,返回原来用户。
3.5.5. 注销
logout
3.5.6. 关机命令
- shutdown -h|-r|-c 时间
- halt
- poweroff
- init 0
3.5.7. 重启命令
- shutdown -h|-r|-c 时间
- reboot
- init 6
3.5.8. 关于系统的运行级别
- 共0~6个级别
- 0,关机;
- 1,单用户(root权限,用于系统维护,禁止远程登陆);
- 2,不完全多用户状态(没有NFS);
- 3,完全多用户状态(有NFS),登陆后进入控制台命令行模式;
- 4,未分配;
- 5,图形界面;
- 6,重启
- 系统默认运行级别配置:/etc/inittab
- 通过命令查看系统运行级别:runlevel
3.5.9. 给指定在线用户发信息
- 命令:write
- 语法:write 其它用户名,并按回车进入信息编辑,按ctrl+d保存结束
3.5.10. 给所有在线用户发信息
- 命令:wall,原意write all
- 语法:wall 信息内容
如果发送的内容比较长,可以事先将内容保存在文件中,然后使用读取文件命令:wall msgfile
3.5.11. 用户之间通信的邮件系统
-
发送:
第一步,在控制台输入mail 其它用户名;
第二步,在控制台输入标题和内容信息;
第三步,按ctrl + d执行发送。
-
接收:
在控制台直接输入mail查看信息:
- 输入邮件编号可以查看邮件,然后输入h就可以重回邮件列表。
- 输入n邮件编号可删除邮件。
- 输入q退出
3.6. 网络相关命令
3.6.1. 查看和设置网卡信息
- 命令:ifconfig,原意interface configure CentOS7 用 ip addr
- 语法:ifconfig 网卡名称 IP地址,如ifconfig eth0 ip
可以使用ifconfig -a查看有哪些网卡。
3.6.2. 测试网络连接
- 命令:ping
- 语法:ping [-c] 对方ip或域名
如果目标地址为外网,需要使用桥接模式或NAT模式并配置网络!
3.6.3. 永久设置网络ip
第1步,输入setup命令进入更改;
第2步,然后输入vim /etc/sysconfig/network-scripts/ifcfg-eth0, 将ONBOOT改为yes,再重启网络;
第3步,重启网络服务service network restart。
3.6.4. 显示数据包到主机间的路径
- 命令:traceroute
- 语法:traceroute 对方ip或域名
3.6.5. 显示端口占用信息
- 命令:netstat
- 语法:netstat [-antup]
3.7. 压缩与解压缩相关命令
3.7.1. 压缩解压命令一:*.gz
- 压缩语法:gzip 文件
- gzip只能压缩文件(并且只能压缩一个文件),不能压缩目录
- 压缩后不保留原文件
- 解压语法:gunzip 压缩文件
3.7.2. 压缩解压命令二:*.tar.gz
- 压缩语法:tar -zcf 压缩后的文件名 文件或目录…
相关参数介绍:
- z 打包时同时压缩;
- c 打包;
- f 指定文件名
- 解压语法:tar -zxvf 压缩文件 [-C 其它目录]
相关参数介绍:
- z 解压缩;
- x 解包;
- v 显示详细信息;
- f 指定压缩文件
*.tar.gz是使用最多的一种压缩格式,tar为打包,gz为压缩!
3.7.3. 压缩解压命令三:*.zip
- 压缩语法:zip [-r] 压缩后的文件名 文件或目录…
r 表示递归压缩目录文件
zip的相关特点:
- 压缩后能保留原文件
- 能压缩目录
- 能与windows上的zip文件通用
- zip的压缩比比较差
- 解压语法:unzip 压缩后的文件名
3.7.4. 压缩解压命令四:*.tar.bz2
- 压缩语法:tar -jcf 压缩后的文件名 文件或目录…
- 解压语法:tar -jxvf 压缩文件 [-C 其它目录]
3.8. 挂载设备
-
挂载
mount [-t 文件系统] 设备文件名 挂载点
以iso镜像文件挂载到Linux为例:
第1步,在虚拟机设置 -> CD/DVD -> 选择指定的iso镜像文件
第2步,在mnt目录下创建cdrom目录
第3步,执行mount -t iso9660 /dev/cdrom /mnt/cdrom进行挂载
第4步,挂载完成后就可以到/mnt/cdrom浏览器光盘中的文件
可以直接mount命令查看系统上所有的挂载情况!
-
取消挂载
umount /dev/cdrom
不要在正在挂载的目录下执行取消挂载命令!
3.9. 其它常用命令
- clear
- history
- df -h
- du -sh 文件或目录
- wget 网址
- curl 网址
- ps -ef | grep 软件名
- kill -9 pid
- time
- date
- cal
- free
- hostname
- …
4. 文本编辑器Vim
4.1. Vim编辑器简介
Vim是一个功能强大、Linux/Unix上最常用的文本编辑器,它的作用是建立、编辑、显示文本文件,整个操作过程全是由命令完成!
4.2. Vim编辑器常用操作
- 插入命令
- 定位命令
- 删除命令
- 剪切和复制命令
- 替换和撤消命令
- 搜索和搜索替换命令
- 保存和退出命令
5. 软件包管理
5.1. 软件包管理简介
软件包分类:
-
二进制包(RPM包、系统默认包)
Redhat系列和Debian系列的最明显的区别就是在软件包格式上,Redhat默认为*.rpm,Debian默认为*.deb
windows上的软件包不可以在linux上运行!
- 源码包
- 优点是可以查看源代码并且可以在不同发行版的Linux上安装;
- 缺点是安装麻烦、安装时间长。
5.2. RPM包管理
5.2.1. RPM包命名原则
mysql-connector-odbc-5.1.5r1144-7.el6.x86_64.rpm
参数组成:
mysql-connector-odbc 软件名
5.1.5r1144 软件版本
7 软件的发布次数
el6 适合的Linux平台
x86_64 适合的硬件平台
rpm 包扩展名
5.2.2. RPM包的依赖
- 依赖:a -> b -> c
- 依赖模块查询:www.rpmfind.net
依赖安装测试:
第1步,先挂载CentOS-6.5-x86_64-bin-DVD1
第2步,cd /mnt/cdrom/Packages
第3步,rpm -ivh mysql-connector-odbc-5.1.5r1144-7.el6.x86_64.rpm
注:rpm包安装不需要指定目录,安装后将默认生成到相关目录!
5.2.3. rpm命令管理(手工处理依赖性)
- 安装:rpm -ivh 包名
- 升级:rpm -Uvh 包名
- 卸载:rpm -e 包名
- 查询软件是否已安装:rpm -ql 软件名
- 查询与软件名相关的软件包:rpm -qa | grep 软件名
- 查询未安装包的依赖性:rpm -qpR 包名
测试使用CentOS 6.5里自带的rpm包,手工处理依赖安装Apache!
5.2.4. yum在线管理(自动处理依赖性)
- 查询所有可用软件包列表:yum list
- 搜索服务器上所有和关键字相关的包:yum search 关键字
- 安装:yum -y install 包名
- 升级:yum -y update 包名,别忘了包名,否则将会误升级Linux内核
- 卸载:yum -y remove 包名,尽量少用,可能会误删除系统文件
5.2.5. 使用yum安装apache
第1步,yum -y install httpd;
第2步,service httpd start|restart|stop;
第3步,开启服务器后,测试服务器是否开启成功。
测试方式有:安装完成后,输入httpd -v可查看apche的安装版本!
- 本地:curl http://localhost
- 外部:在浏览器上输入服务器的ip测试
需要注意的是,如果在外部无法访问,需要设置防火墙开启80端口:
第1步,打开防火墙配置:vi /etc/sysconfig/iptables
第2步,开启80端口:-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEP
第3步,重启防火墙,配置生效:service iptables restart
当然也可以直接关闭防火墙service iptables stop,这在生产环境中是不允许的!
另外,也可以在Windows上使用telnet命令查看80端口是否开启:telnet 192.168.0.24 80
5.3. 源码包管理
5.3.1. 源码包与RPM包安装的位置不同
- RPM包为默认安装位置,可通过rpm -ql 软件名查看相关路径
- 源码包的安装位置,一般是源码存放在/usr/local/src目录,最终安装在/usr/local目录
5.3.2. 源码包与RPM包安装的启动方式不同
- RPM包安装的服务可通过系统服务命令来启动
- service httpd start|restart|stop
- /etc/rc.d/init.d/httpd start|restart|stop
可通过/etc/rc.d/init.d和setup查看系统安装了哪些服务!
- 源码包安装的服务,没有安装到默认路径中,只能由绝对路径启动
- /usr/local/apache/bin/apachectl start|restart|stop
5.3.3. 源码安装方式
-
Makefile方式
以Makefile方式安装Apache为例(大致步骤):http://www.cnblogs.com/zhuque/archive/2012/11/03/2763352.htmlhttp://blog.csdn.net/u011214505/article/details/48130533
第1步,安装C语言编译器yum -y install gcc (实际安装时可能还需要三方依赖)
第2步,下载httpd-2.4.27.tar.gz,并传至linux的/usr/local/src下,再解压
第3步,进入解压目录,然后vi INSTALL,根据INSTALL提示进行安装
$ ./configure --prefix=/usr/local/apache,生成Makefile文件
$ make,编译
$ make install,安装
$ /usr/local/apache/bin/apachectl start,启动
-
脚本安装包方式
脚本安装包是人为把安装过程写成了自动安装的脚本,只要执行脚本,定义简单的参数,就可以完成安装。如webmin、mysql等软件
-
绿色版方式安装
解压即安装完成。如jdk、tomcat等软件
6. 相关软件的安装与配置
6.1. 安装JDK
第1步,卸载CentOS自带的Java环境
先查看安装rpm -qa | grep java,再做对应卸载yum -y remove java
第2步,下载jdk-8u144-linux-x64.tar.gz,并传至linux的/usr/local/src下
第3步,解压tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/local
第4步,配置环境变量
vim /etc/profile,在最后加入以下几行,并保存退出:
export JAVA_HOME=/usr/local/jdk1.8.0_144
export PATH=$PATH:/usr/local/jdk1.8.0_144/bin
需要刷新配置环境变量;source /etc/profile
第5步,source /etc/profile,并在控制台输入javac测试安装是否完成
6.2. 安装Tomcat
第1步,在安装前要安装JDK,并一定要配置环境变量JAVA_HOME!
第2步,下载apache-tomcat-8.0.46.tar.gz,并传至linux的/usr/local/src下
第3步,解压tar -zxvf apache-tomcat-8.0.46.tar.gz -C /usr/local
第4步,转至/usr/local/apache-tomcat-8.0.46/bin目录
第5步,启动Tomcat:./startup.sh
Tomcat的两种启动方式:
./startup.sh
,默认为后台启动
查看控制台的输出:more /usr/local/apache-tomcat-8.0.46/logs/catalina.out
./catalina.sh run
,默认为前台启动(可以看到控制台)
不能访问这可能是没有开启端口,可关闭防火墙或者开启相关的端口
6.3. 安装MySQL
第1步,MySQL数据库安装(CentOS操作系统/tar.gz方式)
具体安装步骤:http://www.cnblogs.com/sybblogs/p/5633956.html
第2步,配置环境变量
vim /etc/profile,在PATH后追加MySQL的bin目录路径:
export PATH=$PATH:/usr/local/jdk1.8.0_144/bin:/usr/local/mysql/bin
第3步,source /etc/profile
第4步,连接数据库,mysql -u用户名 -p密码
- 登录成功后可查询MySQL的字符集:show variables like ‘character%’;
- 允许MySQL的远程访问:GRANT ALL PRIVILEGES ON *.* TO root@’%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;
操作完后切记执行以下命令刷新权限:FLUSH PRIVILEGES;
第5步,停止服务,/usr/local/mysql/support-files/mysql.server stop
6.4. 安装Apache
参考5.2.5. 使用yum安装apache
7. 用户和用户组管理
7.1用户的管理
useradd 添加一个用户
useradd test 添加test用户
useradd test -d /home/t1 指定用户home目录
passwd 设置、修改密码
passwd test 为test用户设置密码
切换登录:
ssh -l test -p 22 192.168.19.128
su – 用户名
userdel 删除一个用户
userdel test 删除test用户(不会删除home目录)
userdel –r test 删除用户以及home目录
7.2组管理:
当在创建一个新用户user时,若没有指定他所属于的组,就建立一个和该用户同名的私有组
创建用户时也可以指定所在组
groupadd 创建组
groupadd public 创建一个名为public的组
useradd u1 –g public 创建用户指定组
groupdel 删除组,如果该组有用户成员,必须先删除用户才能删除组。
groupdel public
7.3 id,su命令
【id命令】
功能:查看一个用户的UID和GID
用法:id [选项]… [用户名]
直接使用id
直接使用id 用户名
【su命令】
功能:切换用户。
用法:su [选项]… [-] [用户 [参数]… ]
示例:
su u1 切换到u1用户
su - u1 切换到u1用户,并且将环境也切换到u1用户的环境(推荐使用)
【账户文件】
/etc/passwd 用户文件
/etc/shadow 密码文件
/etc/group 组信息文件
【用户文件】
root❌0:0:root:/root:/bin/bash
账号名称: 在系统中是唯一的
用户密码: 此字段存放加密口令
用户标识码(User ID): 系统内部用它来标示用户
组标识码(Group ID): 系统内部用它来标识用户属性
用户相关信息: 例如用户全名等
用户目录: 用户登录系统后所进入的目录
用户环境: 用户工作的环境
【密码文件】
shadow文件中每条记录用冒号间隔的9个字段组成.
用户名:用户登录到系统时使用的名字,而且是惟一的
口令: 存放加密的口令
最后一次修改时间: 标识从某一时刻起到用户最后一次修改时间
最大时间间隔: 口令保持有效的最大天数,即多少天后必须修改口令
最小时间间隔: 再次修改口令之间的最小天数
警告时间:从系统开始警告到口令正式失效的天数
不活动时间: 口令过期少天后,该账号被禁用
失效时间:指示口令失效的绝对天数(从1970年1月1日开始计算)
标志:未使用
【组文件】
root❌0:
组名:用户所属组
组口令:一般不用
GID:组ID
用户列表:属于该组的所有用户
…
8. 权限管理
8.1文件权限
属主(user) | 属组(group) | 其他用户 | ||||||
---|---|---|---|---|---|---|---|---|
r | w | x | r | w | x | r | w | x |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
8.2 Linux三种文件类型:
普通文件: 包括文本文件、数据文件、可执行的二进制程序文件等。
目录文件: Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。
设备文件: Linux系统把每一个设备都看成是一个文件
8.3文件类型标识
普通文件(-)
目录(d)
符号链接(l)
* 进入etc可以查看,相当于快捷方式
字符设备文件(c)
块设备文件(s)
套接字(s)
命名管道(p)
8.4 文件权限管理:
chmod 变更文件或目录的权限。
chmod 755 a.txt
chmod u=rwx,g=rx,o=rx a.txt
chmod 000 a.txt / chmod 777 a.txt
chown 变更文件或目录改文件所属用户和组
chown u1:public a.txt :变更当前的目录或文件的所属用户和组
chown -R u1:public dir :变更目录中的所有的子目录及文件的所属用户和组
9. 文件系统管理
…
10. Linux服务管理
…
11. Linux系统管理
…
12. 日志管理
…
13. 启动管理
…
14. 备份与恢复
…
15. Shell编程
…
附录
1. 相关面试题
- 熟悉Linux吗?它主要的应用领域是什么?
- 说说Linux中的10个常用命令?
- Linux与Windows有什么不同?为什么都推荐使用Linux做为服务器?
- Linux的软件安装方式有哪些?各有什么区别?
- 在Linux中部署项目的流程?