发布由1991年8月一 位来自芬兰赫尔辛基大学的年轻人
作者林纳斯 本纳第克特 托瓦兹(Linus Benedict Torvalds, 1969 年~)制作开源的Linux 内核(核心代码)
组织和个人二次开发 实现功能扩展的发行版
Linux 发行版本 红帽、红旗、ubuntu、centos等
Ubuntu(个人爱好者开发的,社区版,版本更新迭代快,一天多版本?广大爱好者,最潮流、最新的,不稳定,世界范围用的多,不属于国内公司的发行版)
主要CentOS(组织开发维护的发行版,以稳定著称,版本更新迭代慢,CentOS后续不在更新,到8就没了)
Debian、Red Hat 等
选用 7.3(1611版本)使用 4.1G 的版本
VMware14 虚拟机 安装(尽量保证相同版本卸载、安装)
高版本 改 低版本 容易造成不能用!!注册表残留
一个虚拟机 正常情况 最小 20 G
拆分多个文件 方便挂个硬盘 做 扩容
BIOS是软件,CMOS是硬件,BIOS运行在CMOS上。
BIOS是基本输入输出系统,Basic input-output System的缩写,它负责系统从硬件启动到操作系统,当然还负责开机的自检,以及对计算机功能的设置,比如启用、禁用USB,更改硬盘接口模式等等。我们装系统时候按F2所进入的蓝色界面就是BIOS了,常见的BIOS有:Award BIOS AMI BIOS Phoenix BIOS等。
CMOS是Complementary Metal Oxide Semiconductor,互补金属氧化物,从名字就可以看出是硬件。它负责存储BIOS的信息,其通常由一块纽扣电池供电,通过取下电池,可以清除里面保存的数据信息。
(acer)宏碁:进入BIOS需按F2,进入Boot引导需按F12
WIN10 系统
找寻Intel Virtualization Technology选择Enable,按enter键,最后保存退出即可( F10 保存退出)
打开电脑 bios 系统 设置允许安装虚拟机(宽宽的大引脚,半硬件的系统 保存电脑基础设置 CMOS芯片 开机时候进去)
内存和实际内存挂钩的
处理器是模拟的
硬盘 20G + 不存在分区
CD/DVD(IDE)
.iso是电脑上光盘镜像(CD Mirror)的存储格式之一,因为其是根据ISO-9660有关CD-ROM文件系统标准存储的文件,所以通常在电脑中以后缀.iso命名,俗称iso镜像文件。
ctrl + alt 显示/隐藏 鼠标
安装 选择中文 需要确认硬盘大小
设置的密码 为 123 过于简单 确定 两次 用户名 默认为 ROOT
安装 300 多个文件 等 重启
命令窗口 传文件不方便 所以远程连接
FinalShell 远程连接工具 免费 (XShell 有个人和收费)
Java 写的 界面简陋
知道 Linux 系统的ip
ifconfig(Network Interface Config 简化版本的 命令 ipaddr)
启用网卡 配置
# tab 自动补齐
cd /etc/
cd sysconfig/
cd network-scripts/
vi ifcfg-ens33
# 修改内容如下
ONBOOT=yes
ins 编辑 esc :wq 保存退出
reboot 重启虚拟机(或者重启网卡systemctl restart network.service)
蓝屏可能VM工作站版本问题
ifconfig
# 查看动态ip
FinalShell 连接 管理器 SSH 连接
"/" : **根目录Linux文件系统的入口.也是最高级,最重要的的目录.**除衍生出其它目录,还和系统的开机,还原,系统修复有的,一般要求不要把任务应用程序直接放在根目录下,如果满了,可能就登录不了了(需要注意是否日志输出在根目录下)
"/bin":基本系统所需要的命令,主要是单用户模式下,还能执行的命令。主要有cat,mv,mkdir,cp,bash ,ls
"/boot":内核和加载内核所需要的文件.grub系统引导管理器也在这个目录下,存在/boot/grub/
"/dev":在linux系统下,任何设备及接口设备,都是以文件的形式存在,设备文件存储目录.像终端.磁盘等.比较重要的有/dev/null (crontab经常把不想输出输到这里);/dev/zero;/dev/tty;/dev/lp*;/dev/hd*;/dev/sd*
"/etc":系统的主要配置文件都放在这个目录下,一般来说,这个普通人是看不到这些文件的;这里最好也不要放可执行文件。常见的目录有如下:
/etc/inittab ;
/etc/init.d/;
/etc/modprobe.conf ;
/etc/X11/ ;
/etc/fstab/ ;
/etc/sysconfig/ ;
/etc/init.d/开机启动脚本放在这里;
/etc/xinetd.d/ super daemon启动脚本放在这里
/etc/sysconfig/network-scripts/网管配置放在下面下
"/home":普通用户的目录默认存储目录.主文件夹有两种代号:
~ 代表这个用户的主目录
~dmtsai:代表 dmtsai的主文件夹
"/lib":库文件和内核模块存放目录.主要是开机用到,以及在/bin/;/sbin目录下命令会调用的库函数。/lib/modules会放内核相关的模块。
"/lib64":和/lib类似,主要是64的库函数
/usr 是存放可以分享与不可以动的内容,不是user的缩写,而是 UNIX Software Resource 的缩写,就是UNIX操作系统的软件资源
主要子目录有:
/usr/X**/ X Windows数据存在于此
/usr/bin/ 绝大部分用户可用命令在此
/usr/include/ C/C++等的头文件与包含文件在些。如果以源码的*.tar.gz安装软件时,可能会引用下面的文件
/usr/lib/ 包含应用程序函数库及目标文件,以及不被一般用户惯用的执行文件或脚 本
/usr/lib64/ 与/usr/lib/相似,会对64位的
/usr/local/ 本机自己安装的的软件,建议安装到这里,
下面也有bin,etc,include,lib子目录,这些子目录功能大家可以想到
/usr/sbin/ 非系统正常运行所需要的命令,最常见的就是网络服务器软件的daemon
/usr/share/ 放共享文件的地方,基本是文本文件,可读的。子目录有
/usr/share/man 在线帮助文件
/usr/share/doc 软件杂项的说明文件
/usr/share/zoneinfo 软件杂项的说明文件
/usr/src 软件源码放在这里
"/media":即插即用设备的挂载点自动存放在这个目录下.像U盘,cdrom/dvd自动挂载后,就会在这个目录下.常见有/media/floppy,/media/cdrom
"/mnt":临时文件系统的挂载点目录.以前和/media一样,但有专门/media后,专门做临时挂载
"/opt":第三方软件的存放目录.什么叫第三方呢?像KDE,就是第三方的,只是集成到linux里,当然你可以放自己的东西到下面。
"/root":Linux超级权限用户root的根目录.单独存放,也方便在进入单用户模式的操作。
"/sbin":基本的系统维护命令,只能由超级用户使用.这些命令为开机、修复、还原系统过程所需要的。常见的命令有fdisk,fsck,ifconfig,init,mkfs
"/srv":存放一些服务器启动之后需要提取的数据.主要存放网络服务后的一些数据,如www,ftp
"/tmp":临时文件目录,这个目录任何人可以访问,有可能需要定期清理。
"/usr":存放用户使用系统命令和应用程序等信息.像命令.帮助文件等.
"/var":存放经常变动的数据,像日志.邮件等.这个目录下的数据,需要定期清理,最好写个脚本,放在crontab里。
常见的子目录:
/var/cache/ 执行中的缓存文件
/var/lib/ 软件本身执行的过程中,用到的数据。比如Mysql数据一般放在/var/lib/mysql/;而rpm数据则放在 /var/lib/rpm/
/var/lock/ 资源被锁时,放在此。有些资源只能一个程序使用,比如刻录机。
/var/log/ 系统日志存在地,有可能需要定时清理
/var/mail/ 系统邮件,看情况需要定时清理
/var/run/ 某些程序或服务启动后,PID放在下现
/var/spool/放置队列数据, 看情况需要定时清理
“/lost+found” 是ext2/ext3文件系统才产生的,目的是当文件系统产生错误里,将一些丢失的片段防在这个目录下。
“/proc” 是一个虚拟文件系统。放置内存中的数据,当有一个进程启动时,就有一个文件夹。比较重要的/proc/meminfo,/proc/cpuinfo可以通过这两文件查看内存和CPU情况,当然还有/proc/dma,/proc/interrupts,/proc/ioports,/proc/net/*等
“/sys” 和/proc相似,也是虚拟文件系统,主要记录内核相关,比如内核模块,内核检测的硬件信息。
命令的一般格式:command [options] [arguments]
说明:
需掌握的常用命令:cd, ls, locate, less, grep, chmod, cp, mv, mkdir, rm。
链接
ln -s 源文件 目标文件
ln 源文件 目标文件
pwd 命令:“print working directory”(打印工作目录)
ls 命令:显示当前工作目录下的内容,包括子目录和文件
ll 命令:当前目录下子目录和文件列表的详细信息
显示的文件列表格式如下:
drwxr-xr-x 3 user group 102 Mar11 22:56 Filename
文件列表显示了7个段,每一段分别的含义说明如下:
(1) 第1段,drwxr-xr-x,表示文件属性,
第1个字母d表示这个是个目录,如果是“-”表示文件,l表示链接文件。
d后面有9个字符,分成三组,每3个字符为一组。
我们使用括号把他括起来:d(rwx)(r-x)(r-x)
对应含意:文件类型(所有者权限)(组权限)(其他人 权限)。
这三组分别说明的是:文件的所有者权限,文件所属的组权限,和“其他人”的权限。
每一组中每一位字符的含意如下:
第 1 位表示是否有读权限,有读权限,显示“r”,没有读权限,显示“-”。
第 2 位表示是否有写权限,有写权限,显示“w”,没有写权限,显示“-”。
第 3 位表示是否有执行权限,有执行权限,显示“x”,没有,显示“-”。
d(rwx)(r-x)(r-x)含意说明:
第 1 组 d:表示目录。
第 2 组(rwx):表示文件所有者对这个文件的权限是,有读,写,执行权限。
第 3 组(r-x):表示文件所属用 户组对这个文件的权限是:有读,没有写权限,有执行权限。
第 4 组(r-x):表示 其他人对这个文件的权限是:有读,没有写权限,有执行权限。
(2) 第2段,目录下的文件和子目录个数
3表示目录下有3个文件或 目录 (注意:每个目录都有一个指向它本身的子目录"." 和指向它上级目录的子 目录"..")
(3) 第 3 段,显示文件的所有者:user。
(4) 第 4 段,显示文件所属用户组:group。
(5) 第 5 段,文件大小:102 byte。
(6) 第 6 段,修改时间:Mar11 22:56。
(7) 第 7 段,文件名:Filename。
cd 命令:改变工作目录
几个常用 cd 用法:
命令 | ![]() |
---|---|
cd tmp | 进入当前目录下的 tmp 目录。 |
cd ~ | 回到当前用户的 HOME 目录下。 |
cd / | 回到整个系统的根目录。 |
cd /etc | 进入到/etc 目录 |
cd .. | 回到上一级目录。 |
locate 命令:搜寻文件或目录
locate命令要使用,需要先安装,安装命令:yum install mlocate(yum 到 linux 远程中央仓库下载)
更新文件索引数据库,使用 updatedb 命令
locate 有一个十分有用的选项 -r,它可以让你在搜索文件时使用正则表达式。
find 命令:文件查找命令(不搜文件夹)
其一般命令格式为:
find 位置 -name 文件名称
也可以根据文件大小(通过 -size n 选项指定,-n表示小于多少,+n表示大于多少)、时间(如 -atime n 表示查找 n 天前访问过的文件) 来搜索文件。
此外,find 命令同样支持在搜索文件时使用正则表达式,你只需指定 -regex 选项即可。
find 和 locate 命令的区别:locate 是在建立好的索引的基础上进行查找, 查找要快很多。find 功能强大,但它是直接在硬盘上搜寻,查找速度比较慢。
clear 命令:用于清除终端窗口
cat 命令:concatenate(连锁)的简写,意思是合并文件。该命令可以显示文件的内容(经常和 more 搭配使用),或者是将多个文件合并成一个文件
cat 主要有三大功能:
(1) 一次显示整个文件。cat filename
(2) 从键盘创建一个文件。cat > filename << 结束符
只能用于创建新文件,不能编辑已有文件。
例如设置结束符为EOF
cat > 1.txt << EOF
编辑文件完后,只需在最后一行键入“EOF”,然后回车即可。
(3)将几个文件合并为一个文件: cat file1 file2 > file
参数:
-n 或 --number 由 1 开始对所有输出的行数编号
-b 或 --number-nonblank 和 -n 相似,只不过对于空白行不编号
-s 或 --squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v 或 --show-nonprinting
more 命令:浏览超过一页的文件。(分页)
在显示满一页时暂停,此时可按空格健继续显示下一个画面。
按 Q 键退出显示。
Enter键滚动显示下一行。
less 命令:浏览超过一页的文件。(同more)
所不同的是less 命令除了可以按空格键向下显示文件外
还可以利用上下键来卷动文件。
当需要结束浏览时,只要在 less 命令的提示符“:”下按 Q 键即可。
head、tail 命令:文件浏览(看前/后多少行)
例如:head/tail -10 xxx
grep 命令:文件中查指定字符串(显示一行)
grep 要查询的内容 文件名
chmod 命令:改变文件或目录的访问权限
chmod 权限数字 文件名
由三位数字组成,每位数字求和,
第 1 位数字代表文件所有者对这个文件的权限
第 2 位 数字代表文件所属用户组对这个文件的权限
第 3 位数字代表其他人对这个文件 的权限。
权限属性对应的数字如下:
权限属性 | 对应数字 | 说明 |
---|---|---|
r | 4 | 文件可以被读取 |
w | 2 | 文件可以被写入 |
x | 1 | 文件可以被执行(如果它是程序的话) |
- | 0 | 相应的权限还没有被授予。 |
(符号加减也可以u、g、o、a、+、-、=、r、w、x)
查看修改:ll
chown 命令:改变文件的所有者
命令格式:
chown [-R] user[:group] file ...
user : 新的档案拥有者的使用者 ID
group : 新的档案拥有者的使用者群体(group)
-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递归的方式 逐个变更)
cp 命令:(copy)命令文件或目录复制到其他目录中
命令格式:
cp <源> <目标目录>
拷贝目录(命令中需要使用-r 选项):
cp -r <源目录名> <目标目录>
scp 命令:远程复制,从本地到远程以及远程 到本地的文件传输操作
类似网上邻居
scp <源文件名> root@远程ip:/<目标目录>
mv 命令:用于移动文件
作用:剪切、重命名
mkdir 命令:建立目录
rm 命令:将文件或目录删除
如果是链接文件,只是删除了该链接,原有文件保持不变
如果要删除目录,命令如下:
rm -r 目录
选项 | 说明 |
---|---|
-i | 互动。提示你确认删除。这个选项可以帮助你避免误删文件。 |
-f | Force,强制。代替互动模式,不提示地删除文件。除非 你知道自己在干什么,使用这个选项通常不是明智之举。 |
-v | Verbose,显示操作过程的详细信息。显示文件的删除进度。 |
-r | Recursive,递归。将会删除某个目录及其中所有的文件 和子目录。 |
需掌握的常用命令:tar,zip,unzip,gzip,gunzip。
zip/unzip 命令:打包和压缩文件
先安装 yum install zip unzip
zip 命令用于打包和压缩文件。
压缩例子:
zip myfile.zip 目录/*
解压例子:
unzip myfile.zip
gzip/gunzip 命令 :压缩/解开".gz"文件
先安装 yum install gzip gunzip
先打包、再压缩
压缩:
gzip usr.tar
解压:
gunzip usr.tar.gz
tar 命令:文件打包
打包例子:
tar –cvf myfile.tar /tmp
目录解包例子:
tar –xvf myfile.tar
如果一个压缩包是.tar.gz格式,则可以先通过gunzip解压,然后再通过 tar 解包。
也可以通过tar命令直接解压解包,只需在解包加个参数 z
如:
tar -xzvf myfile.tar.gz tar
选项 | 说明 |
---|---|
-c | 建立新的归档文件 |
-x | 从归档文件中解出文件 |
-v | 处理过程中输出相关信息 |
-f | 指定的文件名 |
-z | 与-x 联用时调用 gzip 完成对 gz 文件 的解压 |
linux常见压缩包格式:tar.gz
需掌握的常用命令:free, top, shutdown。
free 命令:查看当前系统内存的使用情况
shutdown 命令:用于关机
-c 取消前一个shutdown 命令。
-f<秒数> 送出警告信息和关机信号之间要延迟多少秒。
reboot 命令:重启
date 命令:日期
cal 命令:日历
top 命令:性能分析工具(ctrl+c/z可以退出)
需掌握的常用命令:useradd, passwd, su。
groupadd、groupdel、groups、useradd、userdel、passwd、usermod(修改用户组)、su(切换用户 超管切换不需要密码 ;切超管后需要exit两次回到最初登录用户)、who、whoami(当前登录)
需掌握的常用命令:ping, netstat, ftp,ssh, telnet, wget。
常用命令:ps, kill。
ps 命令:显示程序的状态
命令常用选项:
-a 显示所有用户的所有进程(包括其它用户)。
-x 显示没有控制终端的进程,同时显示各个命令的具体路径。
-u 按用户名和启动时间的顺序来显示进程。
-aux 显示所有包含其他使用者的进程。
ps -aux | grep ping (带 --color 的不算是查找本身)
kill 命令:终止一个程序
kill <-数字> PID
PID 是指进程 ID。
SIG 信号 | 对应数字 | 说明 |
---|---|---|
SIGINT | 2 | 这个就是在 shell 下用 Ctrl+C 来结束一个程序时,发送的 信号,进程收到这个程序会结束。 你可以用 kill -INT pid 来发这个信号。 |
SIGQUIT | 3 | 这个是在 shell 下用 Ctrl+\ 来结束程序时,发送的信号, |
SIGKILL | 9 | 这个信号之所以被称为“强杀”,就是因为无法改变进程收 到这个信号后所执行的动作,进程只能退出。 (前面说 的两个信号,虽然默认是退出,但是应用程序自己可以通 过 signal 系统调用来修改成其他动作,比如忽略那两个信 号等动作)。 |
SIGTERM | 15 | 程序结束(terminate)信号, 与 SIGKILL 不同的是该信号可以 被阻塞和处理。通常用来要求程序自己正常退出 |
-9 是强杀
三种:绿色--免安装;yum--联网安装(远程中央、镜像库),位置不详;安装包--(下载源码,需要先编译在安装;下载是编译后的直接安装)
FileZillas 使用(远程传输 基于FTP协议软件)
安装 jdk
cd /etc vi profile 配置环境变量
source profile 重启
java version 测试
安装 tomcat
解压即用 环境变量不用配置
cd bin/
./startup.sh 启动(./ 是linux启动)
ps -aux | grep tomcat 查看进程
curl localhost:8080
安装 mysq7
......
mysql 源码安装方式
安装gcc 源码编译
首先安装依赖包,避免在安装过程中出现问题
yum -y install gcc gcc-c++
yum -y install cmake
yum -y install ncurses-devel
yum -y install autoconf
yum -y install perl perl-devel
上面的依赖包安装也可以一行搞定
yum -y install gcc gcc-c++ cmake ncurses-devel autoconf perl perl-devel
创建mysql安装目录以及数据存放目录
mkdir /usr/app/software/mysql
mkdir /usr/app/software/mysql/data
创建用户、用户组
groupadd mysql
useradd -r -g mysql mysql
解压缩文件到当前文件夹
tar -zxvf mysql-5.6.35.tar.gz
安装解压 mysql 初始化 配置文件
cd mysql-5.6.35
cmake . -DCMAKE_INSTALL_PREFIX=/usr/app/software/mysql
-DINSTALL_DATADIR=/usr/app/software/mysql/data
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DEXTRA_CHARSETS=all
-DENABLED_LOCAL_INFILE=1
make && make install
注意事项:
如安装失败重新编译时,需要清除旧的对象文件和缓存信息。
make clean
rm -f CMakeCache.txt
rm -rf /etc/my.cnf
设置目录权限
cd /usr/app/software/mysql
chown -R mysql:mysql .
chown -R mysql:mysql data
将mysql的启动服务添加到系统服务中
cd /usr/app/software/mysql
cp support-files/my-default.cnf /etc/my.cnf
创建基础表:
cd /usr/app/software/mysql
./scripts/mysql_install_db --user=mysql
配置环境变量
vi /etc/profile
#在最下面添加下面两个值
export MYSQL_HOME=/usr/app/software/mysql
export PATH=$PATH:$MYSQL_HOME/bin
#然后保存
让修改的profile文件立即生效
source /etc/profile
将mysql加入到可控制启动的服务的文件夹内,并命名mysql,即service可控制的服务名,至此可用service mysql start控制启动mysql
cd /usr/app/software/mysql/
cp support-files/mysql.server /etc/init.d/mysql
让mysql服务加入到开机启动指令管理的服务列表中
chkconfig --add mysql
开机自启动mysql服务
chkconfig mysql on
现在可以使用下面的命令启动mysql
service mysql start
# 停止 stop 重启 restart
连接到mysql
mysql -u root
为root添加远程连接的能力
use mysql;
desc user;
GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"; //为root添加远程连接的能力。
update user set Password = password('xxxxxx') where User='root';
select Host,User,Password from user where User='root';
flush privileges; //刷新权限
exit //退出
开启防火墙mysql3306端口的外部访问
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙
firewall-cmd --reload
简介
Shell 是一个命令行解释器。向 linux 系统内核发送请求以便运行程序的界面系统级程序,shell 脚本 启动、挂起、停止,编写一些程序。
运维、大数据 写 shell 脚本
编程案例