Linux操作系统概述:
Linux是基于Unix的开源免费的操作系统,由于系统的稳定性和安全性几乎成为程序代码运行的最佳系统环境.Linux是由Linux Torvalds(林纳斯·托瓦兹)起初开发的,由于源代码的开放性,现在已经衍生出了成千上百种不同的Linux系统.
Linux系统的应用非常广泛,不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,比如手机,平板电脑,路由器等.尤其在这里提及一下,我们熟知的Android程序最底层就是运行在Linux系统上的.
Linux分类:
市场需求分类:
图形化界面版:注重用户体验,类似window操作系统,但是目前成熟度不够.
服务器版:没有好看的界面,是以在控制台窗口中输入命令操作系统的,类似于DOS,是我们架设服务器的最佳选择.
原生程度分类:
内核版本:在linux领导下的内核小组开发维护的系统内核的版本号.
发行版本:一些组织或公司在内核版基础上进行二次开发而重新发行的版本.
Linux发行版本不同,又可以分为n多种.
Lniux的系统目录结构
目录切换命令
cd usr 切换到该目录下usr目录
cd ../ 切换到上一层目录下
cd / 切换到系统根目录下
cd ~切换到用户主目录下
cd - 切换到上一个所在目录
目录操作命令(增删改查)
Linux操作系统命令格式:命令-[参数]
查看目录:ls-[al]
ls:查看目录
参数 - a 显示全部,包含隐藏
参数 - l 列表形式显示
增加新目录:mkdir
mkdir 目录名字
搜索目录和文件:find
find搜索目录,也能搜索文件
参数-name,以目录名或者文件名进行搜索.
示例:在etc目录下,搜索名是"sudo*"
find/etc -name "sudo.*"
修改目录名:mv
mv 老目录名,新目录名
示例:mv oldtest newtest
如果修改后的新目录和老目录不在同一个路径下,产生剪切效果
示例:mv oldtest /usr/local/newtest
复制目录:cp
cp复制目录命令
参数-递归
示例:将根目录下的test目录,拷贝到usr/local下. cp -r test/usr/local
删除目录或文件:rm
rm:删除目录命令
参数 -r递归
参数 -f 不询问
示例:删除/usr/local目录下的test目录. rm -rf test
文件操作命令(增删改查)
创建文件:touch
touch:创建新文件命令touch文件名
查看文件
cat 命令查看文件,值显示文件最后一屏
示例:查看/etc/sudo/conf.cat/tec/studo.conf
more命令查询文件,显示文件百分比,回车下一行,空格下一页
示例:查看/etc/sudo.conf. more/etc/sudo.conf
less命令查看文件,支持pgUp,pgDn进行上下翻页.
示例:查看/etc/sudo.conf less/etc/sudo.conf
tail命令查看文件,支持显示的文件行数
示例:使用tail -10查看/etc/sudo.conf文件的后10行
修改文件:vim编辑器
vim:文件名
vim编辑器有三种状态
命令模式:
只接收命令关键字,其他字符不接收通过输入相应的命令可以进入编辑模式
进入编辑模式命令:i,o,a或者insert
编辑模式:
对文件进行内容编辑,任何字符都接受,内容编辑完毕以后,需要退出命令模式.
退回到命令模式ESC键
底行模式:
进行保存或者退出操作
命令模式进入底行模式:冒号
底行模式:qw写入并退出,q!退出不保存.
定位命令
使用G进入到达最下面一行
使用gg进入最上面一行
:188 能够直接到达188行 可以在177行更改名字.
搜索命令
/daem +回车
查找到这个文件然后更改 no为yes
vim编辑器使用过程关于vim使用过程:
vim文件-->命令模式-->输入i-->编辑模式-->编辑文件-->按下ESC--命令模式-->按下:-->底行模式-->输入wq保存并退出/q!强制退出并不保存.
压缩文件管理
Linux中的打包文件一般都是以.tar结尾的,压缩的命令一般是以.gz结尾的.而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz.
tar命令:压缩和解压缩
参数: -z 调用gzip压缩命令压缩
参数:-c打包文件
参数:-C 在指定的目录解压缩
参数: -v 显示命令的执行过程
参数:-f 指定文件名
参数:-x 解压缩
示例:将test目录打成压缩包,压缩后文件名为test.tar.gz
tar -zcvf test.tar.gz test
示例:将test.tar.gz进行解压缩
tar -xvf test.tar.gz
tar -xvf test.tar.gz -C/usr/local 解压缩到指定的目录
pwd命令:显示当前的目录
其他命令
ps命令:查看进程:
参数: -e显示所有程序
参数:-f 显示UID,PPIP
kill命令:结束进程
参数:-9 强制杀死该进程
grep:搜索命令
搜索字符串,搜索文件
示例:搜索/etc/sudo.conf中包含字符串"to"的内容
grep to /etc/sudo.conf
grep to /etc/sudo.conf --color
管道命令:
将前一个命令的输出作为本次目录的输入
ls -al | grep.conf
网络命令:ifconfig
查看本机的网卡信息
网络命令:ping
查看与某台主机的连接情况
网络命令:netstat
查看本机被使用的端口号
参数:-a显示所有连接
参数:-n以网络IP地址代替名称
linux权限命令:chmod
权限是Linux中的重要概念,每个文件/目录等都具有权限,通过ls -l命令我们可以查看某个目录下的文件或目录的权限
示例 在随意某个目录下 ls -l
文件的类型:
d:代表目录
-:代表文件
l:代表链接
后面的9位分为3组,每3位置一组,分别代表属主的权限,与当前用户同组的用户的权限,其他用户的权限
r:代表权限是可读,r也可以用数字4表示
w:代表权限是可写,w可以用数字2表示
x:代表权限是可执行,x可以用数字1表示
chmod命令设置权限
chmod u=rwx,g=rw,o=r aaa.txt
远程安装软件命令(联网使用):yum
Yum(全称为Yellow dog Updater,Modified)是一个在Fedora和RedHat以及CentOS中的软件包管理.基于RPM包管理,能够从指定的服务器自动下载RMP包并安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无需繁琐地一次次下载安装
参数:install安装软件包
参数:list查看可以安装的软件包
示例:查找可以安装的软件包
yum list | grep gcc
示例:安装gcc编译器
yum install gcc
linux操作系统下的redis数据库,是C语言源码形式出现的,因此需要C语言编译器编译为可执行文件
远程下载需要的安装包,下载到/var/cache/yum/i386/6/base/packages目录下,安装完毕后自动删除
查看软件的安装位置
rmp -ql gcc
软件包管理命令:rpm
rpm(Red Hat Package Manager)类似于window中的软件安装包
查看已经安装的软件包
参数:-a查询所有软件包
参数:-q表示查询
示例:查询已经安装的java
rmp -qa | grep java
卸载已经安装的软件包
参数:-e 卸载
参数: --nodeps 不检查依赖性
示例:卸载已经安装的java
rmp -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.i686
rmp -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.i686
安装软件包
参数: -i install 安装
参数:v verbose 安装详细信息
参数: h hash 显示进度
Linux操作系统部署JDK
linux版本JDK上传到linux系统中的/usr/local下
tar -xvf解开压缩包
tar -xvf jdk-8u191-linux-i586.tar.gz
配置环境变量
进入/etc目录中,编辑文件profile
以下代码复制到profile文件中
#set java environment JAVA_HOME=/usr/local/jdk1.8.0_191 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH
保存并退出
从新加载环境变量
命令为: source /etc/profile
测试:任意目录下输入javac
安装成功:
Linux系统部署Tomcat
linux版本tomcat上传到linux系统中的/usr/local下
tar -xvf解开压缩包
tar -xvf apache-tomcat-8.5.37.tar.gz
开放Linux8080端口对外访问
/sbin/iptables -| |NPUT -p tcp --dport 8080 -j ACCEPT
/ect/rc.d/init.d/iptables save
启动和停止tomcat服务
tomcat解压目录/bin下 ./startup.sh
tomcat解压目录/bin下 ./shutdown.sh
Linux系统部署MySql数据库
linux版本MYSQL上传到linux系统中的/usr.local下
卸载系统中自带的MYSQL
查询系统中是否已经安装了MYSQL rpm -qa | grep mysql
xiezai MYSQL rpm -e --nodeps mysql-libs-5.1.71-1.el6.i686
解压MYSQL压缩包
tar -xvf MYSQL -5.6.22-1.el6.i686.rmp-bundle.tar-C /usr/local/mysql
由于Mysql解压后没有文件夹,很多文件比较凌乱,必须选创建目录mysql,将所有的文件解压缩到该目录下
rpm命令安装
安装Mysql数据库服务器 rmp -ivhMySQL-server-5.6.22-1.el6.i686.rmp
安装M有SQL数据库客户端 rmp -ivh MySQL-client-5.6.22-1.el6.i686.rmp
启动MySQL服务 service mysql start
MySQL服务添加到系统中 chkcofig --add mysql
跟随系统启动 chkconfig mysql on
设置root密码
MySQL首次登录: mysql -uroot -p密码
首次安装的随机密码:vim /root/.mysql_secret保存在词文件中
登录MySQL,设置密码:
进入到mysql中以后使用命令:set password = password('root'),重新设置密码
授权远程连接
在mysql中执行
默认情况才musql为安全起见,不支持远程登录mysql,所以需要设置开启远程登录mysql的权限
grant all privileges on*.*to'root'@'%'identified by 'root';
flush privileges;
开放3306端口
/sbin/iptables -| INPPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save
Linux系统部署redis数据库
linux版本redis上传到linux系统中的/usr/local下
解压redis
tar -vxf tar -xvf redis-3.2.9.tar.gz
make命令编译redis的C语言源代码
进入解压后的redis目录下的src目录,因为没有安装c++编译器,所以在执行过程中报错
安装好c++编译器以后,
输入make命令即可
启动redis服务器
进入redis解压目录下的src目录
./redis-server
后台启动
将redis解压缩目录下的redis.conf文件复制到src下
编译redis.conf文件,原有的daemonize no 修改为daemoniza yes
启动redis ./redis-servejr redis.conf
启动redis客户端 ./redis-cli
关闭redis服务器
./redis-cli shutdown
补充:解决SSH中文乱码
在linux的/etc/sysconfig目录下有一个i18n的文件代表linux的系统编码,将其从utf-8修改为GBK重新连接linux即可