Linux学习笔记
Linux的介绍
特点 自由使用、免费、开源、多用户、多任务、多线程、多CPU
组成 Linux=内核+shell(解释器)+文件系统+应用程序
内核
shell(解释器)
shell是一个命令解释器。是计算机用户和计算机操作系统内核之间的翻译。
分支
redhat 偏原生Linux命令行
debain 偏于图形化界面的linux
Linux应用
服务器
linux 用的最多
Unix (HP unix)
windows server:(2008,2012)
手机OS
平板
嵌入式
电视盒子
Linux思想
Linux上一切皆文件
Linux系统安装
VMWare:实现硬件的虚拟化
建议:linux:1core 2GB
基本环境配置
root/huadian
huadian/huadian
修改主机名:
bigdata-training01.huadian.com
查看主机名:hostname
临时修改:host bigdata-training01.huadian.com
永久修改:
vi /etc/sysconfig/network
(1)按键盘 “i”
(2)编辑
(3)按键盘“ESC” ->“shift + :” + “wq”
注意:重启系统生效(reboot)
配置网络:
图形化界面???
成功标准:在Windows下,ping 192.168.59.170 能通,表示OK
网络映射:(局域网内) ==》通过主机名找到某台机器,而不是ip
linux下配置:
vi /etc/hosts :该文件原来有内容
添加
bigdata-training01.huadian.com 192.168.59.170
成功的标准:
在linux里头,ping bigdata-training01.huadian.com
能看到192.168.59.170
windows下配置:
C:\Windows\System32\drivers\etc\host
添加:
192.168.59.170 bigdata-training01.huadian.com
成功的标准:
在windows下 ping bigdata-training01.huadian.com
能看到192.168.59.170就对了
=============================================
linux常用的远程工具
ip:
root/huadian
SecureCRT
SecureCRTPortable:远程命令行
显示这个即连接成功
SecureFXPortable:远程文件传输工具
NotePad++:
非常非常棒的记事本软件
支持 远程文件 编辑 的 文本编辑器
Xmanager
xshell:远程命令行
xftp:远程文件传输工具
xbrowser:远程桌面工具
linux目录结构
/:根目录,顶层目录
相对路径和绝对路径
绝对路径:从最顶层/开始找
相对路径:从 当前位置 开始找
b/b1
/a/b/b1
a
b
b1
c
c1
linux常用的基本命令
linux中命令的基本格式
命令 选项(参数) 操作的文件或者目录
ls:list
ls /
-》a:列举包含 隐藏文件
-》l:length,长格式方式展示 ==== ll
cd:change dir 切换目录
cd /opt
pwd:print work dirctory
打印当前在那个目录下
clear:清屏 == CTRL + L 即清除当前屏幕
history:查看输入的命令的历史记录 可用于查看已执行的操作
文件管理命令
创建
文件:touch file_name
如果创建的文件名包含空格,需要使用双引号 包裹
touch “hello world”
目录:mkdir
mkdir dir_path
mkdir -p /opt/b/c 在指定文件下创建目录 如果父级目录不存在,那就先创建父级目录在创建子级目录
创建参数:-p:递归
删除
文件:
rm:remove
rm file_path 删除指定文件 需要确认
常用参数:-f:中间加入 免确认 即可删除
目录:
rmdir:只能删除空目录
rm -r:表示删除指定目录
rm -rf :删除目录,并且免确认
编辑:
vi
复制:cp:copy
格式:cp source_file target_file
移动(重命名):mv:move
格式:mv source_file target_file
查看(文件):
cat:直接显示文件的所有内容
more:分页查看(按enter翻页,只能往下翻页)
less:分页查看
按上下键翻页,可以上下翻
head:查看文件头部信息
默认查看前10行内容
-n
head -11 file_path
tail:查看文件尾部的内容,默认显示10行
-n: -11,查看最后面11行
-F:动态查看 可用于查看一个文件中的内容,动态获取,该文件中每增加一条新内容都会显示出来。
额外:往一个文件写内容
echo "1" >> world.txt
日志文件
linux用户和权限管理、
用户分类:
管理员:
UID=0
root :x : 0: 0: root: /root :/bin/bash
用户名:密码 UID:GID 所在组名称 家目录 :所用shell
普通用户:
huadian:x:500:500:huadian:/home/huadian:/bin/bash
自己创建的用户,UID从500开始
创建一个用户的时候,会创建一个 同名 用户组
用户信息文件:/etc/passwd
用户组信息文件:/etc/group
创建用户
useradd userName 添加一个用户
设置密码:
passwd userName 设置该用户的密码
查看某个用户
id userName 根据id 产看某个用户
删除用户
userdel userName:只删除用户 根据用户名 删除用户
userdel -r userName:既删除用户,也删除用户的 家目录
创建用户组:
groupadd lW
删除用户组:groupdel LW
切换用户:
su userName / su - userName
注意:root ->普通用户:不需要密码
普通用户 ->root:需要密码
退出:exit
低权限切换至高权限需要密码。高权限切换至低权限不需要
权限管理:
linux中用户的分类:
所有者(u) 同组用户(g) 其他人(o)
linux中文件权限分类:
读(r) 写(w) 执行(x) 没有权限(-)
文件详情:
drwxr-xr-x. 2 root root 4096 Aug 2 09:35 AAA
-rw-r--r--. 1 root root 1438 Aug 2 09:07 password
d rwx r-x r-x
第一位:d:目录,-:文件
rwx r-x r-x
所有者 同组用户 其他人权限
2:该文件的链接个数
root root :所属者:所属组
4096:文件大小
Aug 2 09:35:最后修改的时间(创建时间)
d rwx r-x r-x. 2 root root 4096 Feb 21 2013 rh
修改权限
格式:chmod [添加或者删除权限] file
通过字符修改
chmod o+w hello :给其他人 添加 写的权限
chmod o-w hello :给其他人 删除 写的权限
chmod o+w,g+w hello :给其他用户、同组用户 添加 写的权限
chmod a+w:给所有的人(同组、其他人、自己)添加写的权限
通过数字来修改:3位8进制表示权限
rwx r-x r-x
111 101 101 =7 5 5
chmod 777 passwd
777:满权限
666:所有人 拥有读、写权限,没有执行权限
修改文件所属者和所属组
格式:chown username:groupName file_name
chown username: file_name
chown :groupName file_name
-R:递归修改所属者和所属组
常见的符号命令
-》. :当前目录
-》..:上一级目录
-》~ :用户家目录
cd ~
-》> :覆盖重写某个文件
-》>>:追加到某个文件
-》| :管道符
一般和grep连用
ps -ef | grep gdm 过滤指定文件下符合条件的使通过
关机:
halt
init 0
shutdown -h now
重启:
reboot
init 6
网络多用户模式
init 3 (非图形化界面)
init 5 (图形化界面)
文本编辑器 vi
格式 vi file_path
编辑文件,如果不存在,默认会被创建(使用时注意)
3种模式:
命令模式:刚打开进入就是命令模式
快捷键:
yy:复制当前行内容
5yy:从当前行开始,连续复制5行
p:粘贴
dd:删除当前行
5dd:删除当前开始之后 的5行
999999999999999999dd 删除全部
u:撤销上一步
gg:跳转到第一行
G:跳转到最后一行
i:进入插入模式
o:(小写字母)在下一行进入插入模式
O:(大写字母)在上一行进入插入模式
插入模式:能对文本进行编辑,
在命令模式下,输入“i”
最后行模式:
在命令行模式下,按shift + ":"
按ESC回到命令模式
wq/x/ZZ:保存提出 三种任选其一
q:不保存退出
!:强制
q!:不保存强制退出
set nu/number:显示每一行的行号
/string :检索 文件内容中含有的字符
例如 /huadian 就是查看该文件中字符是huadian地方
按键盘“n”,查看下一处 出现该字符的地方
vim
Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。
简单的来说, vi 是老式的字处理器,不过功能已经很齐全了,但是还是有可以进步的地方。 vim 则可以说是程序开发者的一项很好用的工具。
常见的工具命令
man:帮助命令,辅助了解命令及文档的使用 如 想使用某些指令却想不起来可使用这个提示
wc:文本统计工具 可用来统计文本中的数量
2 4 25 helloWord
行数 单词数 字符数 文本名称
-l:查看文本的行数
-w:查看文本的单词数
-c:查看文本的字符数
find:文件检索命令
find 检索的范围 检索条件
名称:
find /opt -name hello
通配符:*/?
检索 指定目录下(opt) 名字为(hello)的文件
大小:
find /opt -size +100k
检索 指定目录下 文件大小大于100kb的文件
范围:
大于:+
小于:-
关系连接:
-a:并
-o:或者
find /opt -size +100k -a -size -200k
类型:-type
用户:-user -group
时间:
visudo:编辑sudo命令配置(一定要会)
root ALL=(ALL) ALL
用户名 登录的主机=(以什么样身份运行) 可以执行什么命令
huadian ALL=(root) /sbin/service iptables stop
允许华点用户 以 root的身份运行 /sbin/service iptables stop
推荐
huadian ALL=(root) NOPSSWD:ALL
赋予haudian用户 通过root的身份 ,无需输入密码执行所有命令
使用赋予的权限
sudo touch aa
常见系统管理命令
网络管理:
ifconfig
服务管理命令
service :
格式:
service s_name start|stop|status|restart
所有的服务名称:
/etc/init.d/
iptables:防火墙
network:网络连接
chkconfig:
判定是否开机启动:
chkconfig s_name --list
chkconfig iptables --list
2,3,4,5是on表示开启
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
0~6代表啥:
vi /etc/inittab
设置:
chkconfig s_name on|off
chkconfig iptables off
进程管理(非常重要):
ps:查看当前进程
ps -ef |grep java
jps:查看所有的java进程,只有在JDK安装之后才能用
==ps -ef |grep java:
kill :杀死某个进程
kill -9 pid
redhat的selinux安全机制
关闭selinux
vi /etc/selinux/config
SELINUX=disabled
注意:重启机器生效
linux压缩管理
常见的压缩工具
zip
gzip
后缀:.gz
压缩:gzip file_path
解压:gunzip fileName.gz
特点:
压缩后源文件没有了
不能对文件夹进行压缩
bzip2:适合压缩比较大的文件
后缀:bz2
压缩:bzip2 file_path
解压:bunzip2 file_path.bz2
特点:
压缩后源文件没有了
不能对文件夹进行压缩
tar:打包命令,将多个文件或者目录打包成一个文件
格式:
打包:
tar [选项参数] target.tar source
解包:
tar [选项参数] source.tar -C target
参数:
-c:打包
-x:解包
-z:是否使用gzip进行压缩或者解压
-j:是否使用bzip2进行压缩或者解压
-v:是否显示解压或者压缩过程
使用最频繁的命令:
使用tar + gzip (最最频繁)
解压:
tar -zxvf XXX.tar.gz -C ./
压缩:
tar -zcvf XXX.tar.gz source
使用tar + bzip2
解压:
tar -jxvf xxx.tar.bz2 -C ./
压缩:
tar -jcvf XXX.tar.bz2 source
linux软件管理
软件类型
RPM:
redhat系列特有的软件包
dpkg:
debain系列特有的软件包
源码包:
java:maven
C/C++:
预编译:configure
编译:make
安装:install
软件安装方式:
rpm:安装rpm结尾的软件包
软件查询:
rpm -qa :列举所有当前已经安装的rpm包
rpm -qa | grep mysql
卸载:
rpm -e --nodeps XX
--nodeps :不考虑依赖
安装:
rpm -ivh XXX.rpm
问题:需要自己解决依赖问题
A1 -> A -> B
yum:通过软件源进行安装
查看所有yum已经安装的包
yum list installed
安装:
yum install -y mysql-server
卸载:
yum remove mysql-server
注意:不需要考虑依赖问题
解压安装:绿色版本
以安装JDK为例
前置:
(1)防火墙关闭
service iptables stop
chkconfig iptables off:开机不启动防火墙
(2)关闭selinux
安装mysql
(1)卸载linux自带mysql包
rpm -e --nodeps mysql-libs-5.1.66-2.el6_3.x86_64
检查:rpm -qa | grep mysql
(2)通过yum安装mysql
yum instal -y mysql-server
成功的话,可以看到“Complete!”
默认安装的是5.1.73
(3)启动mysql服务
service mysqld start
如果是5.1的版本,mysql的服务名称:mysqld
版本>5.5 ,mysql的服务名称:mysql
(4)设置root用户密码,
/usr/bin/mysqladmin -u root password '123456'
验证:
mysql -u root -p
show databases
use mysql
show tables
(5)让mysql服务,随着系统的启动而启动
查看:
chkconfig mysqld --list
修改:
chkconfig mysqld on
查看:
chkconfig mysqld --list
(6)在mysql配置对应的权限
a:授权
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option
b:查询
select host,user,password from user;
经验告诉你,你保留一条:
+------+------+-------------------------------------------+
| host | user | password |
+------+------+-------------------------------------------+
| % | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+------+------+-------------------------------------------+
c:刷新权限(必须执行)
flush privileges
(7)重启mysql服务
service mysqld restart
安装JDK:
(1)上传
(2)解压
注意:/opt
mkdir -p moduls
chown huadian:huadina moduls
tar -zxvf jdk-8u91-linux-x64.tar.gz -C ./moduls/
(3)配置环境变量(root):千万千万小心。不要瞎搞
vi /etc/profile
(4)立即让环境变量生效
source /etc/profile