博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux使用收集
阅读量:4679 次
发布时间:2019-06-09

本文共 8176 字,大约阅读时间需要 27 分钟。

Centos7

命令

# 查询正运行的java进程,建议使用jps,使用ps会将tail也显示出来jps -lvm | grep '/home/chencye/tomcat/apache-tomcat-8.5.23'ps -ef | grep -v 'grep' | grep '/home/chencye/tomcat/apache-tomcat-8.5.23'# 查看端口是否被占用netstat -na | grep 8080# 查看磁盘空间使用情况df -lh# 统计当前目录下,所有文件(包括文件夹)大小du -smh *# 下载文件curl -o ~/download/jdk.tar.gz http://download.oracle.com/jdk.tar.gz# 读取输入的内容read -p 'type yes/no: ' content# 以空格间隔输入多个值read -p 'type 2 value: ' v1 v2echo $(($v1+$v2))# 查找文件find . -name "tomcat*"# 查找并删除find . -name "*.tmp" -exec rm -rf {} \;# 查找大文件find . -size +10M -exec ls -lh {} \;

解压缩

# zip 压缩zip -r tomcat.zip tomcat# zip 压缩,排除指定文件或文件夹zip -r tomcat.zip tomcat -x tomcat/logs -x tomcat/work# zip 不解压,直接查看压缩包中的文件名zipinfo tomcat.zip# zip 解压unzip tomcat.zip# zip 解压到指定路径unzip -d bak/ tomcat.zip# tar 压缩tar zcvf tomcat.tar.gz tomcat# tar 压缩,排除指定文件或文件夹tar zcvf tomcat.tar.gz --exclude=tomcat/logs --exclude=tomcat/work tomcat# tar 不解压,直接查看压缩包中的文件名tar ztvf tomcat.tar.gz# tar 解压tar zxvf tomcat.tar.gz# tar 解压到指定路径mkdir -p tomcattar zxvf tomcat.tar.gz -C tomcat

内置参数

$# # 传递给程序的总参数数目$0 # 当前程序名称,如./test.sh$n # 表示第几个参数,从$1开始,大于$9的,数字用花括号括起,如${11}$* # 传递给程序的所有参数组成的字符串$@ # 以"参数1" "参数2" ...形式保存所有参数 $? # 上一个shell命令或程序在shell中退出的情况,若正常退出返回0,否则为1$$ # 本程序的进程ID号PID,可用于创建临时文件$! # 上一个命令的PID

文件类型判断

#!/bin/bash# 文件夹判断dir="test"if [[ -d ${dir} ]]; then    rm -rf ${dir}fi# 文件判断file="/file/test.txt"if [[ -f ${file} ]]; then    rm -rf ${file}fi# 判断是否存在path="~/test"[[ -e ${path} ]] && echo "exist" || echo "not exist"

循环遍历

一般遍历

#!/bin/bash# 1到100的和sum=0# for i in $(seq 1 100)# for i in {1..100}for ((i=1; i<=100; i++))do    sum=$(( ${sum} + ${i} ))doneecho ${sum}

文件夹遍历

#!/bin/bash# 文件夹遍历function walkDir() {    curDir=$1    # for seeFile in $(ls ${curDir}) # 无相对路径    for seeFile in ${curDir}/*    do        if [[ ! -e ${seeFile} ]]; then            continue        fi        if [[ -d ${seeFile} ]]; then            walkDir ${seeFile}        else            echo "file in ${curDir}: ${seeFile}"        fi    done}dir="file"if [[ ! -d ${dir} ]]; then    exit 1;fiwalkDir ${dir}

文件内容遍历

#!/bin/bash# 文件内容遍历file="file/download/upload_test_1.txt"if [[ ! -f ${file} ]]; then    exit 1fi# for line in `cat ${file}` # 取值的分隔符由$IFS确定,如果输入文本中包括空格或制表符,则不是换行读取cat ${file} | while read linedo    echo "${file}: ${line}"done

数组遍历

#!/bin/bash# 数组遍历array=(1 2 "a" "b")# echo "array length: ${#array[*]}"echo "array length: ${#array[@]}"# for data in ${array[*]}for data in ${array[@]}do    echo ${data}done

case

option="${1}"case ${option} in    f | file | -f | -file )        file="${2}"        echo "file name is $file"        ;;    d | dir | -d | -dir )        dir="${2}"        echo "dir name is $dir"        ;;    * )        echo "basename ${0} :usage:[-f file ]| [-d  directory]"        ;;esac

文本处理

字串匹配

字串截取与替换

说明:$substring可以是一个正则表达式

表达式 含义
${#string} $string的长度
${string:index} $string中, 从位置$index(0开始)开始提取子串
${string:index:length} $string中, 从位置$index(0开始)开始提取长度为$length的子串
${string#substring} 从变量$string的开头, 删除最短匹配$substring的子串
${string##substring} 从变量$string的开头, 删除最长匹配$substring的子串
${string%substring} 从变量$string的结尾, 删除最短匹配$substring的子串
${string%%substring} 从变量$string的结尾, 删除最长匹配$substring的子串
${string/substring/replacement} 使用$replacement, 来代替第一个匹配的$substring
${string//substring/replacement} 使用$replacement, 代替所有匹配的$substring
${string/#substring/replacement} 如果$string的前缀匹配$substring, 那么就用$replacement来代替匹配到的$substring
${string/%substring/replacement} 如果$string的后缀匹配$substring, 那么就用$replacement来代替匹配到的$substring

示例

str="aaaa4444bbbb4444aaaa4444bbbb"echo ${#str} # 28echo ${str:2} # aa4444bbbb4444aaaa4444bbbb  # 从位置2开始到最后(位置0开始)echo ${str:2:4} # aa44  # 从位置2开始截取2个字符echo ${str#*a} # aaa4444bbbb4444aaaa4444bbbb # 删除最短前缀echo ${str##*a} # 4444bbbb # 删除最长前缀echo ${str%a*} # aaaa4444bbbb4444aaa # 删除最短后缀echo ${str%%a*} # 无内容    # 删除最长后缀echo ${str%%b*} # aaaa4444   # 删除最长后缀echo ${str/b/c} # aaaa4444cbbb4444aaaa4444bbbb  # 替换首个echo ${str//b/c} # aaaa4444cccc4444aaaa4444cccc # 替换所有echo ${str/#a/c} # caaa4444bbbb4444aaaa4444bbbb # 前缀替换echo ${str/#b/c} # aaaa4444bbbb4444aaaa4444bbbb # 前缀替换echo ${str/%a/c} # aaaa4444bbbb4444aaaa4444bbbb # 后缀替换echo ${str/%b/c} # aaaa4444bbbb4444aaaa4444bbbc # 后缀替换

文件中匹配替换

# sed 命令sed 's/123/456/g' file.txt # 只显示效果,不修改sed -i 's/123/456/g' file.txt # 直接修改原文件# vi 编辑器# 替换:%s/123/456/g

shell脚本头

#!/bin/bashshell_home=$(cd `dirname $0`;pwd)shell_name=`basename $0`shell=${shell_home}/${shell_name}function print() {    echo -e "\e[36;1m  ---> $1$(tput sgr0)"}print "cd ${shell_home}"cd ${shell_home}print "begin execute ${shell}"# export /home/chencye/jdk/jdk1.8.0_131# export JAVA_OPTS="-server -Xms800m -Xmx800m"# export JPDA_ADDRESS=7878 # catalina.sh jpda start# JPDA_SUSPEND=y # 等待客户端连接,tomcat才继续启用,用于调试启动过程# --------------------------------------------------------------------

FTP

# 连接ftp chencye@192.168.1.103# 先定位远程目录cd /home/chencye/ftp# 下载远程目录中的文件get test.txtip="192.168.1.103"user="chencye"password="chencye"remote_dir="/home/chencye/ftp"file_name="test.txt"local_dir="/home/chencye/download"# 自动ftp下载ftp -n <

软件安装

yum源及yum命令

# 安装base reop源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bakcurl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo# 安装epel repo源curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo# curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-5.repo# 清理缓存yum clean all# 重新生成缓存yum makecacheyum list gcc    # 列出所指定的软件包yum list updates   # 列出所有可更新的软件包yum list installed    # 列出所有已安装的软件包yum list extras    # 列出所有已安装但不在 Yum Repository 内的软件包yum info gcc    # 获取指定软件包信息yum search gcc    # 在源中查找指定软件yum remove gcc   # 删除指定软件yum clean all    # 清除缓存目录下的软件包及旧的headers

安装mysql

FTP服务安装

minimal安装时,配置网络连接

使用root账号登录

nmtui命令进入 Network Manager

选择Edit a connection
选择Edit进入DHCP配置
选择IPv4 CONFIGURATIONAutomatic,并且勾选Automatically connect选项
最后返回命令行,输入: service network restart

测试:ping baidu.com

查看IP: ip addr show ens33 (ens33上面配置时出现的对应网卡名)

系统配置

为rm命令配置垃圾箱

alias rm="~/.local/saferm.sh"

设置定时任务,定时清空垃圾箱

0 0 * * 0 rm -rfu ~/Trash

配置别名alias与function

echo "alias l='ls -alh --color=auto --time-style=\"+%F %H:%M:%S\"'" >> ~/.bashrc && source ~/.bashrcecho "alias ll='ls -lh --color=auto --time-style=\"+%F %H:%M:%S\"'" >> ~/.bashrc && source ~/.bashrcecho "alias date='date \"+%F %H:%M:%S\"'" >> ~/.bashrc && source ~/.bashrc# function示例:重置ping命令# vi ~/.bashrcfunction ping {    local commandName="${FUNCNAME[0]}"    local params=($@)    echo "Original command: $commandName ${params[@]}"    local num=${#params[@]}    local params_new=()    for ((i=0; i<$num; i=i+1))    do        param=${params[$i]}        param=${param/"127.0.0.1"/"localhost"} # 替换参数        params_new[$i]=$param    done    echo "new command: $commandName ${params_new[@]}"    command $commandName ${params_new[@]}}function md5 {    if [[ ! $# -eq 2 ]]; then        echo -e "\n"        echo "missing parameter. example:"        echo "md5 test.txt ee69b061c627ec20991d4259cbcbfed4"        echo -e "\n"        return    fi    local file="$1"    local theMd5="$2"    local fileMd5=`md5sum "$file" | awk '{print $1}'`    [[ "$fileMd5" = "$theMd5" ]] && echo true || echo false}# source ~/.bashrc

vi编辑器配置

echo "syntax on" >> ~/.vimrcecho "set number" >> ~/.vimrcecho "set tabstop=4" >> ~/.vimrcecho "set expandtab" >> ~/.vimrc

配置PS1提示符定义

vi ~/.bashrc

PS1="\[\e[32;1m\][\u@\h \w]$\[\e[m\]"
export PS1

\d:代表日期,格式为weekday month date,例如:"Mon Aug 1"

\H:完整的主机名称。例如:我的机器名称为:fc4.linux,则这个名称就是fc4.linux
\h:仅取主机的第一个名字,如上例,则为fc4,.linux则被省略
\t:显示时间为24小时格式,如:HH:MM:SS
\T:显示时间为12小时格式
\A:显示时间为24小时格式:HH:MM
\u:当前用户的账号名称
\v:BASH的版本信息
\w:完整的工作目录名称。家目录会以 ~代替
\W:利用basename取得工作目录名称,所以只会列出最后一个目录
\#:下达的第几个命令

设置字符序列颜色的格式为:\[\e[F;Bm\]

其中F为字体颜色,编号30~37;B为背景色,编号40~47
可通过\e[0m关闭颜色输出;特别的,当B为1时,将显示加亮加粗的文字

颜色表与代码表

前景 背景 颜色
30 40 黑色
31 41 紅色
32 42 綠色
33 43 黃色
34 44 藍色
35 45 紫紅色
36 46 青藍色
37 47 白色

时间同步

su root# 安装yum -y install chrony# 启用systemctl start chronydsystemctl enable chronyd# 设置亚洲时区timedatectl set-timezone Asia/Shanghai# 启用NTP同步timedatectl set-ntp yes# 手动同步:重启chronyd即可systemctl restart chronydexit

转载于:https://www.cnblogs.com/chencye/p/6597354.html

你可能感兴趣的文章
POJ 3714 平面最近点对
查看>>
Spark工作机制-调度与任务分配
查看>>
【miscellaneous】软件加密方法
查看>>
【VS开发】使用VS2010创建MFC ActiveX工程项目
查看>>
【算法集中营】计算两个日期之间的天数
查看>>
react diff
查看>>
std::bind()图解
查看>>
shell格式化字符串
查看>>
浙江金华 图论整理
查看>>
大数运算——加法减法
查看>>
centos swap
查看>>
从实践认识修饰符
查看>>
网络程序服务端维持10000个对象
查看>>
QTableWidget嵌入QpushButton后定位QpushButton
查看>>
自己动手实现java数据结构(二) 链表
查看>>
Virtualbox安装Windows 8.1遇到0x000000C4错误解决办法 - 转
查看>>
一个简单的管理Web站点文件的页面程序(修改版)
查看>>
蛋疼的mysql_ping()以及MYSQL_OPT_RECONNECT
查看>>
POI读写Word docx文件
查看>>
Maven项目的SSM框架搭建
查看>>