以下操作都是在BC linux的操作, 属于Redhat, centOS系列, 其他linux版本不一定都能适用。
查看版本 #
查看cpu
cat /proc/cpuinfo
查看linux的版本
发行版本
cat /etc/issue
\S
Kernel \r on an \m
内核版本
cat /proc/version
Linux version 4.19.90-2107.6.0.0192.8.oe1.bclinux.x86_64 (mockbuild@compute1) (gcc version 7.3.0 (GCC)) #1 SMP Fri Mar 24 10:04:47 CST 2023
发行版
lsb_release –a
-bash: lsb_release:未找到命令
如果没有lsb_release
可以看
cat /etc/redhat-release
BigCloud Enterprise Linux For Euler release 21.10 (LTS-SP2)
用户管理 #
创建新用户admin,并建立一个初始目录 /home/admin
useradd -m admin
查看添加情况
less /etc/passwd
#其中会新增一行
admin:x:1001:1001::/home/admin:/bin/bash
设置一个密码
passwd admin
修改用户所属的用户组
#查看用户
id iop_dq
#查看用户主配置
cat /etc/passwd | grep iop_dq
#修改用户iop_dq 的用户组为 superuser
usermod -g superuser iop_dq
更改密码 passwd #
修改当前用户密码
passwd 用户名
查看当期路径下所有目录的大小du #
du -h --max-depth=1
说明:
-h : –human-readable
查看进程 ps #
看java的进程号
ps -ef|grep java
查看tomcat的进程号
ps –ef | grep tomcat
查看 用户test1的进程
ps -u test1
查看所有用户的所有进程
ps -aux
查看端口netstat #
当前java进程使用的端口
netstat -nap | grep java
或者
netstat -nlp | grep :81
netstat -tunlp | grep 12001
说明:
-t: TCP
-u: UDP
-n: no alias
-l: listen状态
-p: program 名, 需要root权限
查看端口使用情况 #
查看哪个进程使用了80端口
sudo ss -lptn 'sport = :80'
或者
sudo lsof -n -i :80 | grep LISTEN
查找命令find #
在当前用户的home目录下查找名称为”.txt”的文件
find ~ -name "*.txt"
找到超过30天的文件,然后删除
find . -mtime +30 -delete
执行命令的方式
找到 超过 29天的文件, 然后 执行 ls 命令
find . -mtime +29 -exec ls -l {} \;
参数说明
-exec: find命令的 选项, 默认是 -print(将找到的结果打印出来), 使用-exec 表示 找到结果后 执行某个命令
ls -l: 执行命令的名称 和 该命令的选项
{} : 找到结果的占位标识,即执行命令时 使用找到的结果替代进来
\; : 执行命令的分割标识,这个表示find命令在找到结果后,将结果传递给后续命令时,采用何种分割方式 有两种 , 一个是 ;, 一个是 +
; 表示 找到一个 传一个
\+ 表示 找到所有结果后 一起传
由于;都在shell命令中有特别意义,所以需要 一个转义标识 \, 告诉shell不要解释
查看日志文件 #
tail #
查看tomcat的日志
cd path/to/tomcat/logs
#适用滚动模式, 自动刷新日志
tail -f catalina.out
带行数
#展示倒数1000行后, 然后进入滚动模式
tail -1000f catalina.out
less #
less catalina.out
移动
d : forward 下一页
u : backword 上一页
r : repaint
查找
/pattern 向后找
?pattern 向前找
n 重复上一次
N 重复上一次查找,但是反方向
跳转
g 文件第一行
G 文件最后一行
权限修改chmod #
增加~/x.log的读取权限
chmod +r ~/x.log
编辑器VI #
查找替换->全局查找替换 2023 为 2024: :%s/2023/2024/g
周期执行crontab #
crontab --help
usage: crontab [-u user] file
crontab [-u user] [ -e | -l | -r ]
(default operation is replace, per 1003.2)
-e (edit user's crontab)
-l (list user's crontab)
-r (delete user's crontab)
-i (prompt before deleting user's crontab)
-s (selinux context)
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
查看当前的周期任务
crontab -l
删除该周期任务(当前用户的)
crontab -r
修改当前用户的周期任务
crontab –e
示例:
[dev@core_ifapp01 zjh-18]$ crontab -l
0 1 * * * /work/logs/job-proxy/resume/rm_resume_one_day_ago.sh >> /work/logs/job-proxy/resume/resume.log 2>&1
3-58/5 * * * * /work/euop/shell/changemod.sh > /dev/null 2>&1
#3,33 * 17 5 * /work/euop/0517/0517.sh >> /work/euop/0517/0517.log 2>&1
0 8,20 * * * /home/dev/reduce.sh
0 10 * * * /var/log/checklog/checklog.sh >> /var/log/checklog/error.log 2>&1
[dev@core_ifapp01 zjh-18]$
[dev@core_ifapp01 zjh-18]$
[dev@core_ifapp01 zjh-18]$ crontab -e
crontab: installing new crontab
[dev@core_ifapp01 zjh-18]$ crontab -l
0 1 * * * /work/logs/job-proxy/resume/rm_resume_one_day_ago.sh >> /work/logs/job-proxy/resume/resume.log 2>&1
3-58/5 * * * * /work/euop/shell/changemod.sh > /dev/null 2>&1
#3,33 * 17 5 * /work/euop/0517/0517.sh >> /work/euop/0517/0517.log 2>&1
0 8,20 * * * /home/dev/reduce.sh
0 10 * * * /var/log/checklog/checklog.sh >> /var/log/checklog/error.log 2>&1
#修改18权限
11 0 * * * chmod 644 /work/euop/logs/*.log 2>&1
每天11点11分,修改183 日志权限
11 11 * * * chmod 644 /work/euop/logs/*.log 2>&1
crontab -e
## app 每天0点11分,修改99.132的app日志权限
11 0 * * * chmod 644 /appdata/euopmanagement-app/work/euop/logs/*.log 2>&1
## api每 天0点11分,修改99.132 api日志权限
11 0 * * * chmod 644 /appdata/euopmanagement-api/work/euop/logs/*.log 2>&1
使用文件方式增加定时任务示例:
admin登录,在/home/admin 下新建一个admincron 文件,内容如下
#每天7点7分 修改161上日志文件的权限
7 7 * * * chmod 644 /home/dev/euop_logs/*.log >> /home/dev/zjh/log_chmod644.log 2>&1
将该文件加入cron(即使能周期任务)
crontab admincron
使用周期任务示例
crontab -l
*/1* ** * /etc/rsync/rsync-mcms.sh >> /etc/rsync/rsync-mcms.log 2>&1
创建软链接ln #
ls -s 目标名 软链接名
create a soft link for previewed images
ln -s ${the_pomp_home}/uploadBaseDir ${the_app_home}/webapps/pomp/uploadBaseDir
create a soft link for old previewed images
ln -s ${the_pomp_home}/img_template/template ${the_app_home}/webapps/pomp/img/template
cd ${the_build_home}
echo have created a soft link for previewed images successfully
删除软连接
rm -rf symbolic_name
**** 注意不是rm -rf symbolic_name/
实际应用:
2018-3-16解决208上/home空间过小,放不下pomp的应用数据问题,将pomp搬到/opt目录下
在当前路径下创建一个同名的指向目标目录(/opt/pomp)的短链接(pomp)
ln -s /opt/pomp
防火墙 #
/etc/sysconfig
关闭所有防火墙
sudo iptables -F
查看防火墙状态
sudo iptables –list
网络应用 #
wget #
wget http://path/to/some/web/location/index.html
该命令可以直接获取该网页,并保存到本地,在验证SSO测试服务器联通性时,使用该命令可以明确的看到网络是通的,但是http请求被上网监控转向
telent #
telnet ip port
比如
telnet 218.206.191.179 80
ping #
ping http://www.bing.com
ping通并不代表网络协议数据可用,只能单纯看网络是否联通
curl #
curl是非常强大的网页测试工具,可以直接显示出当前网址的内容
#查看curl 基本信息
curl --version
#查看帮助信息
curl --help
## euop
# 使用euop提供的接口模拟一级iop推送精准活动
# 活动文件: activity-file.txt
curl -i http://10.14.15.18/pomp/services/G2EActUpService?wsdl -H "Content-Type: text/xml" --data-binary "@activity-file.txt"
# 连续curl 20次,并记录时间
for i in {1..20};do time curl http://10.255.98.8:8076/pc/recommandService/tagquery/01705161003/017051616457/18351305080;done
for i in {1..20};do echo `curl http://192.168.1.181:8080/euop-proxy/iopproxy/downloadMaterials.do`;done
for i in {1..20};do echo `curl http://10.14.15.18/pomp/iopproxy/downloadMaterials.do`;done
#在18上,手动更新30003文件
curl -k "sftp://127.0.0.1:22/data/common/bidata/20210603/day/" --user "superuser" -T "/home/zhjh/bidata/20210603-r/a_10000_20210603_IOP-F30003_01_001.dat" --ftp-create-dirs
#上传多个文件的写法
curl -k "sftp://127.0.0.1:22/data/common/bidata/20220327/day/" --user "superuser" -T "{/home/zhjh/bidata/20220327-r/day/a_10000_20220327_IOP-F30003_01_001.dat,/home/zhjh/bidata/20220327-r/day/a_10000_20220327_IOP-F30003_01.verf}" --ftp-create-dirs
#参考: https://curl.se/docs/manpage.html#-T
#在18上 , 手动模拟2230重庆省iop活动
curl -k "sftp://127.0.0.1:22/data/2230/activity/20211126/day/" --user "iopcq2230" -T "/home/zhjh/2230-simactivity/20211126/a_2230_20211126_IOP-F20001_2230112601_00_001.dat" --ftp-create-dirs
#在郑州高新区api上手动取 一级iop的素材文件 10.255.98.216:3021
#判断是否能连接sftp iopdqIOPDQ1234!@#$iopdq
curl -k "sftp://10.255.98.216:3021/" --user "iop_dq" -v
curl -k "sftp://10.255.98.216:3021/interface01/iop/picture/" --user "iop_dq" -v
#从18 连郑州高新区sftp 入口 StAPp_Pomp_2018#euoP
curl -k "sftp://file-euop-portal.10086.cn:8022/" --user "stapp" -v
Enter host password for user 'stapp':
* About to connect() to file-euop-portal.10086.cn port 8022 (#0)
* Trying 10.250.63.228... connected
* Connected to file-euop-portal.10086.cn (10.250.63.228) port 8022 (#0)
* Failure establishing ssh session
* Closing connection #0
curl: (2) Failure establishing ssh session
#下载文件 <campaignId>20230403778520</campaignId> 20230403778520_3c0a5997-1e63-48af-88a0-3e4374e7a2e2.png
curl -k "sftp://10.255.98.216:3021/interface01/iop/picture/20230403778520/20230403778520_3c0a5997-1e63-48af-88a0-3e4374e7a2e2.png" -o "./20230403778520/20230403778520_3c0a5997-1e63-48af-88a0-3e4374e7a2e2.png" --user "iop_dq" --ftp-create-dirs
#一级iop换目录了 /interface01/iop_dq/picture
curl -k "sftp://10.255.98.216:3021/interface01/iop_dq/picture/20230403778520/20230403778520_3c0a5997-1e63-48af-88a0-3e4374e7a2e2.png" -o "./20230403778520/20230403778520_3c0a5997-1e63-48af-88a0-3e4374e7a2e2.png" --user "iop_dq" --ftp-create-dirs
sftp #
sftp -o Port=18022 [email protected]
sftp -o Port=3021 [email protected]
OKfmyA1!qaz 密码
直接使用sftp来测试ftp服务器是否可以联通
nc/ncat #
判断网络是否通
ncat ip port
FTP服务器 #
sftp #
链接远端服务器
sftp [email protected]
bash-4.1$ sftp
usage: sftp [-1Cv] [-B buffer_size] [-b batchfile] [-F ssh_config]
[-o ssh_option] [-P sftp_server_path] [-R num_requests]
[-S program] [-s subsystem | sftp_server] host
sftp [user@]host[:file …]
sftp [user@]host[:dir[/]]
sftp -b batchfile [user@]host
带不同的端口
sftp -oPort=22 [email protected]
常见命令 #
bye Quit sftp
cd path Change remote directory to ‘path’
chgrp grp path Change group of file ‘path’ to ‘grp’
chmod mode path Change permissions of file ‘path’ to ‘mode’
chown own path Change owner of file ‘path’ to ‘own’
df [-hi] [path] Display statistics for current directory or
filesystem containing ‘path’
exit Quit sftp
get [-P] remote-path [local-path] Download file
help Display this help text
lcd path Change local directory to ‘path’
lls [ls-options [path]] Display local directory listing
lmkdir path Create local directory
ln oldpath newpath Symlink remote file
lpwd Print local working directory
ls [-1aflnrSt] [path] Display remote directory listing
lumask umask Set local umask to ‘umask’
mkdir path Create remote directory
progress Toggle display of progress meter
put [-P] local-path [remote-path] Upload file
pwd Display remote working directory
quit Quit sftp
rename oldpath newpath Rename remote file
rm path Delete remote file
rmdir path Remove remote directory
symlink oldpath newpath Symlink remote file
version Show SFTP version
!command Execute ‘command’ in local shell
! Escape to local shell
? Synonym for help
配置一个ftp服务器(redhad/bc linux) #
https://guide.freecodecamp.org/linux/install-and-configure-ftp-server-in-linux-redhat/
Install and configure FTP server in Redhat/Centos Linux
FTP stands for File Transfer Protocol. It was written by Abhay Bhushan and published as RFC 114 on 16 April 1971. It is supported by all operating system and browsers. It is built on a client-server architecture.
Install and configure FTP server in Redhat/Centos Linux
Step 1: We will use localhost for our machine to setup ftp server.
Step 2: Install vsftpd (very secure FTP daemon) package.
yum install -y vsftpd
Step 3: Start FTP Server when system on.
systemctl enable vsftpd.service
Step 4: Checking the status of ftp server
systemctl status vsftpd.service
Step 5: Configure vsftpd package. We will edit
/etc/vsftpd/vsftpd.conf
Change the line which contain anonymous_enable=NO to anonymous_enable=YES
This will give permit any one to access FTP server with authentication.
Change the following to YES
local_enable=YES
write_enable=YES
Step 6: Start FTP Server
systemctl start vsftpd.service
Step 7: Install FTP Client
yum install -y lftpd
Step 8: Connect ftp to localhost
lftp localhost
启用ftp的21端口 #
sudo vsftpd /etc/vsftpd/vsftpd.conf &
如果sftp能连,ftp不能连
1、 iptables –list , 确认防火墙是否关闭
2、 service vsftpd status , 确认ftp服务是否正常
不正常
[root@wap-tomcat02 vsftpd]# service vsftpd status
Redirecting to /bin/systemctl status vsftpd.service
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
需要重启
service vsftpd restart
再次看状态,正常了
[root@wap-tomcat02 vsftpd]# service vsftpd status
Redirecting to /bin/systemctl status vsftpd.service
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: active (running) since 四 2018-09-13 16:56:37 CST; 4s ago
Process: 19922 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
Main PID: 19923 (vsftpd)
CGroup: /system.slice/vsftpd.service
└─19923 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
9月 13 16:56:37 wap-tomcat02 systemd[1]: Starting Vsftpd ftp daemon…
9月 13 16:56:37 wap-tomcat02 systemd[1]: Started Vsftpd ftp daemon.
添加一个新用户 #
比如账号:mgvideo
Root账号登录
直接编辑群文件
vi /etc/group
mgvideo:x:531:superuser
然后,再编辑密码文件
vi /etc/passwd
mgvideo:x:531:531::/home/common/3001001:/sbin/nologin
然后再设置下密码
passwd mgvideo
使用脚本改权限lftp #
lftp -u iopha2371,iopha2371Pomp_2018#EuoP sftp://10.14.15.18:22 <<EOF
chmod -R 775 /data/2371/activity/$(date +%Y%m%d)
bye
EOF
ftp #
连接ftp
ftp 127.0.0.1
name:
password:
ftp 127.0.0.1
Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 3.0.3)
Name (127.0.0.1:root): iopsh2210
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/" is the current directory
ftp> ls
227 Entering Passive Mode (127,0,0,1,255,253).
150 Here comes the directory listing.
drwxr-xr-x 3 537 538 4096 May 13 2019 20190513
-rw-r--r-- 1 537 538 39 May 13 2019 20190513164900.txt
drwxrwx--- 40 537 512 4096 Sep 30 04:26 activity
drwxrwx--- 899 537 512 20480 Feb 01 20:53 data
drwxr-xr-x 2 537 538 4096 May 13 2019 day
drwxr-xr-x 3 537 538 4096 Aug 13 11:14 home
drwxrwx--- 46 537 512 4096 Sep 30 06:49 picture
drwxr-xr-x 7 512 512 4096 Sep 17 15:57 report
drwxr-xr-x 4 537 538 4096 May 13 2019 sms
drwxr-xr-x 2 537 538 4096 May 13 2019 sms\20190513\day
226 Directory send OK.
ftp> pwd
257 "/" is the current directory
ftp>
使用不同端口连接
ftp
ftp> open 117.136.129.219 10090
Connected to 117.136.129.219 (117.136.129.219).
220 (vsFTPd 2.2.2)
Name (117.136.129.219:zhjh): cxftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
文件同步rsync #
源地址:使用周期任务来执行同步脚本 #
rsync配置目录: 192.168.1.210
周期任务root的
[admin@test-pomp-apache01 cron]$ sudo less root
*/2 * * * * /etc/rsync/rsync_labs.sh 2>1&
*/2 * * * * /etc/rsync/rsync_wap.sh 2>1&
[admin@test-pomp-apache01 cron]$ pwd
/var/spool/cron
目标地址:rsync以后台服务的方式执行,保持监听状态 #
配置目录:192.168.1.171
/etc/rsync
查看rsync是否运营:ps -ef | grep rsync
杀掉已经运行的rsync: sudo kill [PID]
修改配置文件:/etc/rsync/rsync.conf
启动后台服务
rsync –daemon –config=/etc/rsync/rsync.conf
使用 rsync 示例
less /etc/rsync/rsync-mcms.sh
!/bin/bash
src1=/work/www/
src2=/work/wap/
src3=/work/wwwhd/new10086/
des1=www
des2=wap
des3=wwwhd
host1=192.168.1.138
host2=192.168.1.65
user=root
/usr/bin/rsync -vzrtlug --progress $src1 $user@$host1::$des1 --password-file=/etc/rsync/www.passwd
/usr/bin/rsync -vzrtlug --progress $src2 $user@$host2::$des2 --password-file=/etc/rsync/wap.passwd
/usr/bin/rsync -vzrtlug --progress $src3 $user@$host1::$des3 --password-file=/etc/rsync/www.passwd
目标地址:192.168.1.138
监听服务
[root@portal-labs-138 rsync]# ps -ef | grep rsync
root 6841 1 0 Jan24 ? 00:00:00 rsync --daemon --config=/etc/rsync/rsync.conf
[root@portal-labs-138 rsync]# less /etc/rsync/rsync.conf
uid = 0
gid = 0
port = 873
use chroot = no
strict modes = false
log file = rsyncd.log
hosts allow = *
hosts deny = *
[www]
path = /portal/cm_platform_4
ignore errors = yes
read only = no
write only = no
hosts allow = 192.168.1.117
list = yes
uid = root
gid = root
auth users = root
secrets file = /etc/rsync/www.passwd
[wwwhd]
path = /portal/cm_platform_5
ignore errors = yes
read only = no
write only = no
hosts allow = 192.168.1.117
list = yes
uid = root
gid = root
auth users = root
secrets file = /etc/rsync/www.passwd
挂载mount #
将远地目录192.168.1.116:/work/MCMSrec/tomcat6/webapps/mcms/samples/new10086 挂载到 /home/view/preview
mount -t nfs -o rw 192.168.1.116:/work/MCMSrec/tomcat6/webapps/mcms/samples/new10086 /home/view/preview
压缩 tar #
cd /data
tar –cvf filename.tar foldername
文件传输 sz/rz #
需要额外安装
下载文件到本地 sz filename
上传文件 rz
Yum安装 #
配置repo的路径/etc/yum.repos.d
新增一个sj.repo
内容如下
[sj.repo]
name=sj.repo
baseurl=http://ftp.sjtu.edu.cn/centos/7/os/x86_64/
enabled=1
gpgcheck=0
查看repo的状态 yum repolist all
[root@wap-tomcat02 yum.repos.d]# yum repolist all
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
源标识 源名称 状态
local.repo local.repo 禁用
sj.repo sj.repo 启用: 9,911
repolist: 9,911
[root@wap-tomcat02 yum.repos.d]#
这样就可以通过这个sj.repo安装东西了
比如安装gcc 和g++
yum intall gcc gcc-c++
yum 安装提示非RHN(未完) #
yum update
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Setting up Update Process
No Packages marked for Update
cd /etc/yum.repos.d/
删除yum
rpm -qa | grep yum
yum-updatesd-0.9-2.el5
yum-metadata-parser-1.1.2-3.el5
yum-rhn-plugin-0.5.4-13.el5
yum-3.2.22-20.el5
yum-security-1.1.16-13.el5
查找当前yum
rpm -qa | grep yum | xargs rpm -e --nodeps
[root@tst-mcms-tomcat3 yum.repos.d]# rpm -qa | grep yum
centos5 历史版本仓库: https://vault.centos.org/5.11/os/i386/CentOS/
yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm yum-metadata-parser-1.1.2-4.el5.i386.rpm yum-3.2.22-40.el5.centos.noarch.rpm
同时安装多个rpm包, 避免出现循环依赖
rpm -ivh ./yum-3.2.22-40.el5.centos.noarch.rpm ./yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm ./yum-metadata-parser-1.1.2-4.el5.i386.rpm
[root@tst-mcms-tomcat3 yum-install]# ll
总计 1068
-rw-r--r-- 1 root root 1034960 03-21 14:49 yum-3.2.22-40.el5.centos.noarch.rpm
-rw-r--r-- 1 root root 21033 03-21 14:49 yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm
-rw-r--r-- 1 root root 26164 03-21 14:49 yum-metadata-parser-1.1.2-4.el5.i386.rpm
[root@tst-mcms-tomcat3 yum-install]# rpm -ivh ./yum-3.2.22-40.el5.centos.noarch.rpm ./yum-fastestmirror-1.1.16-21.el5.centos.noarch.rpm ./yum-metadata-parser-1.1.2-4.el5.i386.rpm
warning: ./yum-3.2.22-40.el5.centos.noarch.rpm: Header V3 DSA signature: NOKEY, key ID e8562897
Preparing... ########################################### [100%]
1:yum-metadata-parser ########################################### [ 33%]
2:yum-fastestmirror ########################################### [ 67%]
3:yum ########################################### [100%]
[root@tst-mcms-tomcat3 yum-install]#
[root@tst-mcms-tomcat3 yum.repos.d]# rpm -qa | grep yum
yum-fastestmirror-1.1.16-21.el5.centos
yum-metadata-parser-1.1.2-4.el5
yum-3.2.22-40.el5.centos
然后更新 (未完)
升级老版的linux很浪费时间, 不如重做一个新版的linux
远程拷贝scp #
scp 源 目标
scp /home/daisy/full.tar.gz [email protected]:/home/root
设置别名 #
alias ll='ls -l'
针对监控要求禁止使用rm,可以将rm命令设置别名,加到所有关键账号的配置文件中,这样就可以避免误操作了
比如zhjh,修改
vi ~/.bashrc
#在文件末尾,增加下列
alias rm='echo "禁止使用"; false'
设置中文字体 #
export LANG=zh_CN.UTF-8
查找grep #
在一个文件中查找多个字符串
grep -e “string1” -e “string2” target_file_name
排除查找到的结果
grep -v "string1" target_file_name
在grep中使用正则表达式
- ^ : 行开头
- $ : 行结尾
- [0-9] : 匹配任意一个数字
grep -v "string1" target_file_name
grep '^2|202310301000' $(ls -rt | grep iopLog_ | grep 2023-10-30) | wc -l
grep '^[0-9]|202310301000' euop_channel_iopLog_196.113.74.55.2023-10-30.log | grep -v '2|202310301000' | grep -v '5|202310301000'
设置时钟 #
命令名:
ntpdate
例子:
ntpdate ntp1.aliyun.com
supervisor #
【已解决】supervisor的supervisorctl start出错:unix:///var/run/supervisor/supervisor.sock no such file
supervisord -c /etc/supervisord.conf
配置文件 /etc/supervisord.conf
supervisorctl status
redis-nodes-6379 RUNNING pid 24937, uptime 0:21:59
redis-nodes-6380 RUNNING pid 24938, uptime 0:21:59
tomcat RUNNING pid 24939, uptime 0:21:59
取消自动登出TMOUT #
查看当前设置
set | grep TMOUT
TMOUT=0
修改 ./.bashrc
增加
export TMOUT=0
或者
unset TMOUT
UMASK默认权限 #
umask
0022
第一个0 表示 8进制
后面3位数 作为被减数,用最大权限(文件666 rw-rw-rw-, 文件夹 777 rwxrwxrwx)作为减数
666 – 022 = 644 (rw-r–r–)
777 – 022 = 755 (rwx-r-xr-x)
umask
0022
umask -S
u=rwx,g=rx,o=rx
u:所有者
g:群组
o:其他
shell脚本参数 #
./shell_name.sh one two three
- $1 is one
- $2 is two
- $3 is three
- $0 is ./shell_name.sh
- $# is 3 , parameters count
- $$ is pid of this script
- $* is one two three
- $? Last return code
top #
top 可以查看当前系统的cpu,内存使用情况
awk #
awk是一个脚本语言工具, 复杂度远远超过一般的命令行命令, 应该把它当作一个脚本语言来学, 而不是单纯的背几个命令。
awk核心作用是通过脚本的方式来处理文本文件,典型应用是按照指定的匹配模式来扫描指定的文件, 当发现匹配时, 针对匹配的内容进行操作。
参考文档: https://www.gnu.org/software/gawk/manual/
语法:
awk options 'selection _criteria {action}' input-file > output-file
例子:
#将filename中每一行都打印出来
awk '{print}' filename
#将一行内容按 空格 分割后, 打印出 第二个 元素
awk '{print $2}' filename
#更改分割符为 : 后,打印出 每行第一个元素
awk 'BEGIN {FS = ":" }; /20230329140800401490/ {print $1} ' euop/logs/euop.log
管道 #
linux的管道十分强大
比如: 杀掉用户test1 启动的进程
kill -9 $(ps -ef|grep test1|awk '{print $2}')
其中使用了kill 命令 ps命令 grep命令 awk命令