目录
- LINUX
- 下载安装
- 克隆
- 问题:
- 用户权限
- yum安装配置
- 文件目录说明
- 命令
- 踩过坑和细节
- ssh
LINUX
下载安装
- 安装虚拟机
- 新建虚拟机
- 自定义
- 稍后安装操作系统
- 选择linux,选择对应的安装的版本
- 然后选择nat网络模式
- 然后选择创建新的虚拟机
- 剩下没提到的都默认
- 安装操作系统
- 在新安装的虚拟机上,选择cd|dvd
- 选择使用iso镜像文件
- 选择install,确定
- 如果跳出让你检查光盘介质,skip跳过
- 选择datetime,选择Asia,上海(选择时区)
- 选择installation destination 选择i will config partitioning
- network 打开右上角的开关
- 安装---配置用户密码
设置nat模式网络
centos7 查看ip地址:ip addr
cd /etc/sysconfig/network-scripts
vi ifcfg-eth0 | ens33 (centos7)
i 编辑
删除物理地址
设置动态ip为静态static
设置dns1 114.114.114.114
设置 dns2 192.168.79.2是你的网关...
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.79.130
NETMASK=255.255.255.0
GATEWAY=192.168.79.2
DNS1=114.114.114.114
DNS2=192.168.79.2
esc 命令模式
:wq! 保存退出
克隆
- 先给第一个linux拍摄快照,关机状态下
- 右键克隆选择现有的快照、创建连接克隆 快
- 修改配置vi ifcfg-eth0 访问地址修改
- 修改cd /etc/sysconfig下的network 的hostname
- cat /etc/udev/rules.d/70-persistent-net.rules
- rm -f /etc/udev/rules.d/70-persistent-net.rules 删除这个文件会自动生成,里面克隆了上一个linux的网卡地址
问题:
Failed to start LSB: Bring up/down networking|service network restart出错
依次执行以下指令
systemctl stop NetworkManager
systemctl disable NetworkManager
重新启动网络:
systemctl start network.service
用户权限
用户操作
useradd name
#设置密码
passwd name
userdel name
#还需要手动删除以下
rm -rf /home/name/
rm /var/mail/name
#查看所有用户
users
组操作
groupadd name
groupdel name
用户、组、权限
添加用户到组
usermod -G share zpyu
//查看用户信息
[root@node2 home]# id zpyu
uid=500(zpyu) gid=500(zpyu) groups=500(zpyu),502(share)
文件夹组权限
==chown==
chown root:groupName directory
//此时groupName下的用户对share文件夹有r-x权限读和执行
文件夹设置rwx权限
==chmod==
权限分为u、g、o
//对组权限添加w,下面的share是一个文件夹
chmod g+w share
//对其他用户取消r和x权限,下面的share是一个文件夹
chmod o-r-x share
yum安装配置
yum配置ali镜像:mirrors.aliyun.com
- cd 到、/etc/yum.repos.d,备份之前的CentOS-Base.repo
- 阿里云镜像下载对应的CentOS-Base.repo
- yum clean all
- yum makecache
文件目录说明
详情请看:https://www.cnblogs.com/zhuchenglin/p/8686924.html
目录 | |
---|---|
/bin | 存放二进制可执行文件(ls,cat,mkdir等),用户命令一般都在这里。 |
/etc | 存放系统管理和配置文件 |
/home | 存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示 |
/usr | 用于存放系统应用程序,比较重要的目录/usr/local 本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。/usr/x11r6 存放x window的目录/usr/bin 众多的应用程序 /usr/sbin 超级用户的一些管理程序 /usr/doc linux文档 /usr/include linux下开发和编译应用程序所需要的头文件 /usr/lib 常用的动态链接库和软件包的配置文件 /usr/man 帮助文档 /usr/src 源代码,linux内核的源代码就放在/usr/src/linux里 /usr/local/bin 本地增加的命令 /usr/local/lib 本地增加的库 |
/opt | 额外安装的可选应用程序包所放置的位置。一般情况下,我们可以把tomcat等都安装到这里。 |
/proc | 虚拟文件系统目录,是系统内存的映射。可直接访问这个目录来获取系统信息。 |
/root | 超级用户(系统管理员)的主目录(特权阶级^o^) |
/sbin | 存放二进制可执行文件,只有root才能访问。这里存放的是系统管理员使用的系统级别的管理命令和程序。如ifconfig等。 |
/dev | 用于存放设备文件。 |
/mnt | 系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。 |
/boot | 存放用于系统引导时使用的各种文件 |
/lib | 存放跟文件系统中的程序运行所需要的共享库及内核模块。共享库又叫动态链接共享库,作用类似windows里的.dll文件,存放了根文件系统程序运行所需的共享文件。 |
/tmp | 用于存放各种临时文件,是公用的临时文件存储点。 |
/var | 用于存放运行时需要改变数据的文件,也是某些大文件的溢出区,比方说各种服务的日志文件(系统启动日志等。)等。 |
/lost+found | 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下叫什么.chk)就在这里 |
- 查看磁盘使用情况:==df== -h(以kb单位显示)
- 查看一个目录或者文件的占用空间:==du -h path==
[root@node2 audit]# du audit.rules
4 audit.rules
[root@node2 audit]# du -h audit.rules //-h会带单位
4.0K audit.rules
[root@node2 audit]#
- 隐藏文件都是以” . “开头的
ls -a 显示全部子文件
[root@node2 ~]# ll -a
total 2320
dr-xr-x---. 3 root root 4096 Jul 20 2019 .
dr-xr-xr-x. 22 root root 4096 Feb 5 2020 ..
-rw-------. 1 root root 900 Jul 16 2019 anaconda-ks.cfg
-rw------- 1 root root 2320 Jul 30 2019 .bash_history
-rw-r--r--. 1 root root 18 May 20 2009 .bash_logout
-rw-r--r--. 1 root root 176 May 20 2009 .bash_profile
-rw-r--r--. 1 root root 176 Sep 23 2004 .bashrc
-rw-r--r--. 1 root root 100 Sep 23 2004 .cshrc
-rw-r--r--. 1 root root 8815 Jul 16 2019 install.log
-rw-r--r--. 1 root root 3384 Jul 16 2019 install.log.syslog
-rw-r--r-- 1 root root 1534 Jul 20 2019 pwd
-rw-r--r-- 1 root root 2312076 Jul 18 2019 root
drwx------ 2 root root 4096 Jul 17 2019 .ssh
-rw-r--r--. 1 root root 129 Dec 4 2004 .tcshrc
以==d==开头的是文件夹,以‘ ==-== ’开头的是文件,==L==开头表示软连接像快捷方式一样,==b==(block)开头是块设备文件,==c==开头是字符设备文件,==p==开头命令管道文件,==s==开头是套接字文件
第二位开始向后是权限标识,每三位为一组
第一组是所属主:表示对应的创建者对其的权限,
drwx------ 2 root root 4096 Jul 17 2019 .ssh 这个表示是一个文件,且只有创建者对它有读写执行的权限
第二组表示用户所在的组,用户可以属于一个组,这个组下的用户对这个文件所持有的
第三组表示组之外的用户权限
权限后面的一个数字表示硬链接有几个
drwx------ 2 root root 4096 Jul 17 2019 .ssh 如2就是
硬链接后面的两个单词==root root==表示,第一个是属主,第二个是主所在的组
再后面的==4096==表示所占空间单位是==b==
==Jul 17 2019== 表示最后一次的修改时间
最后就是文件名
命令
命令分为外部和内部命令
区分:==type commandName==
==whereis commandName== 表示这个命令在什么位置
==file fileName== 表示这个文件是什么类型的
常用命令
命令 | 作用 |
---|---|
yum install man manpages | 安装帮助文档 |
wget url path | |
echo | 输出,像print |
mkdir -p path | -p:递归创建文件夹 |
mkdir a/b a/c a/d | 给a下创建多个文件夹 |
mkdir a/{1,2,6} | 同上 |
mv a b | 移动a到b也可以相当于改名字,-r表示操作目录 |
cp a b | copy a文件 到 b文件,-r表示操作目录 |
==ln file other== | 硬链接的意思,我理解是相当于多个引用指向多块内存,file的删除不影响other |
==ln -s file other== | 软连接,other指向file的文件,file删除影响other |
ll 或者 ls | -a是显示所有包括隐藏的文件,-i显示文件号和其他信息 |
==stat file== | 显示文件详细信息 |
su user | 切换用户 |
sudo | sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具 |
find /(查找范围) -name '查找关键字' -type d | 查找目录 |
find /(查找范围) -name 查找关键字 -print | 查找文件 |
unzip name.zip -d name | 解压Zip |
centos7 | |
systemctl restart sshd | 重启sshd |
删除:
- rm -rf * 删除当前目录下的所有文件,这个命令很危险,应避免使用。
所删除的文件,一般都不能恢复! - rm -f 其中的,f参数 (f --force ) 忽略不存在的文件,不显示任何信息
不会提示确认信息 - rm 命令删除一个目录中的一个或者多个文件或者目录,只用rm命令不会
删除目录,通常文件通常可以恢。 - ==删除的时候注意不要直接删除,可以先mv或者cp文件到 tmp中观查一段时间后再删除==
创建目录:
mkdir -p /...path
-p是递归创建目录
查找目录:
find /(查找范围) -name '查找关键字' -type d
查找文件:find /(查找范围) -name 查找关键字 -print
wget:
wget -P /保存文件的目录 文件下载地址
vi 文档操作
关闭文件
:w //保存文件
:w vpser.NET //保存至vpser.net文件
:q //退出编辑器,如果文件已修改请使用下面的命令
:q! //退出编辑器,且不保存
:wq //退出编辑器,且保存文件滚屏
Ctrl+u:向文件首翻半屏
Ctrl+d:向文件尾翻半屏在vi中按u可以撤销一次操作
u 撤销上一步的操作
Ctrl+r 恢复上一步被撤销的操作vi +5 file 表示编辑文件光标定位在第5行
sed 文本行操作
man 命令使用,awk文本分析工具了解,先在都是用工具比较方便
==stat file==查看文件的详细信息包括元数据
[root@node2 ~]# stat aa
File: `aa'
Size: 7 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 786851 Links: 2
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-02-05 19:00:08.227612982 +0800 //文件访问时间
Modify: 2020-02-05 19:00:08.227612982 +0800 //文件内容修改时间
Change: 2020-02-05 19:00:33.765375138 +0800 //文件元数据修改时间
touch 摸一下文件
- touch aa 生成一个aa的文件,也将8中三个文件的时间描述更新,一般和stat组合使用
cat和more、less、head、tail
- cat是直接拼接出来的,全部显示,不能直接看过大的文件
- more是分页显示一个文件,空格可换下一页,不能上一页
- less是分页可以向前用空格,上一页用b,是放在内存中的不能看过大的文件。
- head -5 看前5行
- tail -5 看后5行
- tail -f file 监控file有增量数据就打印出来
echo和>>
>>表示重定向
echo ssss >> file 向file追加ssss
| 管道
就像是一个包裹流的管道
grep
print lines matching a pattern 打印出所匹配的正则的行
grep -E pattern file,-E表示扩展类正则会被匹配,或者\转义
eg:grep -E “[25]{1}” file
eg:grep “[25]\{1\}” file
cut、sort、wc
cut 显示切割的行数据
-f选择显示的列:-f1,2,3 | -f1-3。显示1,2,3列
-s不显示没有分割符的行
-d自定义分隔符
cut -d ' ' -f1,2 以空格为分隔符切割,显示1,2列
sort
- -n按数值排序
- -r倒序
- -t自定义分隔符
- -k选择排序列
- -u合并相同行
- -f忽略大小写
wc,word count
- 统计文件的行数,或者字节数等,查询man来操作
修改的资源立即生效
方法1:
让/etc/profile文件修改后立即生效,可以使用如下命令:
# .+空格+/etc/profile
方法2:
让/etc/profile文件修改后立即生效,可以使用如下命令:
\#source /etc/profile
配置jdk环境变量
/etc/profile
#配置环境变量
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=/usr/local/jdk/jre
export CLASSPATH=$JRE_HOME/lib/rt.jar:$JRE_HOME/lib/ext
export PATH=$PATH:$JRE_HOME/bin
启动tomcat
./catalina.sh run
或者 ./start.sh
bash shell
是一个软件,如linux的命令行就是,通过账号密码进入bash shell程序中
命令执行流程
- 根据空格来切割你输入的命令,第一个位置认为是 命令,后面的认为是参数
- 内部命令直接执行,如果是外部命令就去找它对应的可执行文件
- 所以会有一个环境变量path来缩小搜索范围,和window一样,还会用hash表来优化查询命令
查找hash表
hash
清空hash表
hash -r
path是以 : 分割多个路径的
定义变量和进程管理
- 定义变量、输出
- 定义集合
- 变量和等号之间不能随便加空格,因为shell会以空格分割
- 数组要加上括号,元素要以空格隔开
- 大括号会对里面的表达式先解析
arr=(1 2 3)
echo ${arr[1]}
打印当前的shell进程号
echo $$
打印所有启动的进程信息
ps -ef
强制杀死进程
kill -9 pid
查看命令帮助
==man==(manual 指南、手动) + commandName ,用于外部命令帮助
==help== + commandName,用于内部命令的帮助
踩过坑和细节
查看nginx的log
** 我跑到tomcat下找不到这个文件**
#要进到nginx的logs目录下的文件
#tail error.log
添加组件
./configure --prefix=/usr/local/tengine --add-module=modules/ngx_http_upstream_check_module
实际上是找到模块的存在的目录就行了
远程复制
scp file 192.168.59.12:/'pwd'
页面禁用session
<%@ page session="true" %>
session共享
每个tomcat里面的context.xml中加入
安装memcached
yum -y install memcached
启动memcached
memcached -d -m 128 -u root -l 192.168.59.11 -p 11211 -c 256 -P /tmp/memcached.pid
查看状态
memcached-tool 192.168.59.11:11211
==启动tomcat之前一定要先启动memcache==--又踩一个坑
开机启动
chkconfig --list
chkconfig --add nginx
chkconfig nginx on
时间问题
service ntpd status
虚拟目录
location /www {
alias /var/data/www1;
index index.html index.htm a.html;
}
自动索引
location /art {
alias /var/data/www1/;
autoindex on;
}
动静分离
#正则是谁在前先匹配谁
location / {
proxy_pass http://192.168.150.11:803;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|html|htm|css|js)$ {
root /var/data/www1/;
}
时间不同造成session不同步
一:外网同步时间
- 查看ntpd服务状态
[root@cdh sbin]# service ntpd status
ntp: unrecognized service
说明 ntpd没有安装。 - 查看是否存在ntp的yum源
[root@cdh sbin]# yum list |grep ntp - 如果有显示出yum源则安装ntp服务
[root@cdh sbin]# ==yum -y install ntp==;
首先启动ntp服务:service ntpd start 即可,并设置ntp服务,开机自启动:chkconfig ntpd on。
4.同步时间:(在每台服务器上执行,或者建一个crontab定时)
[root@cdh sbin]# ntpdate asia.pool.ntp.org - chkconfig 查看自启状态
虚拟路径
root在location中配置多个会出错
换成==alias==来替换
autoindex on; 表示列出这个目录下所有的文件像spring的各版本列表
启动jar
- java -jar jarName
- --spring.profiles.active=dev
- 返回逻辑视图的时候前面不要加==/==
网络相关
ip会和掩码做按位与运算,得到你的网络号,192.168.59.11 & 255.255.255.0 = 192.168.59.0;
route -n查看路由表
gateway:默认网关,也是下一跳的地址
你连接的网关一定是你网络号在一个网络号中
连接别的网络:
网络层找到下一跳 -》 链路层arp协议解析出mac地址
ssh
- 配置:etc/ssh/sshd_config