- 日常操作
- htop 多功能监控系统
- cat 结合EOF标准输入结束 追加信息
- 查看磁盘io读写能力
- 创建普通用户给予不通的权限
- vim 块的操作
- 报错排错日志路径
- 看进程情况
- 杀死进程
- rwx(421) 读写执行
- web http服务(80端口)
- ftp vsftpd服务(20数据传输21连接)
- dns named服务(53端口)
- dncp dhcpd服务(68端口)
- 执行history历史命令
- 用于查看某一端口的占用情况
- 用于查看指定的端口号的进程情况
- 查看行数
- 查看已开启端口的详细信息
- 清理yum源缓存并重新同步
- scp #跨主机复制文件
- 免密码登录三种方式
- 免登陆配置session密码
- 文件的MD5校验
- 防火墙加端口
- 发邮件
- nfs文件共享服务部署
- Linux开机启动过程
- 常用命令:
- ">
- ls 显示文件
- mkdir 创建目录/文件
- rm 删除目录/文件
- cp 拷贝文件或目录
- cat 显示文件内容(全部),还可用来连接两个或多个文件,形成新的文件。
- head 从头部开始显示文件内容(默认显示10行)
- tail 从尾部开始显示文件内容(默认显示10行)
- more 翻页显示文件内容(只能向下翻页,回车:下一行,空格:下一页)
- less 翻页显示文件内容(带上下翻页)
- grep 文件内容查询
- find 文件查找
- wc 统计文件行数、单词数、字节数
- * 通配符
- which 查看命令完整路径
- whereis 所有包含命令的列表
- clear 清屏(并未删除)
- touch 创建文件
- sort 排序
- tar 打包(未压缩),将多个文件或目录打包在一个文件里
- echo 输出显示信息
- su 切换用户
- 查看时间信息
- shutdown [-h,-r] 关机(-h)、重启(-r)
- vi/vim 文本编辑器
- 常见问题
日常操作
htop 多功能监控系统
#CentOS7下 启用RPMForge存储库
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
#安装htop
yum -y install htop
cat 结合EOF标准输入结束 追加信息
#EOF可以是任意关键字
[root@guanlizhuji ansible]# cat <<EOF >>/etc/hosts
> 192.168.31.163 guanlizhuji
> 192.168.31.9 cunchu
> 192.168.31.124 beifen
> 192.168.31.238 wangzhan
> EOF
查看磁盘io读写能力
dd if=/dev/zero of=/data/bigfile bs=1M count=2048
创建普通用户给予不通的权限
root用户下:
useradd cao
passwd cao
vi /etc/sudoers
找到root ALL=(ALL) ALL在下边加上:
cao ALL=(ALL) ALL
chmod -v u-w /etc/sudoers #将sudoers文件的权限修改成不可编辑
注:如需新用户使用sudo时不用输密码,把最后一个ALL改为NOPASSWD:ALL即可。
vim 块的操作
如果无意中删除错了,可以使用‘u’键恢复(命令模式下)
1.多行注释:
1. 首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式;
2. 在行首使用上下键选择需要注释的多行;
3. 按下键盘(大写)“I”键,进入插入模式;
4. 然后输入注释符(“//”、“#”等);
5. 最后按下“Esc”键。
注:在按下esc键后,会稍等一会才会出现注释,不要着急~~时间很短的
2.删除多行注释:
1. 首先按esc进入命令行模式下,按下Ctrl + v, 进入列模式;
2. 选定要取消注释的多行;
3. 按下“x”或者“d”.
注:如果是“//”注释,那需要执行两次该操作,如果是“#”注释,一次即可
3.多行删除
1.vim 文件名,首先在命令模式下,输入“:set nu”显示行号;
2.通过行号确定你要删除的行;
3.命令输入“:32,65d”,回车键,32-65行就被删除了,很快捷吧
4.显示所有符号
按esc进入命令行模式下,输入:set list
报错排错日志路径
/var/log
看进程情况
ps -ef | more(ps -ef| grep 进程名称)
第二列 就是进程号
杀死进程
kill -9 进程号
rwx(421) 读写执行
web http服务(80端口)
/var/www/html/index.html
ftp vsftpd服务(20数据传输21连接)
/etc/vsftp/vsftpd.conf
dns named服务(53端口)
/etc/resolv.conf
dncp dhcpd服务(68端口)
/etc/dhcpd.conf
执行history历史命令
格式:[!number] [!command] [!!]
number :第几个指令的意思;
command :指令的开头几个字母
! :上一个指令的意思!
[test@linux] #!99 (!和99中间没有空格) #使用命令记录号码执行命令,执行历史清单中的第99条命令
[test@linux] #!! #重复执行上一个命令
[test@linux] #!rpm #执行最后一次以rpm开头的命令(!? ?代表的是字符串,这个String可以随便输,Shell会从最后一条历史命令向前搜索,最先匹配的一条命令将会得到执行。)
用于查看某一端口的占用情况
lsof -i:端口号
用于查看指定的端口号的进程情况
netstat -tunlp |grep 端口号
查看行数
vi编辑文件输入:set nu
查看已开启端口的详细信息
ss -tpln
清理yum源缓存并重新同步
yum clean all && yum makecache
scp #跨主机复制文件
scp root@192.168.120.204:/opt/soft/mongodb /opt/soft/
scp [可选参数] file_source file_target
-1: 强制scp命令使用协议ssh1
-2: 强制scp命令使用协议ssh2
-4: 强制scp命令只使用IPv4寻址
-6: 强制scp命令只使用IPv6寻址
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port:注意是大写的P, port是指定数据传输用到的端口号
-S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
免密码登录三种方式
1、a服务器登录b服务器 使用秘钥连接
执行:ssh-keygen -t rsa
这时.ssh目录下会生成私钥和公钥的键值对id_rsa,id_rsa.pub
[root@a ~]# scp /root/.ssh/id_rsa.pub root@192.168.1.101:/root/.ssh/authorized_keys
[root@b ~]# chmod 600 /root/.ssh/authorized_keys
[root@a ~]# ssh -l root 192.168.1.101
也可以这样:
输入命令:ssh-keygen,一直按回车,直至完成操作
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.100.11
2、a和b互相免密连接
执行:ssh-keygen -t rsa
cd /root/.ssh
mv id_rsa.pub authorized_keys
scp -r /root/.ssh 192.168.100.11:/root
3、windows 服务器产生秘钥 使用xhsell 使用公钥远程连接服务器
使用xshell 生成一对key
公钥复制到linux 服务器上 /root/.ssh/authorized_keys
sed -i "s/PasswordAuthentication yes/PasswordAuthentication no/" /etc/ssh/sshd_config
systemctl restart shhd
免登陆配置session密码
ssh-keygen #创建秘钥,需要所有主机都做
ssh-copy-id 节点主机 #复制节点主机的免密密钥
文件的MD5校验
export LANG=en_US.UTF-8 #修改语言为英语便于校验结果
md5sum /etc/passwd > chkpwd.log #生成校验文件
md5sum -c chkpwd.log #校验
防火墙加端口
iptables
-A:指定链名
-p:指定协议类型
-d:指定目标地址
—dport:指定目标端口(destination port 目的端口)
—sport:指定源端口(source port 源端口)
-j:指定动作类型
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
firewalld
drop(丢弃):
任何接收的网络数据包都被丢弃,没有任何回复。
仅能有发送出去的网络连接。
block(限制):
任何接收的网络连接,都被 IPv4 的 icmp-host-prohibited 信息和 IPv6 的 icmp6-adm-prohibited 信息所拒绝。
public(公共):
该区域是系统默认区域,在公共区域内使用,不能相信网络内的其它计算机不会对您的计算机造成危害,只能接收经过选取的连接。
external(外部):
特别是为路由器启用了伪装功能的外部网。
您不能信任来自网络的其它计算,不能相信它们不会对您的计算机造成危害,只能接收经过选择的连接。
dmz(非军事区):
用于您的非军事区内的电脑,此区域内可公开访问,可以有限地进入您的内部网络,仅仅接收经过选择的连接。
work(工作):
用于工作区。
您可以基本相信网络内的其它电脑不会危害您的电脑。
仅仅接收经过选择的连接。
home(家庭):
用于家庭网络。
您可以基本信任网络内的其它计算机不会危害您的计算机。
仅仅接收经过选择的连接。
internal(内部):
用于内部网络。
您可以基本上信任网络内的其它计算机不会威胁您的计算机。
仅仅接受经过选择的连接。
trusted(信任):
可接受所有的网络连接。
firewall-cmd --permanent --add-service=ssh
firewall-cmd --add-source=172.25.254.60 --zone=trusted
firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.118
发邮件
方式1、使用自带的mail
echo “this is 正文” | mail -s "this is tatle" 3037800336@qq.com
方式2、使用第三方邮件服务器
1、获取126客户端授权码
1)启用pop3功能
2)获取授权码
2、配置linux下的邮件服务器配置文件
vi /etc/mail.rc 在末尾添加
set bsdcompat
set from="sj13271473920@163.com"
set smtp=smtp.163.com
set smtp-auth-user=sj13271473920@163.com
set smtp-auth-password=AYCGRUEFGMOEJFYT
set smtp-auth=login
nfs文件共享服务部署
yum -y install nfs*
mkdir /usr/share/nfsTest
echo "this is nfs test" > /usr/share/nfsTest/daemon.txt
chown nfsnobody /usr/share/nfsTest
vim /etc/exports
/usr/share/nfsTest 172.16.0.0/24(rw,sync,root_squash) #该网段为只允许网段内IP访问
exportfs -r #重新挂载
exportfs -v #显示共享目录
systemctl restart nfs
systemctl enable nfs
firewall-cmd --permanent --add-service=nfs
firewall-cmd --permanent --add-service=rpc-bind
firewall-cmd --permanent --add-service=mountd
firewall-cmd --reload
showmount -e 172.16.0.76 #查询172.16.0.76服务器的nfs共享目录
mkdir /nfsDaemon
mount -t nfs 172.16.0.76:/usr/share/nfsTest /nfsDaemon
Linux开机启动过程
1、加载BIOS(包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等)
2、读取MBR(硬盘上第0磁道第一个扇区)
3、Boot Loader(初始化硬件设备、建立内存空间的映射图)
4、加载内核
5、设定运行等级(init0-init6)
6、执行rc.sysinit
7、启动内核模块
8、执行不同运行级别的脚本
9、执行rc.local
10、执行/bin/login 进入登陆状态
常用命令:
nmtui 图形化修改网络配置
hostnamectl 修改主机名
hostnamectl set-hostname name1
man 命令可选参数查看
man ipaddr
ln -s 建立软链接
ln -s 源地址 目标链接
//查询建立的软连接
ls -il
//删除软连接
rm -rf 链接路径 (注意后边不要有/,否则源文件也删除了)
ls 显示文件
ls [-a] 显示全部文件
ls [-al] 以长列表的方式显示全部文件
ls [-alt] 按时间排序
ls /home/directory 显示某个路径下的文件列表
pwd 显示当前工作目录
cd 切换工作目录(类似dos下用法)
cd .. 返回上一层目录
cd ../other 返回上一层目录并进入其它目录
cd ~ 返回家目录
cd / 返回到根目录
cd - 两个目录之前切换(相当于电视机的”回看”键)
tab 自动补全,如果存在多个相同的目录,可按两下会显示所有相同的目录,再进行选择
mkdir 创建目录/文件
mkdir dirname 在当前目录下创建文件
mkdir /root/test 使用绝对路径创建目录
mkdir -p /root/test1/test2 创建多级目录,同时创建父、子目录(test1、test2都不存在)
rm 删除目录/文件
rm a.txt 删除a.txt文件(需要确认是否删除,输入 y/n)
rm -f a.txt 强制删除a.txt文件(不需要确认是否删除)
rm -r test1/ 删除"test1/"目录(需要确认是否删除,输入 y/n)
rm -rf test1/ 强制删除"test1/"目录(不需要确认是否删除)
cp 拷贝文件或目录
cp source dest
cp a.txt b.txt 把a复制一份并重命名为b(同目录下)
cp /root/vivi/a.txt /root/even/b.txt 把a复制一份并重命名为b(不同目录下)
cp -r source dest 复制整个目录要用-r参数
cp -r test1 test2 把目录test1复制一份并重命名为test2
cp -rv test1 test2 把目录test1复制一份并重命名为test2(显示详细信息)
cat 显示文件内容(全部),还可用来连接两个或多个文件,形成新的文件。
cat doc.txt 显示doc.txt的内容
cat -n doc.txt 显示行号
tac doc.txt 倒序显示文件内容
cat doc.txt|more 分屏显示(按空格显示下一屏,按回车显示下一行)
head 从头部开始显示文件内容(默认显示10行)
head doc.txt 显示文件全部内容
head -n doc.txt 显示前n行
tail 从尾部开始显示文件内容(默认显示10行)
tail doc.txt 显示文件全部内容
tail -n doc.txt 显示后n行
tail -f doc.txt 即时输出文件变化后追加的数据(比如在查日志时就很有用)
ctrl+c 退出tail状态
more 翻页显示文件内容(只能向下翻页,回车:下一行,空格:下一页)
less 翻页显示文件内容(带上下翻页)
grep 文件内容查询
grep a doc.tx 显示doc.txt中包含a的行
grep a doc.tx|wc -l 查找doc.txt中包含a的有多少行
grep -n a doc.tx 带行号的显示doc.txt中包含a的行
grep -v a doc.tx 显示doc.txt中不包含a的行
find 文件查找
find / -name doc.txt 从根目录开始查找名字为doc.txt的文件
find / -type f 从根目录开始查找文件
wc 统计文件行数、单词数、字节数
wc doc.txt 显示文件行数、单词数、字节数
wc -l doc.txt 显示文件行数
* 通配符
ls * 分类显示所有文件
ls *.txt 查看全部txt文件
which 查看命令完整路径
which ls
whereis 所有包含命令的列表
whereis ls 显示所有包含ls命令的路径
clear 清屏(并未删除)
touch 创建文件
touch doc.txt 在当前目录创建doc.txt文件
sort 排序
sort doc.txt 以字母排序
sort -n doc.txt 以数据排序
sort -u doc.txt 去重排序
sort -rn doc.txt 倒序数字排序
tar 打包(未压缩),将多个文件或目录打包在一个文件里
tar [option] 打包后的文件名.tar 要打包的文件或目录
echo 输出显示信息
echo hello world!
su 切换用户
su - root
查看时间信息
date 当前系统时间
hwclock/clock 硬件时间
cal 查看日历
uptime 查看系统运行时间
shutdown [-h,-r] 关机(-h)、重启(-r)
shutdown -h now 立即关机
shutdown -h +10 10分钟后关机
shutdown -h 11:30 11:30关机
shutdown -r now 立即重启
poweroff 立即关机
reboot 立即重启
vi/vim 文本编辑器
一般模式:默认模式,其他模式可通过esc键回到一般模式,可进行选择、复制、粘贴、撤销等操作
i 在光标前插入文本
o 在当前行的下面插入新行
dd 删除行
yy 复制当前行
n+yy 复制n行
p 粘贴
u 撤销上一个操作
r 替换当前字符
/ 查找关键字编辑模式:在一般模式中按 i、o、r ,可编辑文件,按esc可回到一般模式
命令模式:在一般模式中按”:”,可保存修改或退出vi f 关键字 直接跳转到这一行关键字位置 r 关键字 修改当前字符为关键字 ctrl+x 当前数值自减1,前边加上数字那就是减几 ctrl+a 当前数值自增1,前边加上数字那就是加几 :w 保存当前修改
:q 退出
:q! 强制退出,不保存修改
:x 保存并退出,相当于:wq
:set number 显示行号
:!系统命令 执行一个系统命令并显示结果
:sh 切换到命令行,使用ctrl+d切换加vi
常见问题
yum安装软件报错,显示找不到镜像地址—dns解析的问题,处理办法:
vim /etc/resolv.conf
加入:
nameserver 8.8.8.8
nameserver 8.8.4.4
search localdomain
tomcat基于Oracle数据库的报错ORA-01653
报错日志:java.sql.BatchUpdateException: 批处理中出现错误: ORA-01653: 表 DZWL.GSMDATA20211208 无法通过 1024 (在表空间 DZWL2021C 中) 扩展
错误原因:DZWL2021C表空间上限了,无法写入
解决:
查询相应的表对应的数据表空间,再修改相应的表的关联数据表空间
select * from dba_data_files;
alter tablespace DZWL2021C add datafile 'E:\APP\ADMINISTRATOR\ORADATA\DZWL\DZWL2021C_04.DBF' size 2G autoextend on next 100M;
table键转为2个空格
vim /etc/vimrc
vim /etc/virc
cat << EOF >> /etc/vimrc
set tabstop=2 "table转为2个空格
set expandtab "插入table自动替换为空格
set nu "显示行号
set autoindent "每行开头设置缩进
set softtabstop=2 "退回缩进的长度,当使用 expandtab 时特别有用
set shiftwidth=2 "缩进级别为2,与softtabstop 保持一致
EOF
time_wait调优
查看随机端口
cat /proc/sys/net/ipv4/ip_local_port_range
查看open files数量
ulimit -a
timewait调优参数
cat /proc/sys/net/ipv4/tcp_tw_recycle 默认为0,关闭;需要修改为1. 快速回收内网打开对外不要开
cat /proc/sys/net/ipv4/tcp_tw_reuse 默认为0,关闭;需要修改为1. time_wait重用
cat /proc/sys/net/ipv4/tcp_timestamps 默认为1,需要打开.
内核调优
/etc/sysctl.conf sysctl -p
net.ipv4.tcp_syncookies = 1 #表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 #默认为0,关闭;需要修改为1. time_wait重用
net.ipv4.tcp_tw_recycle = 1 #表示开启TCP连接中TIME-WAIT sockets的快速回收 内网打开对外不要开
net.ipv4.tcp_fin_timeout = 30 #修改系统默认的 TIMEOUT 时间
net.ipv4.tcp_keepalive_time = 1200 #keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟。
net.ipv4.ip_local_port_range = 1024 65000 #表示用于向外连接的端口范围。缺省情况下很小:32768到61000,改为1024到65000。
net.ipv4.tcp_max_syn_backlog = 8192 #表示SYN队列的长度,默认为1024,加大队列长度为8192,可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_tw_buckets = 5000 #系统同时保持TIME_WAIT套接字的最大数量,超过将立即清除
#默认为180000,改为5000。对于Apache、Nginx等服务器,上几行的参数可以很好地减少TIME_WAIT套接字数量,但是对于 Squid,效果却不大。此项参数可以控制TIME_WAIT套接字的最大数量,避免Squid服务器被大量的TIME_WAIT套接字拖死。