一些不同版本下的Linux系统中重启服务的共性方法:/etc/init.d/network restart (/etc/init.d是一个存放快捷方式的目录)
Linux ip的配置文件路径: /etc/sysconfig/network-scripts/ifcfg-ens33 主机名的配置文件 /etc/sysconfig/network
开启\关闭单个网卡:ifup 网卡名\ifdown 网卡名
GATEWAY=192.168.80.255
source filename 与 sh filename 及./filename执行脚本的区别在那里呢?
1.当shell脚本具有可执行权限时,用sh filename与./filename执行脚本是没有区别得。./filename是因为当前目录没有在PATH中,所有"."是用来表示当前目录的。
2.sh filename 重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell,除非使用export。
3.source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。
查看CentOS版本信息:cat /etc/redhat-release
Apache无法自动启动,
1、将apachectl文件拷贝到/etc/rc.d/init.d 中,然后在/etc/rc.d/rc5.d/下加入链接即可。
命令如下:
cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd //如果有其他的版本的Apache存在,也可以直接覆盖掉
ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc5.d/S85httpd //建立链接(85的意义后面介绍)
此时Apache就可以自动启动了。
2、 运行chkconfig --list,发现没有linux服务列表中httpd,通过chkconfig --add httpd来添加,但是提示:httpd服务不支持chkconfig。需要编辑/etc/rc.d/init.d/httpd,添加以下注释信息:
# chkconfig: 345 85 15
# description: Activates/Deactivates Apache Web Server
第一行3个数字参数意义分别为:哪些Linux级别需要启动httpd(3,4,5);启动序号(85);关闭序号(15)。
保存后执行:chkconfig --add httpd,成功添加。
在rc3.d、rc4.d、rc5.d路径中会出现S85httpd的链接文件,其他运行级别路径中会出现K61httpd的链接文件。
3、运行chkconfig --list httpd
设置httpd服务在3、5级别下开机自启:chkconfig --level 35 httpd on
查看防火墙规则:service iptables status(Centos6.5)或者iptables -L -n (-n加不加其实无所谓,只是显示的形式有所不同)
修改防火墙规则: iptables -A INPUT -p tcp --dport 80 -j ACCEPT #添加一个进站的、协议为tcp的、端口为80的、允许的结果 (注意测试的时候写-A时规则是写入进去了 ,但是没有生效,后来执行的是-I)
(iptables配置文件:/etc/sysconfig/iptables) firewall-cmd --permanent --zone=public --add-port=80/tcp (针对CentOS 7的修改方式) 参考博客:https://www.cnblogs.com/phpshen/p/5842118.html
修改完之后将改变保存到防火墙的配置文件中: /etc/init.d/iptables save
利用管道符统计查询结果有多少行:rpm -qa|wc -l
计划任务命令:crontab
vim快速查看下一个查询结果:n(上一个结果是N)
fsck命令被用于检查并且试图修复文件系统中的错误。当文件系统发生错误四化,可用fsck指令尝试加以修复。
lsblk命令用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息(查看磁盘挂载情况)
抓包工具:charles
用变量dir接收用户输入信息:read -p "输入要创建的文件名称:" dir(这是变量)
判断用户是否存在,存在则提示存在,不存在则创建用户
read -p "请输入用户名:" username
if id $username &>/dev/null
then
echo "用户存在"
else
useradd $username
echo "用户已经创建"
fi
命令行浏览器:lynx 使用方法 lynx --dump www.baidu.com
修改MySQL远程登陆权限:update user set host = '%' where host = 'yunwei'; 修改完之后刷新下权限 flush privileges;
1、需要配置过/etc/resolv.conf 文件才能识别域名,但是每次重启服务器之后该文件会被刷新,添加:nameserver 8.8.8.8
是因为开启了NetworkManager服务的原因,所以我们先把NetworkManager关闭,然后把他的开机自启给关闭了
标准输入输出: stdin 0 表示标准输入
stdout 1 表示标准输出
stderr 2 表示标准错误
& 表示所有的信息
sh 1.sh 1>1.log 2>2.log #意思是将执行1.sh的标准输出信息写入到1.log文件里面;将1.sh的标准错误信息输出到2.log文件里面。
echo 123|passwd --stdin code3 #意思是将echo 123的执行结果输入到passwd命令中,所以整个语句的实现结果是:给用户code3设置一个密码 密码为123
特殊权限位: ①:冒险位 针对命令的操作;比如当我对vim命令进行冒险位操作之后,那么这个vim就是一把尚方宝剑,可以使任何用户拿着它对任何文件进行操作,
如我一个普通code1,可以用此时的vim对/etc/passwd文件修改。 用法:先找到这个命令的文件位置,然后对该文件添加冒险位权限:
chmod 4755 /usr/bin/vim 或者 chmod u+s /usr/bin/vim #对vim赋予冒险位权限
②:强制位 一般对公共目录进行操作,对该目录的属组赋予强制位操作之后,无论那个用户在该目录下新建文件会自动把该文件的属组赋予给有强制位权限的组
如我对/code 目录的属组(code1)赋予强制位权限之后,无论我是用root账号还是test账号在/code文件夹下新建文件其属组都会是code1
chmod 2755 /code 或者 chmod g+s /code #对/code目录赋予强制位权限
③:粘滞位 一般对公共目录进行操作,对该目录赋予了粘滞位权限之后,用户在该目录下创建的文件只能由该用户删除,其他用户无法删除该文件
如我对/code 目录进行粘滞位操作之后,用户code1在/code目录中新建一个test1.txt文件,那么这个文件就只能由code1删除,其他用户删除不了
chmod 1755 /code 或者 chmod o+t /code #对/code目录赋予粘滞位权限
Linux查看当前字符集命令:locale 修改字符集:LANG=en_US.UTF-8
配置域名服务器的文件:cat /etc/resolv.conf 参考博客https://www.cnblogs.com/Alight/p/4351155.html
挂载命令 : mount -o ro /dev/sr0 /mnt/ #每次挂载之后有重启的话那就把他写到etc/rc.local文件里面,让他每次开机自动挂载
Linux配置yum源的文件路径:/etc/yum.repos.d 配置完之后清掉原先的缓存(yum clean all)和创建新的缓存(yum makecache)
()
ssh远程连接到服务器之后exit退出不来后可以使用logout退出登陆
Linux查看所有服务的运行情况: service --status-all (CentOS6) systemctl -a (CentOS7)
将一个程序放到后台去执行加一个: & 例如:sh inotifywait.sh & #这样这个脚本就会一直在后台运行,
查看后台有哪些在运行的脚本:jobs;杀掉程序的话用jobs -l可以查看程序的端口,然后kill掉端口
grep 可以加-i参数来不区分大小写:grep -i utf
查看某个服务使用的端口,如vsftpd服务:netstat -nltp|grep vsftpd
新的虚拟机某些服务无法远程访问时,先看防火墙(iptables) 然后再看安全增强型Linux(selinux)查看命令:getenforce
关闭安全增强型Linux(selinux)方法: vim /etc/sysconfig/selinux 将里面的 SELINUX=enforcing
改为 SELINUX=disabled
用rpm命令卸载软件包的时候如果有依赖关系可以加这个参数忽略掉依赖关系:--nodeps
有的项目显示乱码的话可能会与字体有关系,查看字体的命令:fc-list(显示所有字体),fc-list:lang=zh(只显示中文字体)
安装方式:将字体文件放到/usr/share/fonts/zh_CN目录下,然后添加执行权限,然后建立字体缓存:mkfontscale && mkfontdir && fc-cache -fv。最后重启计算机。
安装zabbix报错:configure: error: Unable to use libpcre (libpcre check failed)。:yum -y install pcre*
结束所有带 zabbix_server 的进程: ps -ef | grep zabbix_server | grep -v grep | cut -c 9-15 | xargs kill -9
刷新分区表: partx -a /dev/sdb #/dev/sdb是你所要刷新的分区
创建物理卷: pvcreate /dev/sdb5(pvs) #将逻辑分区/dev/sdb5创建成一个物理卷
查看物理卷: pvdisplay /dev/sdb5
创建卷组: vgcreate vg01 /dev/sdb5 #创建一个名称为vg01的卷组,同时把/dev/sdb5加入到该卷组中
查看卷组: vgdisplay vg01(vgs)
创建逻辑卷: lvcreate -n lv01 -L 1.5G vg01 #创建一个名称为lv01的逻辑卷,同时指定他的大小为1.5G,卷组为vg01
查看逻辑卷: lvdisplay /dev/vg01/lv01(lvs)
格式化逻辑卷: mkfs.ext4 /dev/vg01/lv01
查看格式: blkid /dev/vg01/lv01
扩容卷组: vgextend vg01 /dev/sdb6 #将物理卷/dev/sdb6加入到vg01这个卷组中
扩容逻辑卷: lvextend -L +1.5G /dev/vg01/lv01 #将逻辑卷lv01加1.5G空间(-L 后面直接写3G的话就是将逻辑卷lv01加到3G空间)
同步文件系统 fs /dev/vg01/lv01 #如果我们添加了一个没有指定文件系统的物理卷到卷组中时,当逻辑卷要使用卷组中的这个物理卷的时候,我们就要同步一下文件系统才能正真使用这个物理卷的空间
查看指定目录的大小 du -sh
以指定字符集的方式创建数据库:create sxyj default character set utf8 collate utf8_general_ci;
mysql日志时间问题。编辑my.conf,在mysqld里面添加log_timestamps = SYSTEM
mysql插入:insert into name values(2,'杜甫');
时间格式备份:cp /etc/drbd.d/global_common.conf{,-$(date +%s)}
redis 显示中文在登陆redis的时候添加一个--raw参数
sed匹配固定行只需要在s前面加上行号就行了,例如:sed '2s/#/#chkconfig: 35 85 15/g' /etc/init.d/httpd
清除系统缓存命令: echo 3> /proc/sys/vm/drop_caches
html页面支持中文的方式,在html文件上头添加一个字符集设置:
<meta charset="UTF-8">
将输出结果赋值给变量: i=$(hostname) #记得要加括号()
指定格式查看文件大小: ls -l --block-size=M /etc/passwd
export JAVA_HOME=/usr/local/jdk/jdk1.8.0_181
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
将Windows中的换行符替换成Linux的:sed -i 's/\r$//g' build.sh
查找指定文件并复制到指定位置:find /usr/share -iname "*.jpg" -exec cp {} /var/www/html \;
centos7 开通指定IP的的指定端口:firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.0.101" port protocol="tcp" port="80" accept" 要重启firewalld才会生效 , 删除规则吧--add改为--remove即可,同样需要重启. 查看规则:firewall-cmd --list-all
环境变量三个:JAVA_HOME(jdk的安装目录) CLASS_PATH(在原先的变量后面加上jdk的lib路径) PATH(在原先的变量后面加上jdk的bin文件目录)