写在前面
嗨。好久不见。过去一个月左右时间把Linux跟着视频教程走了一遍。哈哈哈。其实在大一的时候就开了这门课。只不过那时候啥都不知道,也没怎么好好学习。但到后面发现其实Linux还是很必要去学一下的,那几个常用的几个命令也应该略知一二。去很多招聘网站上应聘很多公司都要求需具备Linux底子。多说一句,最近发现学习一下Linux还是很有必要的它是基础,后面的很多像Jenkis和Docker都需要Linux知识加以辅助。所以。没办法。学呗。
还是老样子。我习惯找一个不错的教程,跟着老师系统的学习一下。老师在上面敲,我就对照老师也敲。每次学习之前,都会花费一些时间把上次学过的内容先复习一下,然后去学习新的东西。一来回顾+复习。二来看完上次的内容,容易把自己的思路带到下一节课有利于更好的把注意力放到新的知识学习上。
https://www.bilibili.com/video/av21303002?p=5。献上学习地址。顺带把课程中的资料教程软件放到我百度网盘上。https://pan.baidu.com/s/1rOGpRxLAcoPBDoZDZRY0bg 提取码4s3u。有需要的朋友欢迎点开下载。
废话不多说 开始吧。
上图是老师上课的课程大纲。后面还有一个对Java开发的定制篇。
本篇文章也按照上面的目录来进行回顾整理吧。
Ps:附上文章目录。
鉴于Linux入门相对来说偏理论,在这里就不展开描述了。需要的朋友可以去我的百度网盘里下载文档。里面很详细哦。
VM 和 Linux 系统(CentOS)安装
理解这张图很有必要。在VM12这个软件中开辟一个虚拟机空间,在这个空间中安装我们的Centos系统。Ps:安装VM12前需要确保你的电脑开启虚拟化设备支持(f2, f10)。
具体安装步骤可以参考上面老师教程视频,老师讲的很详细,一步步来即可。
考点:虚拟机网络连接的3种模式?
①桥连接:同一个网段中可以和其他系统进行通信,但容易IP冲突。
②NAT模式:可以访问外网,不会造成IP冲突。
③主机模式:无法访问外网。
vmtools工具安装
1)可以直接粘贴命令在windows 和 centos系统之间
2)可以设置 windows 和 centos 的共享文件夹
3)示意图
1.进入 centos
2.点击 vm 菜单的->install vmware tools
3.centos 会出现一个 vm 的安装包
4.点击右键解压, 得到一个安装
5.进入该 vm 解压的目录 ,该文件在 /root/桌面/vmware-tools-distrib/下
6.安装 ./vmware-install.pl
7.全部使用默认设置即可
8.需要 reboot 重新启动即可生效
设置共享文件夹。
Linux 的目录结构
在 Linux 世界里,一切皆文件。
列举几个常用的文件目录。以防面试。
/bin:存放用户经常使用的指令/命令
/root:系统管理员主目录
/dev:类似windows设备管理器硬件CPU DISK(用文件形式存储)
/mnt:挂载别的文件 共享文件
/media:识别一些设备 U盘光驱USB
远程登录(XShell XFTP)
特别说明:如果希望安装好 XShell 5 就可以远程访问 Linux 系统的话,需要有一个前提,就是Linux 启用了 SSHD 服务,该服务会监听 22 号端口。
解决XFTP5中文乱码问题。
vi和vim编辑器
vi和vim三种常见模式
1.正常模式
n dd删除n行
n yy再p复制n行
G最末端 gg最顶端
u撤销
2.编辑模式
输入i进行编辑
3.命令行模式
:wq :q :q!
set nu设置行号
set nonu取消行号
显示行号。输入要显示的行数。shift+G跳转。
开机、重启和用户登录注销
shutdown
shutdown -h now:表示立即关机
shutdown -h 1 : 表示 1 分钟后关机
shutdown -rnow: 立即重启
halt
直接关机
reboot
重启
sync
内存数据保存到磁盘
logout
注销Ps:图形界面无效 远程登陆xhsell中才行
用户管理
1) Linux系统是一个多用户多任务的操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
2) Linux 的用户需要至少要属于一个组。
添加用户
当创建用户成功后,会自动的创建和用户同名的家目录。
useradd –d 指定目录 用户名
useradd –g 用户组 用户名
删除用户
userdel 用户名 --->删除用户保留家目录
userdel –r 用户名 --->删除用户且删除家目录
查询用户
id 用户名
whoami
设置用户密码
passwd 用户名
切换用户
su – 用户名
exit 切换回原用户
从权限高的用户切换到权限低的用户,不需要输入密码,反之需要。
当需要返回到原来用户时,使用 exit 指令。
增加组
groupadd 组名
删除组
groupdel 组名
修改用户组
usermod –g 用户组 用户名
和用户、组相关的文件
/etc/passwd
用户配置文件。记录用户信息
/etc/group
组配置文件。组的信息
/etc/shadow
口令配置文件。用户密码
实用指令
7大运行级别
0:关机
1:单用户【找回丢失密码】
2:多用户状态没有网络服务
3:多用户状态有网络服务
4:系统未使用保留给用户
5:图形化
6:重启
切换到指定运行级别的指令
/etc/inittab配置文件中修改id:5:initdefault
或者init [012356]
面试题:
问:如何找回 root 密码,如果我们不小心,忘记 root 密码,怎么找回?
答:进入单用户模式(root无需密码)修改root密码
帮助指令
man [命令或配置文件] man ls
help [命令或配置文件] help ls
文件目录类
pwd 显示当前工作目录
ls [-a –l -h] 查看当前目录所有内容信息
cd [~ ..]切换目录
绝对|相对路径 绝对:/ 相对:../home
mkdir [-p创建多级目录] 创建目录
rmdir 删除空目录
touch 创建空文件
[\ 强制覆盖] cp [-r 整个目录] 拷贝文件到指定目录
rm [-r -f] 删除文件或目录
mv 移动或重命名
cat 查看文件内容 cat –行号 /etc/passwd | more 分页显示
more 全屏按页显示
less 分屏查看 并不是将整个文件加载显示
ls –l > 文件 覆盖写入文件 (文件若不存在 则新建文件)
ls –l >> 文件 追加内容到文件
echo 输出内容到控制台
head [-n] 文件 显示文件开头部分
tail [-n -f] 文件 输出文件尾部内容。实时追踪该文件的变化。
ln –s[原文件或目录] [软链接名] cd 软链接名
history 查看已经执行过的指令 !历史编号 执行历史编号的指令
时间日期类
date [-s 设置日期]显示当前日期 date “+%Y年-%m月-%d %H:时%M:分%S:秒”
cal 查看日历
搜索文件类
find [搜索范围] [-name –user -size]
locate 文件名 快速定位文件路径。前提 必须先执行updatedb
grep [-n显示行号 –i忽略大小写] 过滤指令
|管道符号 将前一个命令结果传递给后面命令处理
cat home.txt | grep –n –I lth 查找home.txt文件中 lth忽略大小写并显示行号
压缩和解压缩类
gzip 文件 压缩文件
gunzip 文件.gz 解压缩文件
zip [-r] 文件 路径。zip –r a.zip /home/a.txt
unzip [-d] 解压到的目录 文件 unzip –d /home/lth a.zip
tar –zcvf 打包的文件 tar –zcvf a.tar.gz a.txt b.txt
tar –zxvf 待解压的文件 –C 指定目录 tar –zxvf a.tat.gz –C /home/a
组管理和权限管理
在 linux 中的每个用户必须属于一个组,不能独立于组外。在 linux 中每个文件有所有者、所在组、其它组的概念。
查看文件所有者
ls –ahl
改变文件所有者
-R 如果是目录则使其下所有子文件或目录递归生效
chown 用户名 文件名
改变文件所在组
-R 如果是目录则使其下所有子文件或目录递归生效
chgrp 用户组 文件名
权限的基本介绍
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
rwx权限详解
作用到文件: w 代表可写(write)可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
作用到目录: w代表可以修改,目录内创建+删除+重命名目录
修改权限-chmod
第一种方式:+ 、-、= 变更权限
第二种方式:通过数字变更权限
规则:r=4 w=2x=1 ,rwx=4+2+1=7
chmod u=rwx,g=rx,o=x文件目录名
相当于chmod 751 文件目录名
crond 定时任务调度
基本语法
crontab[选项]
执行 crontab –e 命令。接着输入任务到调度文件。
*/1 * * * * ls –l >>/tmp/to.txt
分时日月天。
每一分钟都会自动的调用 ls -l /etc >> /tmp/to.txt
1) crontab –r:终止任务调度。
2) crontab –l:列出当前有那些任务调度
3) service crond restart [重启任务调度]
磁盘分区、挂载
分区基础知识
mbr分区:最大支持4个主分区,每个只支持2TB
gtp分区:无限多个主分区最大支持18EB容量
Linux硬盘分IDE 硬盘和 SCSI 硬盘,目前基本上是 SCSI 硬盘。
hda3 表示为第一个IDE 硬盘上的第三个主分区或扩展分区,
hdb2 表示为第二个IDE 硬盘上的第二个主分区或扩展分区。
使用 lsblk 指令查看当前系统的分区情况
给我们的 Linux 系统增加一个新的硬盘
详情步骤请参考百度网盘里的文档资料哈!
步骤:
分区 fdisk /dev/sdb
格式化硬盘 mkfs –t ext4(分区类型) /dev/sdb
挂载 mount /dev/sdb /home/newdisk
永久挂载
vim/etc/fstab
/dev/sdb1 /home/newdisk ext4 defaults 0 0
mount –a 生效
磁盘情况查询
df –hl 查询系统整体使用情况
du –cha --max-depth = 1 /目录 查询指定目录的磁盘占用情况
*查询目录/文件/文件夹个数
ls–l R/home/ | grep “^d” | wc -l
网络配置
本章节 主要是偏实操性,详情可以参照百度网盘里的详细文档哈。
查看网络IP和网关
虚拟网络编辑器
NAT设置
ping 测试主机之间网络连通
[root@hadoop100桌面]# ping www.baidu.com
linux 网络环境配置
1.自动配置(获取)系统—首选项—网络连接
缺点:每次重启后ip都不一样
2.指定固定ip
/etc/sysconfig/network-scripts/ifcfg-eth0
service network restart 重启生效
进程管理
显示系统执行进程
ps –aux | grep sshd
查看进程的父进程
ps –ef | grep sshd
终止进程 kill 和 killall
kill [-9] 进程号
killall 进程名称
终止多个 gedit 编辑器【killall , 通过进程名称来终止进程】
查看进程树
pstree [-p pid –u uid]
请你树状的形式显示进程的 pid
服务管理
在 CentOS7.0 后不再使用 service ,而是 systemctl
service 服务名 [start | stop |restart | reload | status]
例如 防火墙开启和关闭
service iptables status
service iptables start
查看系统开了哪些服务
setup
ls –l /etc/init.d
chkconfig 指令
通过 chkconfig 命令可以给每个服务的各个运行级别设置自启动/关闭
1.查看服务
chkconfig --list | grep XXX
2.查看某个服务
chkconfig 服务名 --list
3.设置服务自启动
chkconfig --level 数字 服务名 off/on
chkconfig --level 5 sshd off
*chkconfig 重新设置服务后自启动或关闭,需要重启机器 reboot 才能生效
动态监控进程
top与 ps 命令很相似。它们都用来显示正在执行的进程。top 与 ps 最大的不同之处,在于 top 在执行一段时间可以更新正在运行的的进程。
输入u 再输入用户
输入k 再输入要删除的id号
top –d 10 每隔10秒自动刷新
监控网络指令
netstat [-an按一定顺序排序 –p哪个进程在使用]
查看所有网络的网络服务
netstat –anp
*telnet ip 端口 telnet 192.168.2.64 22 验证端口是否开启
RPM和YUM
rpm
-qa | grep XXX 包简单查询
-qi软件包名 查询安装的rpm包软件信息
-ql软件包名 查询rpm软件包的安装位置
-qf文件路径 查询某个文件属于哪个软件包
卸载rpm包
rpm [-e --nodeps强制删除] 软件名
安装rpm包
rpm –ivh XXXXXXX.rpm
yum
Yum是一个 Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。使用 yum 的前提是可以联网。
查询yum 服务器是否有需要安装的软件
yum list | grep xx 软件列表
yum install tree 下载安装
接下来便是Linux之JAVAEE定制篇。详情请看网盘里的说明文档。Good Luck you~