Linux命令收集与整理

系统级别相关

#查看CentOS版本
cat /etc/centos-release   或   cat /etc/redhat-release

#重启
shutdown -r now

#查看hosts文件内容
cat /etc/hosts

#关闭防火墙
systemctl stop firewalld.service
#取消防火墙开机启动
systemctl disable firewalld.service

#开机启动 Docker
systemctl enable docker

#sh脚本开机启动
1.文件增加可执行权限(重要)
chmod 777 xx.sh
2.编辑文件,加入进去,如果这两个文件做了软连接,可直接编辑这个文件:vim /etc/rc.d/rc.local
vim /etc/rc.local 或者 vim /etc/rc.d/rc.local

3.使用crontab特殊的任务@reboot
crontab -e
@reboot /home/test.sh

4.拷贝sh脚本到系统目录
cp xx.sh /etc/profile.d/
5.通过chkconfig命令设置
cd /etc/rc.d/init.d
chkconfig --add test.sh
chkconfig test.sh on
#关闭开机启动 
chkconfig test.sh off
#从chkconfig管理中删除test.sh
chkconfig --del test.sh
查看chkconfig管理
chkconfig --list test.sh

#查看jdk安装路径
java -verbose

命令相关

#vim命令模式:复制、粘贴、多选、删除、注释
yy:复制光标那一行
p:粘贴到光标下一行
v+上下键:多选,然后在输入y命令复制
dd:删除光标那一行
多行注释步骤:1.按ctrl+v进入可视块(-- VISUAL BLOCK --)模式。2.按上下键选择多行。3.按shift+i或者大写I进入编辑,输入想要插入的内容,如#。4.按两次esc会自动刷新页面,然后保存即可。

#grep排除
grep -v '名称'

#查看当前进程pid
#使用ps -ef查询
ps -ef | grep java | grep 项目名称 | grep -v grep  | awk '{ print $2 }'
#查看占用CPU最高的前10个进程
ps aux|head -1;ps aux|sort -rn -k3|head -10
#查看占用内存最高的前10个进程
ps aux|head -1;ps aux|sort -rn -k4|head -10

#使用java提供的jps查询
jps -l | grep 项目名称 | awk '{ print $1 }'

#top命令查看当前进程,输入c可查看对应Java的具体信息

#jps参数解释,-l:显示java名称。-v:传递给JVM的参数。-m:传递给main方法的参数
jps -l -v -m

#查找命令
whereis nginx 或 find / -name 'nginx'

#tailf实时查看命令,默认需要安装。与tail -f不同的是,如果文件不增长,它不会去访问磁盘文件,所以tailf特别适合那些便携机上跟踪日志文件,因为它减少了磁盘访问,可以省电。
#tailf效果与tail -F 效果一致,文件被删除或改名后,如果再次创建相同的文件名,会继续追踪
创建tailf.c文件放置/usr/local/tmp路径下(需要创建文件夹),然后进入后执行gcc -o /usr/bin/tailf tailf.c
如果未安装gcc执行:yum -y install gcc-c++

tailf.c文件内容

/* tailf.c -- tail a log file and then follow it 
 * Created: Tue Jan  9 15:49:21 1996 by faith@acm.org 
 * Copyright 1996, 2003 Rickard E. Faith (faith@acm.org) 
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a 
 * copy of this software and associated documentation files (the "Software"), 
 * to deal in the Software without restriction, including without limitation 
 * the rights to use, copy, modify, merge, publish, distribute, sublicense, 
 * and/or sell copies of the Software, and to permit persons to whom the 
 * Software is furnished to do so, subject to the following conditions: 
 * 
 * The above copyright notice and this permission notice shall be included 
 * in all copies or substantial portions of the Software. 
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 
 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 
 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 
 * OTHER DEALINGS IN THE SOFTWARE. 
 *  
 * less -F and tail -f cause a disk access every five seconds.  This 
 * program avoids this problem by waiting for the file size to change. 
 * Hence, the file is not accessed, and the access time does not need to be 
 * flushed back to disk.  This is sort of a "stealth" tail. 
 */  
  
#include <stdio.h>  
#include <stdlib.h>  
#include <unistd.h>  
#include <malloc.h>  
#include <sys/stat.h>  
//#include "nls.h"  
#define _(s) s  
  
static size_t filesize(const char *filename)  
{  
    struct stat sb;  
  
    if (!stat(filename, &sb)) return sb.st_size;  
    return 0;  
}  
  
static void tailf(const char *filename, int lines)  
{  
    char **buffer;  
    int  head = 0;  
    int  tail = 0;  
    FILE *str;  
    int  i;  
  
    if (!(str = fopen(filename, "r"))) {  
    fprintf(stderr, _("Cannot open \"%s\" for read\n"), filename);  
    perror("");  
    exit(1);  
    }  
  
    buffer = malloc(lines * sizeof(*buffer));  
    for (i = 0; i < lines; i++) buffer[i] = malloc(BUFSIZ + 1);  
  
    while (fgets(buffer[tail], BUFSIZ, str)) {  
    if (++tail >= lines) {  
        tail = 0;  
        head = 1;  
    }  
    }  
  
    if (head) {  
    for (i = tail; i < lines; i++) fputs(buffer[i], stdout);  
    for (i = 0; i < tail; i++)     fputs(buffer[i], stdout);  
    } else {  
    for (i = head; i < tail; i++)  fputs(buffer[i], stdout);  
    }  
    fflush(stdout);  
  
    for (i = 0; i < lines; i++) free(buffer[i]);  
    free(buffer);  
}  
  
int main(int argc, char **argv)  
{  
    char       buffer[BUFSIZ];  
    size_t     osize, nsize;  
    FILE       *str;  
    const char *filename;  
    int        count;  
  
    //setlocale(LC_ALL, "");  
    //bindtextdomain(PACKAGE, LOCALEDIR);  
    //textdomain(PACKAGE);  
  
    if (argc != 2) {  
    fprintf(stderr, _("Usage: tailf logfile\n"));  
    exit(1);  
    }  
  
    filename = argv[1];  
  
    tailf(filename, 10);  
  
    for (osize = filesize(filename);;) {  
    nsize = filesize(filename);  
    if (nsize != osize) {  
        if (!(str = fopen(filename, "r"))) {  
        fprintf(stderr, _("Cannot open \"%s\" for read\n"), filename);  
        perror(argv[0]);  
        exit(1);  
        }  
        if (!fseek(str, osize, SEEK_SET))  
                while ((count = fread(buffer, 1, sizeof(buffer), str)) > 0)  
                    fwrite(buffer, 1, count, stdout);  
        fflush(stdout);  
        fclose(str);  
        osize = nsize;  
    }  
    usleep(250000);     /* 250mS */  
    }  
    return 0;  
}  
   


文件相关

#内外传输:拷贝a.zip文件到172.16.0.100服务器的root目录下。回车输入root密码
scp a.zip root@172.16.0.100:/root/
#拷贝文件夹时带上-r
scp -r status/ root@172.16.0.100:/root/
#从远程复制到本地(放入到home下)
scp root@172.16.0.100:/root/a.zip /home
#从远程复制到本地文件夹
scp -r root@172.16.0.100:/root/status/ /home
#scp 命令使用端口号 4588
scp -P 4588 root@172.16.0.100:/root/a.zip /home


#压缩 static文件夹 和 index.html文件 压缩成一个压缩包pc.zip。注:static文件夹不要斜杠/
zip -r pc.zip static index.html
#压缩static文件夹为tar.gz压缩文件
tar -zcvf new-name.tar.gz static/

#解压a.zip文件
unzip a.zip
#解压tar.gz文件
tar -xzvf aa.tar.ge


#文件迁移:移动 static文件夹 和 index.html文件 到backup文件夹下。注:static文件夹不要斜杠/
mv static index.html backup/

#查看大小:查看当前目录下所有文件。如需要查看当前文件夹可删除*号。
du -sh *
#排序
du -sh * |sort -hr
#查看目录大小(du)
du -h --max-depth=1 .

FTP相关

#win使用cmd命令链接服务器上传下载文件,-P指定远程端口
sftp root@192.168.2.244
sftp -P 200 root@192.168.2.244

#下载文件,默认下载路径C:\Users\用户名\,也可用lpwd命令查看本地路径,也可以在进入sftp前先切换本地目录在进行下载
get /home/xxx.txt

#下载文件夹
get -r static/

#上传文件
put aaa.txt

#上传文件夹
put -r static/

#查看本地路径(需要在每个命令前添加 l 即可)
lpwd

#以列表形式查看
ls -la

#创建文件夹
mkdir xxx

#退出
exit 或 quit

定时任务

crontab -l(查看)-e(编辑)-r(删除)

*/1 * * * * /bin/sh /root/deploy/tmp.sh   --每分钟执行一次

* 1 * * * 每天的一点执行

15,40 2-5 * * * 每天的2点到5点的15分、40分执行

正则说明:分、时、日、月、周

* 取值范围内的所有数字

/ 每过多少个数字

- 从X到Z

散列数字

systemctl系统服务

systemctl start msg

start 启动服务

status 查看当前服务状态

stop 关闭服务

restart 重启服务

enable 设置开机启动:systemctl enable msg

disable 设置开机不启动

reload 后面不接具体服务名,重新加载配置文件  或  systemctl daemon-reload

/etc/systemd/system/ 系统读取的启动脚本目录

systemctl list-units            #列出当前系统所有服务的状态,如查看指定服务可增加grep搜索:systemctl list-units | grep i3plus

systemctl list-unit-files       #列出所有服务的开机启动状态,如查看指定服务可增加grep搜索:systemctl list-unit-files | grep i3plus

journalctl -u i3plus-mes     #查看systemctl启动日志

系统服务启动脚本msg.service内容(存放在/etc/systemd/system/)

[Unit]
Description=msg MSG 入口项目服务
After=network.target remote-fs.target nss-lookup.target
Requires=senseshield
[Service]
Type=forking
Environment=/etc/profile
ExecStart=/usr/bin/start_java.sh msg msg-2.0.0.jar 10g 10g
ExecStop=/usr/bin/stop_java.sh msg
RestartSec=5
Restart=always
#User=estsh
#Group=estsh
[Install]
WantedBy=multi-user.target

启动Java脚本内容(存放在/usr/bin/start_java.sh,要对文件授权(chmod)

#!/bin/bash
source /etc/profile

#分配2G jvm内存
#_JAVA_OPTION="-Xmx2048m -Xms128m -Xmn1024m -Xss128m -XX:MaxDirectMemorySize=1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:MaxPermSize=64m"

#分配4G jvm内存并增加宕机时生成dump文件用于分析
#_JAVA_OPTION="-Xmx4096m -Xms128m -Xmn1024m -Xss128m -XX:MaxDirectMemorySize=1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m -XX:MaxPermSize=64m -XX:+UseConcMarkSweepGC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./"

#20240408

_JAVA_OPTION="-Xmx$3 -Xms$4 -XX:+UseG1GC -XX:+PrintGC -XX:+PrintGCCause -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=10m -Xloggc:./estsh-gc-%tlogs.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./estsh_pcn.hprof"

#传入指定配置文件参数及IP地址
_JAVA_APP_OPTION="--spring.profiles.active=docker,cus-docker --impp.server.ip=192.168.1.240"

#_JAVA_CONFIG="-Dpath_cfg=/data/conf -Denv_cfg=prod -Dlog.path=/data"


APP_HOME_PATH=$I3PLUS_HOME'/app/'$1
APP_NAME=$2

echo "========================= Java Application Start ========================= "
echo "====== I3_PLUS_HOME   : "$_I3PLUS_PLUS_HOME
echo "====== JAVA_OPTION    : "$_JAVA_OPTION
echo "====== JAVA_APP_OPTION: "$_JAVA_APP_OPTION
echo "====== APP_HOME_PATH  : "$APP_HOME_PATH
echo "====== APP_NAME       : "$APP_NAME
echo "========================= Java Application End ========================= "

cd ${APP_HOME_PATH}/jar
nohup java -jar ${_JAVA_OPTION} ${APP_NAME} ${_JAVA_APP_OPTION} >/dev/null 2>&1 &
echo $! > thread.pid

停止Java脚本内容(存放在/usr/bin/stop_java.sh,要对文件授权(chmod)

#! /bin/bash
source /etc/profile

#_I3PLUS_PLUS_HOME='/home/esi/works/产品发布/APP-TEMPLATE/i3Plus'
APP_HOME_PATH=$I3PLUS_HOME'/app/'$1

PID=$(cat ${APP_HOME_PATH}/jar/thread.pid)
kill  $PID
rm ${APP_HOME_PATH}/jar/thread.pid

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值