linux
简介
Linux 内核最初是由芬兰人李纳斯·托瓦兹(Linus Torvalds)编写的。
Linux 是一套免费使用和开源的类 Unix 操作系统,是一个基于 POSIX(可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX )) 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
发行版有:
操作系统架构
操作系统(Operating System,简称OS)是管理计算机硬件硬件与软件软件资源的计算机程序。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。
启动/关机/重启
启动流程
运行级别
Linux系统有7个运行级别(runlevel):
-
运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
-
运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
-
运行级别2:多用户状态(没有NFS)
-
运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
-
运行级别4:系统未使用,保留
-
运行级别5:X11控制台,登陆后进入图形GUI模式
-
运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
界面切换
-
图形界面进入命令行界面
-
快捷键:ctrl+alt+F6
-
命令:init 3
-
-
命令行界面进入图形界面
-
快捷键:ctrl+alt+F2
-
命令:init 5
-
startx
-
-
关机/重启
不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。
sync 将数据由内存同步到硬盘中。 shutdown 关机指令,你可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机: shutdown –h 10 ‘This server will shutdown after 10 mins’ 这个命令告诉大家,计算机将在10分钟后关机,并且会显示在登陆用户的当前屏幕中。 shutdown –h now 立马关机 shutdown –h 20:25 系统会在今天20:25关机 shutdown –h +10 十分钟后关机 shutdown –r now 系统立马重启 shutdown –r +10 系统十分钟后重启 reboot 就是重启,等同于 shutdown –r now halt 关闭系统,等同于shutdown –h now 和 poweroff init 0 关闭系统 init 6 重启系统
目录结构
详情参考:https://www.runoob.com/linux/linux-system-contents.html
网络配置
网络模式
-
桥接模式
虚拟机网段与宿主机(windows)网段是一个
注:只要windows能上网,虚拟机就能上网;centos系统与windows互通,
并能连接外网。
-
host-only(仅主机)模式
使用虚拟网卡vmnet1。
注:只能与windows互通,不能连接外网。
-
NAT模式
使用虚拟网卡vmnet8
注: centos系统与windows互通,并能连接外网。
注: windows各个网卡信息可以通过cmd中输入ipconfig命令查看
静态ip配置
-
图形化界面设置
-
命令行界面设置
输入命令:vim /etc/sysconfig/network-scripts/ifcfg-ens33
按下a或i或o键,进行编辑;按下esc键,进入命令模式;然后按下:wq,保存退出。
执行命令:systemctl restart network(centos7)或service network restart(centos7兼容之前的版本)
配置主机名
-
查看当前主机名
执行命令:hostname
-
配置临时主机名(重启系统后失效)
hostname linux-senior01.test.com
-
配置永久主机名
执行命令:vim /etc/hostname或 vim /etc/sysconfig/network
配置本地DNS映射
执行命令:vim /etc/hosts
用户管理
详情参考:https://www.runoob.com/linux/linux-user-manage.html
文件/目录管理
常用操作
详情参考:https://www.runoob.com/linux/linux-file-content-manage.html
权限控制
详情参考:https://www.runoob.com/linux/linux-file-attr-permission.html
vi/vim
详情参考:https://www.runoob.com/linux/linux-vim.html
磁盘管理/内存管理
详情参考:https://www.runoob.com/linux/linux-filesystem.html
du/df/free参考:https://blog.csdn.net/qq_19167629/article/details/80915834
软件安装
yum
-
安装文件传输工具:yum install lrzsz
-
安装zip工具包:yum install zip unzip
zip(压缩/解压缩)
-
解压:unzip mysql-libs.zip –d /opt/soft
-
压缩:zip -rq mysql-libs1.zip mysql-libs
tar.gz(压缩/解压缩)
-
解压:tar zxf mysql-connector-java-5.1.27.tar.gz -C .
-
压缩:tar cvf mysql-connector-java-5.1.27.tar.gz mysql-connector-java-5.1.27
rpm
使用rpm安装jdk和mysql。
安装JDK
-
查询是否已经安装jdk:rpm -qa|grep java或rpm -qa|grep jdk
-
安装:rpm -ivh jdk-8u60-linux-x64.rpm
-
卸载:rpm -e --nodeps jdk-8u60-linux-x64.rpm
-
配置环境变量
-
全局系统变量
-
执行命令:vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_60
export PATH=$PATH:$JAVA_HOME/bin
-
执行命令:source /etc/profile
-
-
当前用户系统变量
-
vim ~/.bashrc
export JAVA_HOME=/usr/java/jdk1.8.0_60
export PATH=$PATH:$JAVA_HOME/bin
-
source ~/.bashrc
-
-
安装MySQL
-
服务端
-
查看是否安装mariadb: rpm –qa|grep mariadb
-
删除mariadb:rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
-
安装perl库:yum-y install autoconf
-
安装:rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm
-
查看默认密码:cat /root/.mysql_secret
-
查看端口:netstat -ano|grep 3306
-
查看进程: ps -nux|grep mysql
-
查看mysql状态:service mysql status
-
启动mysql:service mysql start
-
停止:service mysql stop
-
重启:service mysql restart
-
-
客户端
-
安装:rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
-
连接:mysql -hlocalhost -uroot -pxxx
-
重置密码:set password=password('123456');
-
Shell简介
Shell是什么
-
shell本身是解释器
-
shell脚本是开发语言
-
开发人员编写shell脚本,交给shell解释器运行,shell解释器调用的系统内核
Shell解释器
Bourne Shell(/usr/bin/sh或/bin/sh)
Bourne Again Shell(/bin/bash)
C Shell(/usr/bin/csh)
K Shell(/usr/bin/ksh)
Shell for Root(/sbin/sh)
注:常用的是/bin/sh或/bin/bash
-
查看linux提供的Shell解释器:cat /etc/shells
-
查看bash和sh的关系:ll | grep bash
-
查看默认解释器:echo $SHELL
-
常用系统变量:$HOME、$PWD、$SHELL、$USER
-
显示当前Shell中所有变量:set
-
详情参考:https://www.runoob.com/linux/linux-shell.html
Shell变量
详情参考:https://www.runoob.com/linux/linux-shell-variable.html
Shell传递参数
详情参考:https://www.runoob.com/linux/linux-shell-passing-arguments.html
Shell数组
详情参考:https://www.runoob.com/linux/linux-shell-array.html
Shell运算符与流程控制
运算符详情参考:https://www.runoob.com/linux/linux-shell-basic-operators.html
流程控制详情参考:https://www.runoob.com/linux/linux-shell-process-control.html
read读取控制台输入
基本语法
read(选项)(参数)
-
选项:
-
-p:指定读取值时的提示符;
-
-t:指定读取值时等待的时间(秒)。
-
-
参数
-
变量:指定读取值的变量名
-
实例
-
执行vim read.sh
#!/bin/bash
read -t 7 -p "Enter your name in 7 seconds " NAME
echo $NAME
-
执行./read.sh
Shell函数及参数
系统函数
-
basename
-
基本语法
-
basename [string / pathname] [suffix]
-
basename命令会删掉所有的前缀包括最后一个(‘/’)字符,然后将字符串显示出来。
-
suffix为后缀,如果suffix被指定了,basename会将pathname或string中的suffix去掉。
-
-
-
实例
-
执行basename /opt/module/shell/wc.txt
-
执行basename /opt/module/shell/wc.txt .txt
-
-
-
dirname
-
基本语法
-
dirname 文件绝对路径
从给定的包含绝对路径的文件名中去除文件名(非目录的部分),然后返回剩下的路径(目录的部分)。
-
-
实例
-
执行dirname /opt/module/shell/wc.txt
-
-
自定义函数
详情参考:https://www.runoob.com/linux/linux-shell-func.html
Shell输入输出重定向
详情参考:https://www.runoob.com/linux/linux-shell-io-redirections.html
Shell工具
cut
-
基本用法
-
cut [选项参数] filename
-
说明:默认分隔符是制表符
-
-
选项说明
-
实例
-
准备数据cut.txt
dong shen guan zhen wo wo lai lai le le
-
切割第一列
cut -d " " -f 1 cut.txt
-
切割第二三列
cut -d " " -f 2,3 cut.txt
-
切割出guan
cat cut.txt | grep "guan" | cut -d " " -f 1
-
选取系统PATH变量值,第2个“:”开始后的所有路径
echo $PATH | cut -d: -f 2-
-
切割ifconfig 命令打印的IP地址
ifconfig eth0 | grep "inet addr" | cut -d: -f 2 | cut -d" " -f1
-
sort
-
基本语法
sort(选项)(参数)
-
实例
-
准备数据
bb:40:5.4 bd:20:4.2 xz:50:2.3 cls:10:3.5 ss:30:1.6
-
按照“:”分割后的第三列倒序排序
sort -t : -nrk 3 sort.txt
-
sed
详情参考:https://blog.csdn.net/shanyongxu/article/details/46489717
awk
详情参考:https://www.cnblogs.com/kaituorensheng/p/3919212.html
作业
-
使用Linux命令查询某一文件中空行所在的行号
awk '/^$/{print NR}' sed.txt
-
有文件score.txt,内容如下:
张三 90
李四 85
王五 100
使用Linux命令计算第二列的和并输出
cat score.txt | awk -F " " '{sum+=$2} END{print sum}'
-
编写Shell脚本检查一个文件是否存在
#!/bin/bash if [ -f file.txt ]; then echo "文件存在!" else echo "文件不存在!" fi
-
编写shell脚本,对文本中无序的一列数字升序排序并求和
cat test.txt 9 8 7 6 5 4 3 2 10 1 sort -n test.txt|awk '{a+=$0;print $0}END{print "SUM="a}'
-
编写shell脚本写出查找当前文件夹(/opt/module/shell/data)下所有的文本文件内容中包含有字符”shen”的文件名称
grep -r "shen" /opt/module/shell/data | cut -d ":" -f 1
-
常用查看系统指标的命令有哪些?
top命令:https://jingyan.baidu.com/article/ca00d56cbbdf27a99eebcf94.html free命令:https://blog.csdn.net/wang_yiduo/article/details/89861632 du命令:https://www.runoob.com/linux/linux-comm-du.html df命令:https://www.runoob.com/linux/linux-comm-df.html
-
进程管理
ps :查看进程
netstat:查看某个进程是否存在或某个端口是否存在