初识Linux
Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
目前市面上较知名的发行版有:Ubuntu、RedHat、CentOS、Debain、Fedora、SuSE、OpenSUSE
比较 | Window | Linux |
---|---|---|
界面 | 界面统一,外壳程序固定所有Windows程序菜单几乎一致,快捷键也几乎相同 | 原形界面风格依发布版本不同而不同,可能互不兼容。GNU/Linux的终端机是从UNIX传承下来,基本命令和操作方法也几乎一致。 |
驱动程序 | 驱动程序丰富,版本更新频繁。默认安装程序里面一般包含有该版本发布时流行的硬件驱动程序,之后所出的新硬件驱动依赖于硬件厂商提供。对于一些老硬件,如果没有了原配的驱动有时候很难支持。另外,有时硬件厂商未提供所需版本的Windows下的驱动,也会比较头痛。 | 由志愿者开发,由Linux核心开发小组发布,很多硬件厂商基于版本考虑并未提供驱动程序,尽管多数无需手动安装,但是涉及安装则相对复杂,使得新用户面对驱动程序问题会一筹莫展。但是在开源开发模式下,许多老硬件尽管在Windows下很难支持的也容易找到驱动。HP、Intel、AMD等硬件厂商逐步不同程序支持开源驱动,问题正在得到缓解。 |
使用 | 使用比较简单,容易入门。圆形化界面对没有计算机背景知识的用户使用十分有利。 | 圆形界面使用简单,容易入门。文字界面,需要学习才能掌握。 |
学习 | 系统构造复杂、变化频繁、且知识、技能淘汰快,深入学习困难 | 系统构造简单、稳定,且知识、技能传承性好,深入学习相对容易 |
软件 | 每一种特定功能可能都需要商业软件的支持,需要购买相应的授权 | 大部分软件都可以自由获取,同样功能的软件选择较少。 |
虚拟机联网
关闭防火墙
-
关闭防火墙:systemctl stop firewalld.service
-
禁用防火墙:systemctl disable firewalld.service(下次开机不开启)
-
查看防火墙:systemctl status firewalld.service
-
关闭Selinux:vi /etc/selinux/config
-
将SELINUX=enforcing改为SELINUX=disabled(安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。)
修改IP
-
善用Tab键
-
vi /etc/sysconfig/network-scripts/ifcfg-ens33
-
BOOTPROTO=static
-
ONBOOT=yes
-
IPADDR=192.168.X.51
-
GATEWAY=192.168.X.2
-
DNS1=8.8.8.8
-
DNS2=8.8.4.4
-
NETMASK=255.255.255.0
-
-
vi /etc/resolv.conf
-
nameserver 8.8.8.8
-
nameserver 8.8.4.4
-
重启网卡:service network restart
修改主机名
-
hostnamectl set-hostname 主机名
IP和主机名关系映射
-
vi /etc/hosts
192.168.1.51 bigdata111
192.168.1.52 bigdata112
192.168.1.53 bigdata113
121.37.22.186 host
192.168.0.33 client1
192.168.0.99 client2
-
在windows的C:\Windows\System32\drivers\etc路径下找到hosts并添加
192.168.1.51 bigdata111
192.168.1.52 bigdata112
192.168.1.53 bigdata113
连接Xshell
-
输入IP、用户名和密码
虚拟机快照
Linux常用的命令
文件类型 | 属主权限 | 属组权限 | 其他用户权限 |
---|---|---|---|
- | 1 1 1 | 1 0 1 | 1 0 1 |
d | R w x | R - x | R - x |
目录文件 | 读 写 执行 | 读 写 执行 | 读 写 执行 |
一般模式
-
yy 复制
-
yNy 复制N行
-
p 粘贴
-
u 撤销
-
dd 删除一行
-
dNd 删除N行
-
shift + ^ 移动到行头 HOME
-
shift + $ 移动到行尾 END
-
N + shift + g 跳到第N行
编辑模式
-
i 进入编辑模式
-
o 进入下一行的编辑模式
指令模式
-
w 保存
-
q 退出
-
!感叹号强制执行
文件目录类
-
cd 切换目录
-
pwd 显示当前工作目录
-
ls 列出目录内容
-
mkdir 创建新目录
-
mkdir -p 递归创建
-
touch 创建空文件
-
rm 删除文件
-
绝对路径和相对路径
-
cp 复制文件或目录
-
cp -r 递归复制
-
mv 移动目录
-
cat 查看文件
-
more 分页查看文件
-
空格 向下翻页
-
ctrl + B 返回上一屏
-
-
tail -F 监控文件
-
echo 追加文件
-
ln -s [原文件] [目标文件] 软连接
-
history 历史服务器
时间日期类
-
date 显示当前时间
-
date -s 设置系统时间
-
date -s ‘2019-03-09 23:23:23’
-
cal 查看日历
-
tab 自动补充键
用户管理命令
-
useradd [用户] 添加新用户
-
userdel [用户] 删除新用户
-
passwd [用户] 设置用户密码
-
id [用户] 判断用户是否存在
-
su [用户] 切换用户
-
/etc/sudoers 设置普通用户具有root权限
-
usermod 修改用户
-
usermod -g dev itstar 把用户itstar加入到dev用户组
-
groupadd itstar 新增用户组
-
groupdel 删除组
-
groupmod 修改组
-
cat /etc/group 查看创建了哪些组
文件权限类
-
chmod改变权限 chmod -R 777 用户名
-
chown [最终用户] [文件或目录]
-
chown -R itstar:itstar [文件名]
-
su [用户] 切换用户
搜索查找类
-
find [搜索范围] [匹配条件]
-
按文件名
-
find /opt -name *.jar
-
-
按拥有者
-
find /opt -user itstar
-
-
按文件大小(在某目录下查找大于1M的文件)
-
find /opt -size +1024
-
-
grep 管道符
-
grep + 参数 + 查找内容 + 源文件
-
-
rpm -qa|grep mysql 查找系统中是否有mysql的rpm包
-
grep "C \ |A" A 注:区分大小写
-
grep -i "C \ |A" A 是不区分大小写
-
进程线程类
-
ps -aux 查看系统中的进程
-
USER //用户名
-
%CPU //进程占用的CPU百分比
-
%MEM //占用内存的百分比
-
VSZ //该进程使用的虚拟內存量(KB)
-
RSS //该进程占用的固定內存量(KB)(驻留中页的数量)
-
STAT //进程的状态
-
START //该进程被触发启动时间
-
TIME //该进程实际使用CPU运行的时间
-
ps -ef 查看系统中的进程
-
UID //用户ID、但输出的是用户名
-
PID //进程的ID
-
PPID //父进程ID
-
C //进程占用CPU的百分比
-
STIME //进程启动到现在的时间
-
TTY //该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主 机进程。
-
CMD //命令的名称和参数
-
-
top 查看系统的健康状态
-
VIRT:virtual memory usage 虚拟内存\
-
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
-
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量
-
-
RES:resident memory usage 常驻内存
-
1、进程当前使用的内存大小,但不包括swap out
-
2、包含其他进程的共享
-
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
-
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小
-
-
SHR:shared memory 共享内存
-
1、除了自身进程的共享内存,也包括其他进程的共享内存
-
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
-
3、计算某个进程所占的物理内存大小公式:RES – SHR
-
4、swap out后,它将会降下来\
-
-
DATA
-
1、数据占用的内存。如果top没有显示,按f键可以显示出来。
-
2、真正的该程序要求的数据空间,是真正在运行中要使用的。
-
-
-
kill 进程 kill -9 进程号、直接杀死进程
压缩和解压缩
-
gzip + 文件 压缩文件 注:不能压缩目录
-
gunzip + 文件.gz 解压缩文件
-
unzip + *.zip 解压文件
-
zip a.zip a 把a压缩成zip格式的文件
-
-bash: unzip: command not found
-
tar
tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个, 可以和别的命令连用但只能用其中一个。 下面的参数是根据需要在压缩或解压档案时可选的。 -z:有gzip属性的 -j:有bz2属性的 -Z:有compress属性的 -v:显示所有过程 -O:将文件解开到标准输出
-
yum install zip
-
yum install unzip
Linux定时任务Crontab
基本语法
crontab -e 编辑定时任务 crontab -l 查询定时任务 crontable -r 删除定时任务
crontab -e进入编辑状态,* * * * * 执行的任务
项目 | 含义 | 范围 |
---|---|---|
第一个“*” | 一小时当中的第几分钟(分) | 0-59 |
第二个“*” | 一天当中的第几小时(时) | 0-23 |
第三个“*” | 一个月当中的第几天(天) | 1-31 |
第四个“*” | 一年当中的第几月(月) | 1-12 |
第五个“*” | 一周当中的星期几(周) | 0-7(0和7都代表星期日) |
特殊符号
特殊符号 | 含义 |
---|---|
* | 代表任何时间。比如第一个“*”就代表一小时中每分钟都执行一次的意思。 |
, | 代表不连续的时间。比如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执行一次命令 |
- | 代表连续的时间范围。比如“0 5 * * 1-6命令”,代表在周一到周六的凌晨5点0分执行命令 |
*/n | 代表每隔多久执行一次。比如“*/10 * * * * 命令”,代表每隔10分钟就执行一遍命令 |
特定时间执行命令
时间 | 含义 |
---|---|
45 22 * * * 命令 | 在22点45分执行命令 |
0 17 * * 1 命令 | 每周1 的17点0分执行命令 |
0 5 1,15 * * 命令 | 每月1号和15号的凌晨5点0分执行命令 |
40 4 * * 1-5 命令 | 每周一到周五的凌晨4点40分执行命令 |
*/10 4 * * * 命令 | 每天的凌晨4点,每隔10分钟执行一次命令 |
0 0 1,15 * 1 命令 | 每月1号和15号,每周1的0点0分都会执行命令。注意:星期几和几号最好不要同时出现,因为他们定义的都是天。非常容易让管理员混乱。 |
案例:
*/1 * * * * echo “1” >> /opt/Coeus
翻译:每分钟把1追加到该目录中
安装linux版本JDK
卸载现有Openjdk
-
查询是否安装java软件:
rpm -qa|grep java
-
如果安装的版本低于1.7,卸载该jdk:
rpm -e 软件包名字
-
在/opt目录下创建两个子文件
-
mkdir /opt/module 和 /opt/software
-
上传安装包
使用XManager中的Xftp上传
解压安装包
tar -zxvf jdk安装包名 -C 目标目录
环境变量配置
vi /etc/profile
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH 或 export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
测试安装是否成功
-
java -version
vim命令安装
root@server1 [~]# rpm -qa|grep vim
vim-enhanced-7.0.109-7.el5
vim-minimal-7.0.109-7.el5
vim-common-7.0.109-7.el5
如果少了其中的某一条,比如 vim-enhanced 的,就用命令 yum -y install vim-enhanced 来安裝:
yum -y install vim-enhanced
如果上面的三条一条都沒有返回, 可以直接用 yum -y install vim* 命令
yum -y install vim*