文章目录
一、Linux系统的简单介绍
Linux是一款免费的操作系统,用户可以通过网络或者其他途径免费获得,并可用任意修改其源代码。这是其他的操作系统所做不到的。
特点:
1,完全免费
2,多用户,多任务
3,支持多种平台
1、入门须知:
1,linux命令是区分大小写的,如果没有特别的说明,保持小写
2,命令之间是有空格的,不要挤在一块
3,命令不是语文,背背就好,而是需要我们动手去敲,每天每个命令敲十遍,到最后,你自己能背出来这些命令是干啥的就好了。
2、新手须知
-
1,错误提示:command not found,命令没有找到,看到这个命令第一反应应该是去检查命令是不是写错了(应该是ifconfig:获取虚拟机地址)
PS:
Ctrl+c 结束当前正在运行的程序
tab键 使用,自动关联,快速补齐
方向键“上”,"下“,对历史命令,上一个,下一个进行查找, -
2,xshell连接不上:
①,ip地址变了
②,防火墙未关闭 -
3,乱码
编码格式改为UTF-8 -
4,xshell和xftp是什么?
连接虚拟机,这样就可以直接操作了,免去切换的麻烦
登录成功显示:
@是固定符号,root表示当前登录用户名(root是超级管理员),@后面的192表示主机名,“~”表示当前用户的主目录,因为每个用户都有自己的个人目录地址,所以用 ~ 作为统一替代这个根据用户不同而不同但有规可循的地址,来保证某些情况下的兼容问题
-
系统管理相关命令
1,su:(switch user)在不退出登陆的情况下,切换到另一个用户的身份。
管理员账号切换为普通用户账号无需输入密码,普通用户切换管理员需要输入密码
#超级用户提示符
$普通用户提示符
-
5,uname -a查看系统的位数(Unix name系统名称)
x86_64:64位系统
i386之类i开头的:32位系统
-
6,ifconfig:显示网卡信息–查看虚拟机的IP地址
-
7,ping:测试网络连通情况
ping+ip地址/域名
-
8,date:显示日期
修改时间:date -s 时间或者日期
-
9,kill:杀死进程(kill -进程号 ,如kill -9 强制杀死进程)
-
10,pwd:print working Directory 打印当前所在目录
-
11,cd命令 切换目录(change directory)
用法:cd 目录路径
cd /usr/etc(“/”表示系统根目录,要查看文件,首先需要从根目录进入,才能查看,就像是要查看d盘的一个文件,要先进入d盘。就是说往上级要带/,往下级不需要带/)
-
12,mkdir 创建目录(make directory)
用法:mkdir 目录名
创建(mkdir 目录名)并查看(ll) -
13,rmdir 删除空目录(remove directory)
用法:rmdir 目录名
也可用:rm -rf 目录名(目录/文件都可以删除,空的和非空的都可以删除)
-
14,touch:新建文件
用法:touch lemon.txt(后缀可随意格式) -
15,vi:是linux下常用的,功能强大的文本编辑器
调用方法:vi a.txt(如果a.txt不存在,则创建,保存退出则创建成功)
按键盘i(insert)进入编辑状态
退出编辑按ESC键,退出方法:
不保存退出: :q!
保存退出: :wq(write and quit)
输入/,进入搜索,输入你需要搜索的文字,按enter
输入":set nu",显示每一行的行数
按键盘G定位到最后一行,g定位到第一行
按键盘u撤销上一次的命令
注意:键盘输入,都是英文输入法进行输入
在linux系统中,几乎所有内容包括文档,命令,设备和目录等都组织成文件的形式,用文件来管理,常用的文件命令有:
- 16,ls查看目录及文件(list列出目录内容)
用法:ls[选项]<路径>(若没有路径则显示当前目录的内容)
-a 显示所有文件,包含隐藏的文件
-l 显示文件属性(等同ll命令)
- 17,cp 复制命令(copy复制黏贴)
用法:cp[选项,可选可不选]<文件名或目录><目标地址>(只复制当前目录,不包括目录下的子文件)
-R 拷贝目录及目录下所有目录和文件(复制当前目录和目录下子文件)
cp a.txt b.txt 将a文件复制,且另命名为b文件(目录名)
- 18,mv 移动命令(move,类似于剪切黏贴)
用法:mv[选项]<文件名或目录><目标地址>
mv a.txt…/ 将a文件移动到上级目录
mv a.txt b.txt 将a文件改为b文件(目录名更改)
-
19,rm 删除文件或目录(i:操作时进行查询,rm -i等同rm)
-f 强制删除
-r 删除目录
常用:rm -rf 文件或目录 -
20,find命令查找文件
用法:find[路径][选项]关键字
常用选项有:
find.-name *.log 在当前目录查找以.log结尾的文件
find /-name log 在根目录查找log命名的目录,
-
21,grep命令(检索目标行命令)
功能:过滤,在指定文件中查找字符(串)并打印该行;经常跟管道符号“|”配合使用
用法:grep 字符串 文件名
grep band file 在file文件中寻找band字符串
-
22,cat:一次显示整个文件(Concatenate 串联)
用法:cat 文件名 cat filename
-
23,more:用于显示内容超过一屏的文件
用法:more 文件名 (只能往后翻,用空格键往后翻一页,回车键一行行下翻) -
24,less:用于显示内容超过一屏的文件
用法:less 文件名
(可以往前往后翻,空格键往后翻一页,回车键一行行下翻,按下b键往上翻一页,按Q结束) -
25,head:查看前几行 用法:head -n 5 文件名(查看前五行信息
-
26,tail (尾部)从指定点开始将文件写到标准输出,使用tail命令的-f选项可以方便的查阅正在改变的日志文件
tail -n 5 文件名 查看后几行
tail -f error.log 不断刷新,看到最新内容
管道符号
管道使用“|"符号,并且在命令之间建立管道,将前面命令的输出作为后面命令的输入
如,ll |grep abc(前面是字母L的小写)
管道前面的命令显示当前目录下的文件,后面从列出的文件名中寻找含有abc字符串
二、工作常见情况:杀进程,查看端口占用,查看日志
- 1、杀死服务进程
ps -ef|grep tomcat(Process Status 进程状态,-e:显示所有程序,-f :显示uid,ppid,c与stime栏位)
kill -9 pid(服务停止后前端是访问不了的)
- 2、查看端口占用,干掉这个程序
netstat -apn|grep 8080 查找出对应的进程名及pid
ps -aux|grep 进程名 查找被哪个程序占用
kill -9 pid 干掉这个程序 - 3、查看实时日志 指定查看关键字信息
tail -f error.log|grep 用户id
三、系统资源查询
1、ps查看进程(Processes Status动态)
- -aux 显示系统所有进程,包含其他使用者的进程
- user 进程拥有者pid:进程id%cpu:cpu占比例,%mem:内存占用率
- vsz:占用的虚拟内存大小,rss:占用内存大小,tty:终端号,stat:进程状态(s 中断,sleeping)
- start:进程开始的时间,time:执行的时间,command:所执行的命令
- -ef 显示所有运行进程,并显示启动进程的命令
- Uid:用户ID,PID:进程id,PPID:父进程,C:进程cpu占有率,Stime:进程启动的时间
- TTY:终端号,CMD:命令名称和参数
2、netstat 在内核中访问网络及相关信息的命令(net status的简写)
netstat -apn 查看所有端口
netstat -tulpn(更推荐使用这个,显示网络连接数量最少,同时显示最有价值的信息) / netstat -ano
3、kill
top查看进程(动态,cpu,内存使用情况,按使用资源情况排序:性能监控命令)
PR:优先级;NI:nice值,nice值为正表示优先级低,负值表示优先级高;
VIRT:进程使用的虚拟内存总量;RES:进程使用的,未被换出的物理内存大小;
SHR:共享内存大小;S:进程状态;TIME+: 进程使用的CPU时间总计;COMMAND:命令名/命令行。
四、 权限赋予命令
数字表示法:4-读(r,read),2,-写(w write),1-执行(x,execute)
将这几个数字任意两个或者三个相加可得到相应的多种权限
如,6-读写,3-写的执行,7-读,写,执行
例:chmod 600 filename 为用户自己增加读写权限,其他任何用户没有任何权限。其中
第一个位置的值6是用户自己的权限为读写,第二个位置的0代表所属用户所在组内用户没有权限,第三个位置的0代表所在组之外其他用户没有权限
chmod 777-R 文件及目录名(表示更改三个所属组的权限)
-R表示遍历文件夹下面所有的子目录以及文件
chmod是赋值符(Change mode 改变模式)
0表示没有权限
五、chown:更改对应文件或目录的属主或用户组
具体命令:# chown 新属主账户名:组名 目录名–> # chowm d1:developer dev-document
调整文件的访问权限;
$ vim code.md --> 创建文本文件
命令:$ chmod 770 code.md
让一个用户拥有两个以上用户组的方法:命令:# usermod -G developer,testor d1 (修改用户组时会先将之前的用户组删掉,重新分配)注意,修改用户的用户组后,需要退出重新登录。切换用户组命令:$ newgrp testor
六、安装命令
yum自动下载安装(前提:能访问外网,可以先ping下:ping www.baidu.com)
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum[操作][package]
如:yum -y install mysql-server
rpm安装
rpm -ivh软件包名 (ivh:安装显示安装进度)
rpm -ivh MySQL-server-4.0.14-0.i386.rpm
七、 解压命令
tar(Tape archive 解压文件)
-c 建立压缩档案
-x 解压
-z (有gzip属性)-j(有bz2属性)-Z(有compress属性的)
-v 显示所有过程
-f 使用档案名字,必须项,是最后一个参数,接文件名
解压 tar -zxvf abc.tar.gz(常用形式)将abc.tar.gz解压到当前目录
压缩tar -zxvf test.tar.gz. test 将test目录压缩为test.tar.gz
总结
*.tar用tar -xvf解压
tar.gz和.tgz用tar -xzvf解压
*.gz用gzip -d或者gunzip解压
*.zip用unzip解压
八、关闭防火墙
- 防火墙是借助硬件和软件对内外部网络环境的保护措施
- centos7基于firewall实现应用层防火墙,功能更加强大。centos6基于iptables
即时生效,重启后失效
1、centos7命令:
firewall -cmd是firewall的核心命令
查看防火墙状态:firewall-cmd --state
查看防火墙允许的端口号:firewall-cmd --list-ports
采用tcp方式进行通信时,设置防火墙允许访问的端口号是8080 : firewall-cmd --zone=public --permanent --add-port=8080/tcp
zone:访问区域:防火墙默认区域,表示都允许访问
permanent :表示永久进行变更
add-port:添加端口号
对防火墙进行配置重载 : firewall-cmd --reload(永久变更的都需要有这一步操作,无论添加还是移除!!)
查看允许访问的端口号: firewall-cmd --list-ports
放行已有单个端口号: firewall-cmd --zone=public --permanent --remove-port=8080/tcp
放行范围内的端口号:firewall-cmd zone=public --permanent --remove-port=8000-9000/tcp
2、centos6命令:
开启:service iptables start
关闭:service iptables stop
3、永久关闭防火墙(输入这个以后还需要做其他设置,有时候也会出现重启后失效的情况)
开启:chkconfig iptables on (其他设置)
关闭:chkconfig iptables off
重启和关闭命令
重启命令:reboot
4、reboot
其它还有:shutdown -r now
关机命令:halt
其它:shutdown -h now(推荐)
poweroff
强制执行某个操作 sudo
sudo mkdir xxx
查询 man
man ls
九、 MySQL——自动下载安装MySQL客户端
1、安装与连接数据库步骤
数据库是用来组织,存储和管理数据的仓库
-
1,安装数据库:执行命令yum -y install mysql-server
-
2,启动数据库:安装完毕,执行命令service mysqld start(不要忘记加d!!)
- 停止数据库 service mysqld stop
- 查看状态 service mysqld status
-
3,登录数据库:mysql -u root -p 回车后输入密码,再按回车就可以进入了(mysql的默认用户名是root,密码为空)
-
4,使用数据库:登录成功切换到mysql数据库,输入:use mysql;
-
5,连接数据库:使用Navicat for MySQL连接数据库
-
1、从user表中查询所有可以登陆的用户以及支持连接的主机:select user,host,password from user;(记得mysql语句都是分号结束的)
-
2、User表host字段的值为%或者localhost时的区别
-
3、新建root用户,并给此用户赋予所有数据库和以及所有对象的操作权限,这个赋权语句里的%代表支持任意主机连接到mysql服务器,这样的话用navicat这个客户端肯定就没问题了,赋权语句为grant all privileges on . to ‘root’@‘%’ identified by ‘123456’ with grant option;(意思:赋予所有操作权限给用户root,并定义密码为123456)
- 1,“." : 第一个“”表示数据库,第二个“”表示表,两个加在一起表示所有数据库对应所有的表。
如果替换为mysql.test,表示只赋权给mysql底下的test表。 - 2,%表示客户端设置的权限为任意主机。
- 3,all privileges 表示所有权限,包括增删改查,索引等。也可以只赋予查询select权限。
flush privileges;-- 赋权完毕后记得刷新权限
- 1,“." : 第一个“”表示数据库,第二个“”表示表,两个加在一起表示所有数据库对应所有的表。
-
4,如果连接不上,记得关闭防火墙!!
-
5,设置开机启动
MySQL——卸载yum命令安装的mysql
yum命令卸载安装的mysql
yum -y remove mysql*
-
查找mysql安装文件 find / -name mysql
用rm -rf删除查找出mysql文件
2、注意点
- 1,sql语句要用分号结束,英文输入法
- 2,service mysqld start/stop mysql服务的启动/关闭
注意是关闭虚拟机内部的服务,理清下xshell与虚拟机的关系
3、 用Navicat客户端连接mysql服务器
创建连接
- 1,填写虚拟机ip
- 2,填写用户名和密码
- 3,连接测试
4、 连接不上的可能原因
- 1,连接信息未填写正确
- 2,虚拟机未启动mysql服务
- 3,虚拟机防火墙未关闭