一、Linux介绍
1、什么是Linux?
Linux是在Unix上开发而来的一套免费和自由传播的操作系统。
2、Linux的版本是什么?
Linux的版本分为两种
- 内核版本:Linux团队的内核小组开发和维护的系统内核版本号。
- 发行版本:一些组织和公司基于Linux内核自行发布的系统版本。
常见的发行版本有:ubantu、redhat、centos等等
3、Linux和windows系统的区别?
- windows系统:
1)由比尔盖茨基于dos系统开发而来。
2)以图形界面的交互为主,消耗的资源较多。
3)上手简单易学,但系统内部构造复杂,深入学习比较困难。
4)常用于家用办公电脑。 - Linux系统:
1)由Linux基于Unix系统开发而来。
2)以命令行交互为主,消耗资源较小。
3)上手较为难学,但系统内部构造相对简单稳定,升入学习相对容易。
4)常用于企业服务器或网络设备等。
二、Linux常用命令
1、目录操作
1.1常用目录
- /root:改目录为系统管理员目录。
- /home:用户的主目录,每个用户都有自己的目录,一般都是以用户的账号命名的。
- /etc:这个目录是来存放系统管理所需要的配置文件和子目录。
- /user :存放系统用户共享资源。
1.2常用命令
- ls:用来显示当前目录下的内容。
不同颜色文件代表的含义:
蓝色:目录
绿色:可执行文件
红色:压缩文件
浅蓝色:链接文件
白色:普通文件
黄色:设备文件
ls -a 显示所有文件或目录(包括隐藏的文件,在linux中以 . 开头的文件都是隐藏的文件)
ls -l 列出当前目录下的文件列表,以详细信息展示,可以缩写成ll
ls -l / 列出根目录下的文件列表,以详细信息展示
- cd :切换目录
cd app 切换到app目录下。
cd .. 切换到上一层目录
cd / 切换到系统根目录
cd ~ 切换到用户主目录
cd - 切换到上一个所在目录
- mkdir:创建目录
mkdir app 在当前目录下创建app目录
mkdir -p app2/test 级联创建app2以及test目录
- rmdir:删除目录
rmdir app 删除app目录
2、文件操作
- cat:显示文件的所有内容
cat -n yum.conf 显示yum.conf所有内容并给所有行编号
- more:显示文件内容,可以做翻页翻行操作。
more yum.conf 显示yum.conf文件内容
快捷键:
空格: 翻页
确定: 下一行
q: 退出查看
- less:用法与more相似
less yum.conf 显示yum.conf文件内容
快捷键:
PgUp: 上一页
PgDn: 下一页
q: 退出查看
- grep:查找符合条件的字符串
ctrl+c 可以退出grep模式。
find -name 'zookeeper*'可以用来查找名字中带zookeeper的文件夹和文件目录
参数:
-i 忽略大小写
-n 输出的同时打印行号
-B 显示前N行的内容
-A 显示后N行的内容
--color 高亮展示查询关键字
常用:
grep headers install.log 在文件中查找headers
grep -B 10 headers install.log 在文件中查找headers,显示前10行的内容
grep -A 10 headers install.log 在文件中查找headers,显示后10行的内容
grep -A 10 --color headers install.log 在文件中查找headers,高亮展示关键字
- touch:创建一个空文件
touch aa.txt 创建一个aa.txt文件
- rm:删除文件或目录
参数:
-f 强制删除。忽略不存在的文件,不提示确认
-r 递归删除目录及其内容
常用:
rm a.txt 删除a.txt文件,输入y/n,y确认删除,n不删除
rm -f a.txt 不询问,直接删除
rm -r aa 删除aa目录,每个目录及文件都提示
rm -rf aa 不询问递归删除aa目录
rm -rf * 删除当前目录下所有文件
rm -rf /* 删除根目录下所有文件(自杀)
3、通用文件或目录操作
- cp:将文件或文件夹复制到指定指定目录
参数:
-r 递归复制目录及其子目录内的所有内容
常用:
cp install.log install.log.bak 将install.log复制为install.log.bak文件
cp install.log aaa/ 将install.log文件复制到当前目录下的aaa目录下
cp install.log bbb/install.log.bak 将install.log文件复制到当前目录下的bbb目录下,改名为install.log.bak
cp aaa -r bbb/ 递归复制aaa目录及子目录的所有内容到bbb目录下
cp aaa -r bbb/ccc 递归复制aaa目录及子目录的所有内容到bbb目录下,改名为ccc
- mv:将文件或文件夹移动到指定目录
常用:
mv install.log install.log.bak 将install.log重命名为install.log.bak
mv install.log aaa/ 将install.log文件移动到当前目录下的aaa目录下
mv install.log bbb/install.log.bak 将install.log文件移动到当前目录下的bbb目录下,改名为install.log.bak
mv aaa bbb/ 将aaa目录移动到bbb目录下
mv aaa bbb/ccc 将aaa目录移动到bbb目录下,重命名为ccc
- tar:将指定文件或目录打包成一个文件,但不做压缩。
一般Linux常用压缩方式是先用tar打包,然后用gzip压缩文件
参数:
-c: 创建一个新tar文件
-v: 显示运行过程的信息
-f: 指定文件名
-z: 调用gzip压缩命令进行压缩
-x: 解开tar文件
-C: 指定解压路径
常用:
tar –cvf aaa.tar ./* 将当前目录下的所有文件打包为aaa.tar
tar –zcvf aaa.tar.gz ./* 将当前目录下的所有文件打包压缩为aaa.tar.gz
tar –xvf aaa.tar 将aaa.tar提取到当前目录
tar -xvf aaa.tar.gz -C /usr/aaa 将aaa.tar.gz解压到/usr/aaa目录
4、资源权限命令
4.1权限介绍
4.2文件类型说明
普通文件(-)
目录(d)
符号链接(l)
字符设备文件(c)
块设备文件(s)
套接字(s)
命名管道(p)
普通文件: 包括文本文件、数据文件、可执行的二进制程序文件等。
目录文件: Linux系统把目录看成是一种特殊的文件,利用它构成文件系统的树型结构。
4.3修改资源权限
chmod 变更文件或目录的权限。
格式: chmod [参数] <文件>
参数:
-R 以递归方式更改所有的文件及子目录
常用:
chmod 755 install.log
chmod 000 install.log
chmod 777 install.log
chmod u=rwx,g=rx,o=rx install.log
chmod -R 755 aaa
4.4组管理
- groupadd:创建一个用户组。一个用户组可以有多个用户。
groupadd mysql 创建一个名为mysql的组
- groupdel:删除一个已存在的组,组中必须没有用户。
groupdel mysql 删除名为mysql的组
4.5用户管理
- useradd:创建一个用户
参数:
-d 指定用户目录,如果不指定在home目录下创建一个同名目录
-g 指定用户所属组,如果没有指定组,那么会创建一个同名组
常用:
useradd test 添加test用户
useradd test2 -d /home/test2 指定用户home目录
useradd mysql –g mysql 创建一个mysql用户,指定组为mysql组
如果在创建用户时没有指定密码,那么新建用户需要设置密码才可以使用
格式: passwd <用户>
常用:
passwd test 为test用户设置密码
- userdel:删除用户
参数:
-r 使用者目录下的档案一并移除 。 在其他位置上档案也将一一找出并删除 。
常用:
userdel test 删除test用户(不会删除home目录)
userdel –r test 删除用户以及home目录
- su:切换登录用户
常用:
su u1 切换到u1用户
su - u1 切换到u1用户,并且将环境也切换到u1用户的环境(推荐使用)
root用作为超级管理员切换到其他用户不需要输入密码
其他用户切换到root用户需要输入密码
- chown:改变资源的所属用户和组
参数:
-R 递归处理所有的文件及子目录
常用:
chown u1:public a.txt 变更当前的目录或文件的所属用户和组
chown -R u1:public aaa 变更目录中的所有的子目录及文件的所属用户和组
5、资源权限命令
5.1网络命令
- ping:网络测试命令
ping 192.168.150.128
ping -c 3 www.baidu.com//测试三次连接到百度
- ifconfig:查看网络状态
- ifdown/ifup:关闭/开启网卡
- netstat:查看网络状态
参数:
-t:列出TCP协议端口
-u:列出UPD协议端口
-n:不使用域名和服务名,而使用IP地址和端口号
-a:列出所有的网络连接
常用:
netstat -an 查看当前计算机开放的所有的端口
netstat -an | grep 3306 查看占用了3306端口的系统程序
5.2网络命令
开启或关闭防火墙
service iptables status 查看防火墙状态
service iptables start 启动防火墙
service iptables stop 关闭防火墙
service iptables restart 重启防火墙
三、软件安装
1.Linux下软件安装方式
Linux上的软件安装有以下几种常见方式
-
二进制发布包:软件已经针对具体平台编译打包发布,只要解压,修改配置即可。解压后安装
-
RPM包:软件已经按照redhat的包管理工具规范RPM进行打包发布,需要获取到相应的软件RPM发布包,然后用RPM命令进行安装。格式为RPM的文件,使用RPM命令进行安装
-
Yum在线安装:软件已经以RPM规范打包,但发布在了网络上的一些服务器上,可用yum在线安装服务器上的rpm软件,并且会自动解决软件安装过程中的库依赖问题。类似windows软件商城的自动安装功能
-
源码编译安装:软件以源码工程的形式发布,需要获取到源码工程后用相应开发工具进行编译打包部署。
2.通过FileZilla传输安装包
通过FileZilla可以将windows系统上的文件传输给Linux服务器
3.安装部署jdk
- 卸载CentOS自带的jdk
利用Linux所提供的管道符“|”将两个命令隔开,管道符左边命令的输出就会作为管道符右边命令的输入。连续使用管道意味着第一个命令的输出会作为 第二个命令的输入,第二个命令的输出又会作为第三个命令的输入,依此类推。
rpm命令是RPM软件包的管理工具。
[root@localhost /]# java –version #查看当前系统jdk版本
[root@localhost /]# rpm -qa | grep java #查找jdk。rpm -qa查找所有安装的软件,grep java查找带java名称的软件。
java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.i686
tzdata-java-2015e-1.el6.noarch
java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.i686
卸载自带的jdk
[root@localhost jdk]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.i686
[root@localhost jdk]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.i686
- 从windows系统上传jdk安装包
在Linux系统上创建安装文件夹,使用FileZilla上传安装包。
[root@localhost /]# mkdir -p /service/tools #创建多级文件夹
- 解压jdk
[root@localhost jdk1.7.0_71]# pwd #查询当前工作目录
[root@localhost jdk]# tar -xzvf jdk-7u71-linux-i586.tar.gz #解压jdk
- 配置环境变量
1. 编辑`/etc/profile` 文件
[root@localhost jdk]# vim /etc/profile
2. 按O在末尾行添加
#set java environment
JAVA_HOME=/service/tools/jdk/jdk1.8.0_191
#自己解压的jdk的路径
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
3. “:”进入底行模式,“wq”保存退出,通过source命令使更改的配置立即生效
[root@localhost jdk]# source /etc/profile