Linux系统基本命令
命令:
scp nginx.sh @47.99.666.23:/home/-----把nginx.sh传输到主机47.99.666.23的home目录下
ssh 47.99.666.23 ----登陆主机
ln -s 目标目录 快捷方式目录
mkdir /aa/bb/cc -pv若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录
yum install tree tree -L 2 ---只查看当前第二级的目录和文件
dd if=/dev/zero of=sun.txt bs=1M count=10------来测试内存操作速度
------------------------------------------------------------
free -m 查看内存使用情况
手动释放缓存:
1.cat /proc/sys/vm/drop_caches 默认为0
2.sync sync命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件
3.echo 3 > /proc/sys/vm/drop_caches
说明:
echo 1 > /proc/sys/vm/drop_caches;----->To free pagecache, use
echo 2 > /proc/sys/vm/drop_caches;----->to free dentries and inodes, use
echo 3 >/proc/sys/vm/drop_caches;------>to free pagecache, dentries and inodes, use
--------------------------------------------------------
用nc测试端口,nc在centos7上的安装和简单使用
yum install nmap-ncat.x86_64
nc 112.7x.xx.184 22 ----相当于window下的telnet xxxx 端口
--------------------------------------------------------
正在用xshell编辑文件nginx.conf,网线断了。
重连,重新vi nginx.conf,提示xxx目录下有一个.nginx.conf.swp文件。
通过这个文件,可以恢复程序。
恢复方法如下:
-----------------------------------------------------------
kill -9 $(pidof java)
------------------------------------------------
lower_case_table_names参数详解:
•0:区分大小写
•1:不区分大小写
mysql -uroot -p
> show variables like "%case%" ;
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_file_system | OFF |
| lower_case_table_names | 1 |
+------------------------+-------+
在此文件加/etc/my.cnd如下:
lower_case_table_names=1
-------------------------------------------------
用命令行执行导入操作是最可靠的如下:
mysql -uroot -proot;回车
use xxxdb;回车
source d:\aa\bb\cc.sql;回车
一.Centos7系统的安装
二.putty、secureCRT、Xshell客户端的使用,7个运行级别,shutdown
三.通配符、文件类型、文件与目录操作命令ls cd mkdir 、文件操作命令cp mv rm 、文件查看命令cat more less head tail
四.tab键命令补全、 查看使用历史命令history、 !!的使用!num的使用
五.1.输入输出重定向到一个文件:> 或>> 或2> 或&> 2.管道(查找xxx)grep xxx
六.文件权限及设置命令chmod rwxr--r-- 421 777、chown更改文件拥有者、特殊权限位如tmp目录
七.系统查找:
1.which在环境 变量中指定的目录查可执行文件
2.whereis查可执行程序和对应的安装文件
3.locate相当于模糊查
4.1.find -mtime -user -name -type -size
八.文本编辑器VI操作
1.ctrl+f ctrl+b上下页
2.^$行首尾
3.w后 b前一个单词
4.:set nu、set nonu、gg跳到第1行、shift+g跳到结尾
5.进入编辑:i当前进入、a下一个字母进入、 A行尾进入 、o下一行进入 、O上一行进入
6.删除dd ndd、复制粘贴yy nyy p 、剪切先dd 再p
7.退u、进ctrl+r、查找/ n前找 N后找、替换:%s/a/B/g-----把a替换为B 、
8.文件切换
九.系统进程管理
1. ps -ef | grep crond ps -aux | grep crond
2.killsall - u apache--删除uid为apache的所有进程 、kill 线程号
3.用sleep 10000 和Ctrl+z暂停,测试前后台进程切换 、jobs看交互进程、fg 进程号(调到前台)、bg 进程号(调到后台)
4.系统守护进程的操作:service crond stop start reload restart
5.pstree
6.定制开机启用服务ntsysv 定制服务在哪种模式下启动chkconfig --help
十.shell脚本编程
1.shell是命令解释器,也是编程语言
2.可以实现自动化操作(管理 监控 日志处理 数据备份)
3.由注释+命令+流程控制组成
4.Hello World :
#!/bin/bash
#propram:
#This program shows "Hello Shell!".
echo -e "Hello Shell!\a\n"
exit 0
5.执行方式
6.变量、加减运算 (用双小括号)、变量的表达式:从哪里截取,截取多长
#!/bin/bash
#propram:
#This program shows "Hello Shell!".
echo -e "Hello Shell!\a\n"
a=10
b=20
echo $a
echo $b
echo $(($a+$b))
exit 0
例子:
7.if test +条件 等效于 if [条件] 、多分支判断elif 或 case in、while循环 和 until循环(不成立时才执行)、for循环
例子1:用test结合"&& "和"||"作判断,其中"&& "和"||"等效于if else,
目录aa目录是否存在b.info文件,是否目录,是否有rwx权限:
#!/bin/bash
#propram:
#This program shows "Hello Shell!".
fileisexist=/aa/b.info
test -f $fileisexist && echo 'exist' || echo 'not exist'
test -d $fileisexist && echo 'exist' || echo 'not exist'
test -r $fileisexist && echo 'exist' || echo 'not exist'
test -w $fileisexist && echo 'exist' || echo 'not exist'
test -x $fileisexist && echo 'exist' || echo 'not exist'
exit 0
用if else代替&& ||
例子2:用[]作判断要注意空格
例子3:用if [];then fi
例子4:多分支判断elif
a=10 b=20 if [ $a == $b ] then echo "a 等于 b" elif [ $a -gt $b ] then echo "a 大于 b" elif [ $a -lt $b ] then echo "a 小于 b" else echo "没有符合的条件" fi
例子5:case in
echo '输入 1 到 4 之间的数字:' echo '你输入的数字为:' read aNum case $aNum in 1) echo '你选择了 1' ;; 2) echo '你选择了 2' ;; 3) echo '你选择了 3' ;; 4) echo '你选择了 4' ;; *) echo '你没有输入 1 到 4 之间的数字' ;; esac
例子6.while
#!/bin/sh
int=1
while [ $int -lt 10 ];do
echo $int;
((int++));
done
例子7.until
例子8:for
#!/bin/bash
echo '输入一下数字';
read number;
for((i=0;i<=$number;i++));do
echo $i;
done;
8. function函数、
demoFun(){
echo "这是我的第一个 shell 函数!"
}
echo "-----函数开始执行-----"
demoFun
echo "-----函数执行完毕-----"
9.执行shell文件时可以传参执行
function print(){
echo "your input is $1";
}
case $1 in
"one") print 1
;;
"two") print 2
;;
"three") print 3
;;
"four") print 4
;;
"other") echo '你没有输入 1 到 4 之间的数字'
;;
esac
十一.yum安装软件,rpm安装软件,源程序代码安装
关于用yum安装
yum search httpd
yum install httpd
yum update httpd
yum remove httpd
yum clean all
yum makecache
yum repolist
yum localinstall mysql80-community-release-el7-1.noarch.rpm
......
更改yum的远程仓库:
1.备份/etc/yum.repos.d下的CentOS-Base.repo
2.用wget下载CentOS7-Base-163.repo放到/etc/yum.repos.d下
3.清缓存并创建163库存列表的缓存(同步),作了同步以后用yum 进行update或install会更快
注意点:
1.yum tab 补全失效。
执行 yum install bash-completion , 重启终端,则可 tab 补全
2.yum-config-manager: command not found------如安装mysql5.7时要把用这个命令把mysql8.0设置为disable
因为系统默认没有安装这个命令,可以通过命令yum -y install yum-utils安装
关于用rpm安装:
rpm -ivh xxx安装包
rpm -Uvh xxx升级包
rpm -e xxx卸载包
rpm -qa | grep mysql
rpm -qa | grep mysq*
关于用源程序代码安装:
在程序源代码目录中./configure 或 ./configure --prefix=/xx/xx/xxx --xxx=xx/xx/xx --yyy=yy/yy/yy
./configure(检测的作用)执行完告诉你相关目录的位置如下:
在程序源代码目录中执行make 再执行make install
十二.用户管理,密码管理及用户切换
存放用户:etc/passwd:
存放用户密码:etc/shadow:没有设置密码用:分开
存放用户组:etc/group:
存放用户组密码:etc/gshadow:没有设置密码用:分开
useradd liuqh1
useradd -G share liuqh1 创建liuqh1,并加入到标准组share中
usermod -l liuqh1 liuqh2 改为liuqh2
usermod -L liuqh2 锁定liuqh2,liuqh2将不能登陆
usermod -U liuqh2 解锁liuqh2,liuqh2可以登陆
userdel liuqh2 删除用户liuqh2
userdel -r liuqh2 删除用户liuqh2并把此用户所拥有的相应文件夹删除
groupadd share ----创建标准组share
groupmod -n liuqhgroup share ---改名为liuqhgroup
groupdel liuqhgroup ---删除组
passwd
passwd user1
passwd -d user1----删除user1的密码
passwd -l user1----锁定user1的密码----user1不能登陆了
passwd -u user1----解锁user1的密码
密码过期设置:/etc/login.defs的内容
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
查看用户密码设置:chage -l user1
chage -m 2 -M 30 -W 5 user1------user1这个用户在2天内不可以改密码,密码30天过期,到期前5天warning(提示)
配置用户的sudo权限:visudo回车,sudo是普通用户借用管理员的权限
id回车 和 groups回车
newgrp 组名------改默认组
十三.网络基本配置:
要虚拟机中:
hostname查看主机名
hostname aaa把主机名为aaa,重开客户端和生效 ----临时改,重启失效
在/etc/sysconfig中改HOSTNAME是永久性的如图:
配置:etc/sysconfig/network-scripts/ifcfg-eth0文件
配置DNS,在etc/resolv.conf配置
十四. Linux系统网络测试和测试工具
1.ping
2.nslookup dns解释,把域名解释出对应的IP
3.traceroute :经过多少个路由
4.netstat 网络服务端口查询
5.ifconfig 查看ip 网关等信息,可配置临时网络如增加 修改等,但服务器重启后无效
6.nmtui 配置持久网络
7.service network restart 或 systemctl restart network 重启网络
十五. Linux系统时间同步
1.date
2.hwclock --systohc 从当前系统时间设置硬件时钟
--hctosys 从硬件时钟设置系统时间
3.time
4.安装ntpd时间同步程序并设置开机启动(作为守护进程自动同步时间,etc下有ntp.conf配置有时间同步服务器的网址)
十六.Linux系统周期性计划任务
1.crond service crond status (stop/start/restart/reload)
2.crontab -l查看现有任务
-e编辑任务 分 时 日 月 周 */1 * * * * echo "Weclome to java!" >> /crondtab.info
-r删除任务
3.service crond restart
4.、etc/cron.deny指定不让某些用户使用crontab
十七.iptables防火墙基本设置
centos 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙
centos下/etc/sysconfig/下找不到iptables文件(原因:在新安装的Linux系统中,防火墙默认是被禁掉的,一般也没有配置过任何防火墙的策略,所有不存在/etc/sysconfig/iptables文件。)1.先停止并禁用firewalld
systemctl stop firewalld.service #停止firewall-----或service firewalld stop 用service firewalld status--查看是否已停止
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示not running,开启后显示running)
2.安装yum install iptables-services.x86_64
3.service iptables save----/etc/sysconfig/产生iptables文件 iptables-save service iptables restart
4.重启reboot
5.查看iptables -L -n --line-number
1、常用命令列表: 常用命令(-A追加规则、-D删除规则、-R修改规则、-I插入规则、-L查看规则)
命令 -A, --append
范例 iptables -A INPUT ...
说明 新增规则(追加方式)到某个规则链(这里是INPUT规则链)中,该规则将会成为规则链中的最后一条规则。
命令 -D, --delete
范例 iptables -D INPUT --dport 80 -j DROP
iptables -D INPUT 1
说明 从某个规则链中删除一条规则,可以输入完整规则,或直接指定规则编号加以删除。
命令 -R, --replace
范例 iptables -R INPUT 1 -s 192.168.0.1 -j DROP
说明 取代现行规则,规则被取代后并不会改变顺序。(1是位置)
命令 -I, --insert
范例1 iptables -I INPUT 1 --dport 80 -j ACCEPT
范例2 iptables -I INPUT -s 123.45.6.7 -j DROP #屏蔽单个IP的命令
说明 插入一条规则,原本该位置(这里是位置1)上的规则将会往后移动一个顺位。
命令 -L, --list
范例 iptables -L INPUT
说明 列出某规则链中的所有规则。
命令 -F, --flush
范例 iptables -F INPUT
说明 删除某规则链(这里是INPUT规则链)中的所有规则。
命令 -P,修改默认的规则 --policy
范例 iptables -P INPUT DROP
十八.selinux防火墙
setenforce是Linux的selinux防火墙配置命令 执行setenforce 0 表示关闭selinux防火墙。
setenforce命令是单词set(设置)和enforce(执行)连写,另一个命令getenforce可查看selinux的状态
十九.tar rar jar(java的命令)
tar -cvf test.tar *.txt 当前目录下所有txt为后缀的文件,打包为test.tar中
tar -czvf test.tar.gz *.txt 当前目录下所有txt为后缀的文件,打包为test.tar.gz中
---------------------------------------------------------------------
tar -xvf test.tar 解压test.tar到当前目录
tar -xvf test.tar -C /test 解压test.tar到根目录下的test目录
tar -xzvf test.tar.gz 解压test.tar.gz到当前目录
tar -xzvf test.tar.gz -C /test 解压test.tar.gz到根目录下的test目录
----------------------------------------------------------------------
rar a test.rar *.txt 当前目录下所有txt为后缀的文件,打包为test.rar
unrar e test.rar //解压rar
-----------------------------------------------------------------------
zip jpg.zip *.jpg //zip格式的压缩
unzip file.zip //解压zip
-----------------------------------------------------------------------
jar -cvf project.war /project ---把系统目录下的project文件夹打成project.war
jar -cvf project.jar /project ---把系统目录下的project文件夹打成project.jar
jar -xvf project.war ----解压project.war到当前目录
jar -xvf project.jar----解压project.jar到当前目录
说明:
-c 创建war包
-v 显示过程信息
-f 指定 JAR 文件名,通常这个参数是必须的
-M 不产生所有项的清单(MANIFEST〕文件,此参数会忽略 -m 参数
-0 这个是阿拉伯数字,只打包不压缩的意思
二十. 安装配置apache
1.Linux系统Apache服务器概述及安装
1-1.安装:https://blog.****.net/qq692042122/article/details/80633801
1-2配置虚拟目录:https://blog.****.net/qq692042122/article/details/80637810
1-3配置用户认证:https://blog.****.net/qq692042122/article/details/80646358
1-4配置基于IP的虚拟主机:https://blog.****.net/qq692042122/article/details/80646550
1-5配置虚拟主机,一个IP多个域名:https://blog.****.net/qq692042122/article/details/80649619
二十一.安装配置mysql5.7
https://blog.****.net/qq692042122/article/details/80661951二十二.配置mysql5.7主从复制
更改yum的远程仓库:
1.备份/etc/yum.repos.d下的CentOS-Base.repo
2.用wget下载CentOS7-Base-163.repo放到/etc/yum.repos.d下
3.清缓存并创建163库存列表的缓存(同步),作了同步以后用yum 进行update或install会更快