特点:
自由使用
开源
多用户、多任务、多线程、多CPU
linux组成:
linux = 内核 + shell(解释器) + 文件系统 + 应用程序
linux分支:
Redhat
偏向于linux原生,命令行操作
Debian
偏图形化界面操作
linux应用
服务器
linux:用的最多
Redhat、centOS
Unix(HP unix)
Windows server(2008,2012)
手机操作系统
平台
嵌入式
linux思想
linux上一切皆文件
linux系统安装
通过虚拟机来安装centOS(6.4)
虚拟机:使用VMware实现硬件的虚拟化
基本环境的配置(root )
配置主机名:
查看主机名:hostname
修改主机名
临时:hostname bigdata-training01.huadian.com
永久:
vi /etc/sysconfig/network
输入“i” ->编辑 -》“ESC” ->”:” ->输入”wq“
配置网络:
ip:192.168.59.160
网关:192.168.59.2
DNS:8.8.8.8
详情配置,看截图
是否成功的标准:
(1)ifconfig 是否能看到192.168.59.160
(2)ping 192.168.59.160能通
效果图在截图中
(3)在window下也能ping通
网络映射(linux和window):
ping bigdata-training01.huadian.com
修改配置:
vi /etc/hosts
成功的标志:
能ping,并且看到192.168.59.160,不能看到其他ip
在window下,修改配置文件
C:\Windows\System32\drivers\etc\hosts
添加 192.168.59.160 bigdata-training01.huadian.com
成功的标准:
在windows下 ping bigdata-training01.huadian.com
能ping,并且看到192.168.59.160,不能看到其他ip
linux远程连接工具
你购买了阿里云,
ip,root,root用户对于的密码,远程连接上
SecureCRTSecure
SecureCRTPortable:远程命令行
SecureFXPortable:远程文件传输
自个上传一个文件试试
notepad++:支持远程文件编辑的文件编辑工具
xmanager:
Xshell:远程命令行工具
Xftp:远程文件传输工具
快捷键:
(1)输入命令的时候,tab键有自动补全功能
(2)复制:鼠标滚轮
(3)粘贴:鼠标 右键
linux的目录结构
相对路径和绝对路径
绝对路径:
访问一个文件或者目录,从”/“开始
项目路径:
从当前目录开始找
a
b
b1 .....
b2
c
c1
c2
linux常见命令
linux命令的通用格式
命令 [选项(参数)] 操作的目录或者文件
ls:list
列举某个目录下有哪些文件
-a:显示包含隐藏文件
-l: 使用长格式查看
ls -l === ll ,ll是别名
ls,ll:实现当前目录
cd:change directory
切换目录
pwd:print work directory
打印当前工作目录
clear:清屏 == Ctrl+L
history:查看命令的历史记录
文件管理
创建文件
touch file_path
touch aa.txt
如果一次性创建多个文件,中间用空格分割
如果创建文件名中包含空格 ,需要使用双引号 引起来
目录
mkdir dir_path
常用参数:
-p :递归创建
删除
文件:
rm:remove
rm file_path
常用参数:
-f:免确认
目录:
rmdir:删除空目录
rm -r:表示删除是目录
最常用:
rm -rf:免确认删除目录
编辑
复制 cp:copy
cp source_file target_file
cp a.txt test/ 复制a.txt到test目录下
cp a.txt test/aa.txt 复制a.txt到test目录下,并设置该文件的名称
移动mv:move
mv source_file target_file
重命名
mv old_file_name new_file_name
mv IMG_9888.JPG img_9888.jps
查看
(1)cat:直接实现文件所有内容
(2)more:分页查看
按“enter”查看下一页
(3)less:分页查看
按键盘上下键可以分页查看
(4)head:查看文件头部内容,默认是显示10行
-20 查看文件前20行内容
(5)tail:查看文件尾部内容,默认是显示10行
-20 查看文件后20行内容
-F:动态查看
linux用户
用户分类
管理员
UID=0
root :x :0: 0 :root :/root :/bin/bash
用户名:密码:UID:GID:所属组:家目录: 所用的shell
普通用户
自己创建的用户,默认UID 500开始
huadian:x:500:500:huadian:/home/huadian:/bin/bash
家目录:
/home/&username
用户信息文件:
/etc/passwd
用户组:
/etc/group
默认情况,
创建一个用户的同时,会创建一个用户组,
用户和用户组 同名
用户的操作
添加:useradd
useradd LW
查看:id
id LW
设置密码:passwd
passwd LW
删除:userdel
userdel LL:删除用户
userdel -r LL:删除用户,并删除家用户
切换用户:su
su - username
su - huadain
su - root :切换到root用户
su - :切换到root用户
退出:exit
权限管理
linux中用户的分类
小李 小李对象 老王
所有者u 同组用户g 其他人o
linux中文件权限
读r 写w 执行x 没有权限-
文件详情信息:
-rw-r–r–. 1 root root 5 Aug 28 02:27 a.txt
d rwx r-x r-x. 2 root root 4096 Aug 27 08:52 test
第一位:d:目录,-:文件
rw- r– r–
所有者 同组用户 其他人
只有读写 只有读 只有读
1:该文件的链接数
root:文件所属者
root:文件所属组
5 Aug 28 02:27:最后的修改时间
修改权限:chmod
格式: chmod [添加或者删除权限] file
通过字符修改:
给 其他人 有 写的权限
chmod o+w aa.txt
删除 其他人 有 写的权限
chmod o-w aa.txt
所有用户 都具有写的权限
chmod u+w,g+w,o+w aa.txt
chmod a+w aa.txt
通过数字来修改:3位8进制表示权限
rw- r– r–
110 100 100
6 4 4
chmod 644 aa.txt
chmod 666 aa.txt:
660 =110110110 = rw-rw-rw-
777:rwxrwxrwx
修改文件的所属用户和所属组 chown
chown username:groupName aa.txt
chown username: aa.txt
chown :groupName aa.txt
-R:递归子目录修改所属者和所属组
文本编辑工具vi/vim
vi file_path
如果编辑的的问价不存在,保存以后,默认该文件会被创建
3种模式:
命令模式:
输入一些命令,比如复制、粘贴、删除等快捷键命令
i:进入插入模式。
yy:复制当前行
3yy:复制当前行开始的,连续3行
p:在当前位置粘贴
dd:删除当前
5dd:删除 当前开始,连续5行
9999999999999999999dd
u:撤销上一步
gg:跳转到第一行
5gg:跳转到第5行
G:跳转到最后一行
o:在下一行进入插入模式
O:在上一行进入插入模式
按下“shift +:”进入最后行模式
插入模式:
对文本进行操作
按“ESC”进入命令模式
按下“ESC —> shift +:”进入最后行模式
最后行模式:
在最后一行能够输入一些命令,检索,显示行号
set nu/number:显示行号
wq/x/ZZ:保存退出
q:不保存退出
!:强制
q!:强制退出
/string 检索字符串
/huadian
按键盘“n”查找下一处
什么是 vim?
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
关机:
shutdown -n now
halt
init 0
重启:
reboot
init 6
设置开机启动要干嘛
more /etc/inittab
Default runlevel. The runlevels used are:
0 - halt (Do NOT set initdefault to this)
1 - Single user mode 如果root用户密码丢失
2 - Multiuser, without NFS (The same as 3, if you do not have networking)
3 - Full multiuser mode 企业常用
4 - unused 暂未使用
5 - X11 图形界面
6 - reboot (Do NOT set initdefault to this)
常用的工具命令
man:帮助命令
wc:文本统计统计
wordcount
3 5 29 a.txt
行数 单词数 字符数 文件名
常见参数:
-l:只查看行数
-w: 只查看单词数
-c:只查看字符数
du:文件大小统计
格式:du [选项参数] dir_path
常见参数:
-s:只统计该文件目录的大小,不递归
-h:人性化的显示单位
find:文件检索命令
按名称查找 -name
精确
find /etc/ -name init :在/etc目录下查找文件名中包含init文件
模糊:使用通配符*、?
*:0或者多个字符
?:一个?表示一个字符串
不区分大小写:-iname
大小 -size
文件类型 -type
文件的所属用户和所属组 -user /-group
安装时间进行检索
visudo:编辑sudo命令的配置
编辑第98行
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
用户名 登录的主机=(以什么样的身份运行) 可以执行什么命令
如果想让huadian用户也居于root相关权限。。
huadian ALL=(root) NOPASSWD:service iptables status
huadian ALL=(root) NOPASSWD:service iptables start
推荐用法
huadian ALL=(root) NOPASSWD:ALL
使用权限:sudo service iptables status
常用系统管理命令
网络管理:ping、ifconfig
服务管理命令:
service:必须掌握
格式:
service s_name start|stop|status|restart
linux系统所有自带服务名称:/etc/init.d/
常用:
关闭防火墙服务
service iptables stop
重启网络服务:
service network restart
mysql数据库服务的名称:
mysql版本低于5.5 mysqld
mysql版本高于5.5 mysql
chkconfig:设置是否开机启动 :必须掌握
判定是否开机启动
chkconfig iptables --list
2.3.4.5是on表示开机启动
设置
chkconfig iptables on|off
进程管理:ps
ps:查当前进程
查看java的进程
ps -ef | grep java
jps:==(ps -ef | grep java) 只有在linux中安装了JDK才能用
kill :杀死某个进程
kill -9 pid
端口管理
nststat:查看端口开放情况
-a:表示列举所有的连接、服务器监听
-t:列出所有tcp协议的服务
-u:列出所有udp协议的服务
-n:使用端口号来显示
-l:列出所有的监听
-p:列出所有服务的进程id(pid)
常用:netstat -atunlp
redhat的selinux安全机制
关闭selinux安全机制
vim /etc/selinux/config
SELINUX=disabled
重启机器生效
linux压缩管理
常见的压缩格式
zip
gzip
后缀:.gz
压缩:gzip file_path
解压:gunzip file.gz
特点:
压缩后源文件没有了
不能对文件夹进行压缩
bzip2:适合比较大的文件
后缀:.bz2
压缩:bzip2 file_path
解压:bunzip2 file.gz
特点:
压缩后源文件没有了
不能对文件夹进行压缩
tar:打包命令,将多个文件或者目录打包成一个文件
打包:tar [选项参数] file.tar source
解包:tar [选项参数] file.tar -C target
参数:
-z:是否使用gzip进行压缩或者解压
-j:是否使用bzip2进行压缩或者解压
-x: 解包
-c:打包
-v: 是否显示解包、打包的过程
-C:指定解压的位置
常见:必须掌握
-》tar + gzip
解压:tar -zxvf xx.tar.gz -C ./
tar -zxvf jdk-8u91-linux-x64.tar.gz -C ./
压缩:tar -zcvf xx.tar.gz xx
tar -zcvf xxx.tar.gz jdk1.8.0_91/
-》tar + bzip2
解压:tar -jxvf xx.tar.gz -C ./
压缩:tar -jcvf xx.tar.gz xx
安装JDK:
(1)上传解压
(2)配置环境变量
vi /etc/profile ——-这一步,看清楚了在操作,不要瞎搞
最后面追加:
#JAVA_HOME
export JAVA_HOME=/opt/test/jdk1.8.0_91
export PATH=
PATH:
P
A
T
H
:
{JAVA_HOME}/bin
(3)让环境变量立即生效
source /etc/profile
或者重启系统
(4)判定是否安装完成
java -version
看到jdk版本信息
linux状态
(1)网络相关配置没问题
hostname、ip、dns
(2)防火墙
防火墙关闭、开机不启动
(2)selinux
关闭selinux
110 = 6 = 4+2
1025 = 1024 +1 =
10000000001
180 = 128 + 32 + 16 + 4
10110100
web项目,已经开发完成,到了生产环境,运行在linux系统中。
这时候,已经没有IDEA开发工具,原有在IDEA控制台输入的内容到哪里了呢???
会到一个日志文件中
开发遇到问题:清除控制台 ,刷新页面,再看控制台
上传遇到问题:动态查看 “日志文件” 刷新页面,在控制台输出
DNS(Domain Name System,域名系统)
百度IP:61.135.169.125
百度域名:www.baidu.com
www.baidu.com -> 域名解析 -> 61.135.169.125
128core 256GB 机器 硬件
2Core 4GB 下单 虚拟化一台机器出来
大数据:人在干、数在转,云在算
建议:注册阿里云账号,购买服务玩一玩
从事JAVA开发需要的技能:
关系型数据库:mysql、oracle
非关系型数据库:redis
hibernate、struts2、spring、mybatis、springMvc
unix/linux操作系统
多线程;
进程和线程的区别
线程的创建方式
线程安全
本地线程