linux命令

一、服务器上添加用户
--创建用户组
groupadd mysql
--创建用户 -d 指定目录 -m 指定为根目录 -g 指定用户组
useradd  -d /export/home/mysql -m mysql -g mysql
--创建密码
passwd mysql
mysql123
二、crontab定时任务
date -d参数使用
a=`date -d tomorrow +\%e` 
date -d next-day +%Y%m%d  #获取明天的日期
date -d last-day +%Y%m%d  #获取昨天的日期
date -d last-month +%Y%m  #获取上个月的年和月
date -d next-month +%Y%m  #获取下个月的年和月
date -d next-year +%Y  #获取明年的年份
“*”代表取值范围内的数字,
“/”代表”每”,
“-”代表从某个数字到某个数字,
“,”分开几个离散的数字
三、查看当前登录用户
whoami
last/lastlog
id
四、测试端口的连通性
telnet
ssh -v -p port username@ip
curl ip:port
weget ip:port
五、复制命令
scp -rp /export/home/laity/laity.tar.gz laity@127.0.0.1:/export/home/laity/   #可复制目录
七、查看进程启动时间
ps -o lstart -p PID     根据PID来查询
ps -o lstart,etime -p PID   #根据PID来查询,打印出启动时间和已经运行的时间
ps -eO lstart | grep PROCESS    #根据进程名字查询
八、软链接
8.1 创建软链接
ln -s  真实地址  快捷键
ln -s /export/home/oracle/app/oracle/lib/libclntsh.so.11.1 libclntsh.so
ln -s /export/home/oracle/app/oracle/lib/libclntsh.so libclntsh.so.10.1

8.2 修改软链接

ln -snf /export/home/oracle/laity/app/oracle/lib/libclntsh.so libclntsh.so.10.1
九、查看用户操作时间
HISTTIMEFORMAT="%Y/%m/%d/%H-%M-%S #>"
十、linux服务器上添加微软雅黑字体
1、安装插件
yum install -y fontconfig mkfontscale
2、上传字体文件msyh.ttf到/usr/share/fonts/zh_CN   --windows下就可以,该msyh.ttf字体在windows和linux通用
3、执行安装
cd /usr/share/fonts/zh_CN
mkfontscale
mkfontdir
4、刷新缓存
fc-cache
5、查看系统全部字体
fc-list
查看已安装的中文字体
fc-list :lang=zh
6、刷新字体缓存
fc-cache -fv
十一、sftp上传和下载
下载:get /var/www/fuyatao/index.php  /home/fuyatao/
上传:put /home/fuyatao/downloads/Linuxgl.pdf /var/www/fuyatao/
十二、linux下oracle环境变量配置
export ORACLE_BASE=/data/app/oracle; 
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1; 
export ORACLE_SID=orcl; 
export PATH=$ORACLE_HOME/bin:$PATH;
十三、备份
echo "  tar ... "
cd /export/home/laity
mkdir bak
find /export/home/laity/aaa  -name "*.*" | xargs -i mv {} /export/home/laity/bak
tar -czvf  MID_$(date -d "today" +"%Y%m%d").tar.gz bak
unalias rm
rm -rf bak
echo "end........"
十四、linux服务器下sqlplus的设置
set echo on;   #显示当前在正在执行的语句;
set echo off;  #控制start命令不列出命令文件中的每一命令
set feedback off; #显示由查询返回的记录数 off等价为0
set heading off; #报表中列标题不打印
set pagesize off; #置 从顶部标题至页结束之间的行数
set linesize off; #置一行中显示的字符总数
set termout off; #由文件执行命令时不显示输出
set trimout on; #每一显示行的末端去掉空格
set trimspool on; #去掉spool输出时每行末端空格

set colsep'|';    //-域输出分隔符
set echo off;    //显示start启动的脚本中的每个sql命令,缺省为on
set echo on             //设置运行命令是是否显示语句
set feedback on;       //设置显示“已选择XX行”
set feedback off;     //回显本次sql命令处理的记录条数,缺省为on
set heading off;   //输出域标题,缺省为on
set pagesize 0;      //输出每页行数,缺省为24,为了避免分页,可设定为0。
set linesize 80;     //输出一行字符个数,缺省为80
set numwidth 12;     //输出number类型域长度,缺省为10
set termout off;     //显示脚本中的命令的执行结果,缺省为on
set trimout on;      //去除标准输出每行的拖尾空格,缺省为off
set trimspool on;    //去除重定向(spool)输出每行的拖尾空格,缺省为off
set serveroutput on; //设置允许显示输出类似dbms_output
set timing on;           //设置显示“已用时间:XXXX”
set autotrace on;      //设置允许对执行的sql进行分析
set verify off         //可以关闭和打开提示确认信息old 1和new 1的显示
十五、端口修改
vi /etc/ssh /sshd_config
端口修改完毕后,重启ssh
service sshd restart
修改端口前需要关闭防火墙
防火墙查看:service iptables status    systemctl status firewalld
防火墙关闭:service iptables stop       systemctl stop firewalld
防火墙开启:service iptables start      systemctl start firewalld
十六、命令详解
16.1 rpm详解
一、简介
RPM是RedHat Package Manager(RedHat软件包管理工具)类似Windows里面的“添加/删除程序”。

二、rpm作用
1、可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;
2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;
3、可以在查询系统中的软件包是否安装以及其版本;
4、作为开发者可以把自己的程序打包为RPM 包发布;
5、软件包签名GPG和MD5的导入、验证和签名发布;
6、依赖性的检查,查看是否有软件包由于不兼容而扰乱了系统;

三、使用rpm需要的权限
RPM软件的安装、删除、更新只有root权限才能使用;对于查询功能任何用户都可以操作;如果普通用户拥有安装目录的权限,也可以进行安装;

四、参数
-a 查询验证所有包
-q 查询包
-i 安装软件包
-e 卸载软件包
-U 更新包
-v 详细输出
-h 安装包时哈希打印哈希标记(适用于-v)
-replacepkge  无论软件包是否已被安装,都强行安装软件包
-test  安装测试,并不实际安装
-nodeps  忽略软件包的依赖关系强行安装
-force   忽略软件包及文件的冲突

五、查询
1、查询已经安装的软件
rpm -qa |grep 软件名
2、安装一个新的软件包
rpm -ivh file.rpm
3、更新一个软件包
rpm -Uvh file.rpm
4、删除一个软件包
rpm -e file.rpm
16.2 iptables 网络隔离
隔离:iptables -A INPUT -s 192.168.1.1 -j DROP
解隔离:iptables -D INPUT -s 192.168.1.2 -j DROP

常用命令:
-A 追加规则-->iptables -A INPUT
-D 删除规则-->iptables -D INPUT 1(编号)
-R 修改规则-->iptables -R INPUT 1 -s 192.168.12.0 -j DROP 取代现行规则,顺序不变(1是位置)
-I 插入规则-->iptables -I INPUT 1 --dport 80 -j ACCEPT 插入一条规则,原本位置上的规则将会往后移动一个顺位
-L 查看规则-->iptables -L INPUT 列出规则链中的所有规则
-N 新的规则-->iptables -N allowed 定义新的规则

通用参数:
-p 协议  例:iptables -A INPUT -p tcp
-s源地址 例:iptables -A INPUT -s 192.168.1.1
-d目的地址 例:iptables -A INPUT -d 192.168.12.1
-sport源端口 例:iptables -A INPUT -p tcp --sport 22
-dport目的端口 例:iptables -A INPUT -p tcp --dport 22
-i指定入口网卡 例:iptables -A INPUT -i eth0
-o指定出口网卡 例:iptables -A FORWARD -o eth0
-j 指定要进行的处理动作

常用的ACTION:
DROP:丢弃
REJECT:明示拒绝
ACCEPT:接受
SNAT基于原地址的转换
source--指定原地址
16.3 netstat命令详解
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State 
一个是Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。

Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。

-a (all)显示所有选项,默认不显示LISTEN相关
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。
-l 仅列出有在 Listen (监听) 的服務状态
-p 显示建立相关链接的程序名
-r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

提示:LISTEN和LISTENING的状态只有用-a或者-l才能看到

#查看未被占用的端口
netstat -nultp
#查看端口的使用情况
netstat -antp |grep 3306
16.5 压缩命令(gzip和unzip)
gzip ./*   --压缩文件
gzip -l ./*   --查看文件
gzip -dv ./*  --解压文件
unzip test.zip              ->将test.zip解压到当前文件下
unzip -n test.zip -d /tmp   ->将test.zip解压到/tmp目录下,并且不要覆盖已有文件
unzip -v test.zip           ->查看test.zip内容,但不解压
unzip -o test.zip -d tmp/   ->将test.zip解压到/tmp目录下,并且覆盖已有文件
16.6 more命令
= 输出当前行的行号
:f 输出文件名和当前行的行号
+n 从多少行开始
16.7 vi命令
yy:复制光标所在行
p:复制单行到您想粘贴之处。(指令‘yy’与‘p’必须搭配使用)
按 G  --移动到文章的最后一行行首
按gg  --移动到文章的第一行行首
按^   --移动到光标所在的行首
按 $  --移到光标所在行的行尾
:set nu --显示当前行号
/pattern:从光标开始处向文件尾搜索pattern
?pattern:从光标开始处向文件首搜索pattern
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
l 右
h 左
k 上
j 下
编辑模式下保存::x  ZZ  :wq!
16.9 uname命令
uname -a:显示系统名、节点名称、操作系统的发行版号、内核版本等等。

image

系统名:
Linux
节点名称:
qyw
操作系统的发行版号:
3.10.0-957.21.3.el7.x86_64
命名规则:
	   主版本号:3
	   次版本号:10【奇数为开发版本,偶数为稳定版本】
	   修订版本号:0【修改的次数】
	   此次版本的第N次修改:957
	   el7:redhat enterprise linux 7
	   x86_64:编译框架(64位)
内核版本:
#1 SMP Tue Jun 18 16:35:19 UTC 2019
硬件平台:
x86_64
机器硬件名:
x86_64
系统处理器的体系结构:
x86_64
操作系统:
GNU/Linux
16.11 date命令
修改服务器时间:
date -s 完整日期时间(YYYY-MM-DD hh:mm[:ss]):修改日期、时间
date -s "2023-03-23 20:42:00"
查看硬件时间:
hwclock --show
修改硬件时间:
hwclock --set --date="03/23/2023 20:58:40"
设置系统时间和硬件时间同步:
hwclock --hctosys
保存时间:
clock -w
十七、月底最后一天执行脚本方法
17.1 直接使用crontab
59 23 28-31 * * [ `date -d tomorrow +\%e` -eq 1 ] && sh /export/home/laity/user_bak.sh >> /export/home/laity/user_bak.log
#亲测不是特别准确,有时好使有时不好使,使用时需多观察
59 23 28-31 * * [ "$(date -d tomorrow +\%e) == "01" ] && sh /export/home/laity/user_bak.sh >> /export/home/laity/user_bak.log
17.2 脚本和定时任务
1)vim user_bak.sh
#!/bin/bash
today=`date +%d`
last_day=`cal | xargs | awk '{print $NF}'`
if [ "$today" = "$last_day" ];then     #具体情况具体分析
 
echo 'dede' >> /tmp/test.txt    #要执行的脚本

fi

2)crontab -e
59 23 28-31 * * sh /export/home/laity/user_bak.sh >> /export/home/laity/user_bak.log
posted @ 2022-04-06 15:09  laity_guan  阅读(100)  评论(0编辑  收藏  举报