- 日常操作
- 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.rpmrpm -ivh epel-release-latest-7.noarch.rpm#安装htopyum -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 caopasswd caovi /etc/sudoers找到root ALL=(ALL) ALL在下边加上:cao ALL=(ALL) ALLchmod -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.112、a和b互相免密连接执行:ssh-keygen -t rsacd /root/.sshmv id_rsa.pub authorized_keysscp -r /root/.ssh 192.168.100.11:/root3、windows 服务器产生秘钥 使用xhsell 使用公钥远程连接服务器使用xshell 生成一对key公钥复制到linux 服务器上 /root/.ssh/authorized_keyssed -i "s/PasswordAuthentication yes/PasswordAuthentication no/" /etc/ssh/sshd_configsystemctl 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 ACCEPTiptables -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=sshfirewall-cmd --add-source=172.25.254.60 --zone=trustedfirewall-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 bsdcompatset from="sj13271473920@163.com"set smtp=smtp.163.comset smtp-auth-user=sj13271473920@163.comset smtp-auth-password=AYCGRUEFGMOEJFYTset smtp-auth=login
nfs文件共享服务部署
yum -y install nfs*mkdir /usr/share/nfsTestecho "this is nfs test" > /usr/share/nfsTest/daemon.txtchown nfsnobody /usr/share/nfsTestvim /etc/exports/usr/share/nfsTest 172.16.0.0/24(rw,sync,root_squash) #该网段为只允许网段内IP访问exportfs -r #重新挂载exportfs -v #显示共享目录systemctl restart nfssystemctl enable nfsfirewall-cmd --permanent --add-service=nfsfirewall-cmd --permanent --add-service=rpc-bindfirewall-cmd --permanent --add-service=mountdfirewall-cmd --reloadshowmount -e 172.16.0.76 #查询172.16.0.76服务器的nfs共享目录mkdir /nfsDaemonmount -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.sysinit7、启动内核模块8、执行不同运行级别的脚本9、执行rc.local10、执行/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 destcp 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复制一份并重命名为test2cp -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.8nameserver 8.8.4.4search 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/vimrcvim /etc/virccat << EOF >> /etc/vimrcset 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 -pnet.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套接字拖死。
