资讯详情

shell命令

shell命令 clear 清屏 find path -name filename #find 目录 ls 绝对路径 /path01/path02/... 相对路径 ./ /path01/path02/... 返回上级目录 ../ 目前用户的根路径 ~ 查看当前路径 pwd 查看当前子路径列表 ls 简易列表 ll 详细列表 ls -la 所有列表(隐藏路径)

切换路径 cd oath 创建路径 mkdir path01 path02 mkdir -p path01/path02 path02 (-p递归创建) 删除路劲 rm -[r]d path (删除空路径) -r递归删除 修改路径 cp [-r] src dest 复制 -r递归复制 mv src dest 移动 (同目录下修改路径名的功能) 文件

查看 cat 查看文件所有内容 more 分页查看 enter翻行,space翻页 less 分页查看 head -n 查看前n行 tail -n 查看后n行 wc 查看文件统计信息 删除 rm -[r]f file 删除文件 -r[*递归删除,一次性删除目录和所有资源] 修改文件名 mv file path 移动文件 mv file file1 重命名文件 cp file path 复制文件 创建 touch file 编辑 vi[m] file 如果有直接打开编辑,如果没有创建打开 命令行模式 默认进入/esc /搜索内容 shift z z => :wq!保存并退出 :w 保存 :q 退出 :q! 强制退出 o:插入新行 i:插入光标位置 gg:回到文件头 shift g 回到文件尾 nbsp;              [n]dd 删除当前光标所在行开始的n行                     编辑模式     输出        echo     日期         date        回去系统当前日期         date +%F    年-月-日 2021-12-20         date +%C     世纪         date +%Y    四位年         date +%y    两位年         date +%m    月         date +%d    日         date +%H    时         date +%M    分         date +%S    秒         m=`date +%m`; q=$(((m-1)/3+1)) 季度         date +%U    年周(周日为第一天)         date +%W    年周(周一为第一天)         date +%j    年日         date +%w    周日(周一:0~周日:6)         date +%s[%M%N]    [毫|纳]秒         获取系统当前时间戳:%s秒:1637555292  %s%M毫秒:163755529728 %s%M纳秒         日期时间计算         date -d '$datetime ±n TimeUnit' +%F

        时间戳时间计算(先转化格式,再计算)         dt=`date -d @timestamp +%F` 长整数(秒)格式化         date "$dt ±n TimeUnit" +%F

    用户、分组、权限             权限:             r read             w write             x execute             用户             U    User             G    Group             O    Others             查看用户信息:             cat /etc/passwd             #---------------------------------------------------------------------             USERNAME,PASSWORD,USERID,GROUPID,GROUPNAME,USER_MAINPATH,命令集             # ----------------------------------------------------------------------             root:x:0:0:root:/root:/bin/bash             shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown             sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin             heney:x:1000:1000:heney:/home/heney:/bin/bash         查看用户密码         cat /etc/shadow             #---------------------------------------------------------------------             USERNAME | USERNAME ,PASSWORD             #----------------------------------------------------------------------         查看分组信息         cat /etc/group         #------------------------------------------------------             GROUPNAME,PASSWORD,GROUPID         #---------------------------------------------------------------         root:$6$tMQ55bpBDyJU559r$RYLbbak9s.Idqy3dii4qhA6uYb1gXAIFOAZV4W9yfUjilX9lYAORq6158fHchAI5zSmzGOSMnGz.FJYvIpciG.::0:99999:7:::         sync:*:18353:0:99999:7:::         shutdown:*:18353:0:99999:7:::         sshd:!!:18973::::::         mysql:!!:18974::::::

        切换当前登录用户         su USERNAME

        创建用户         useradd kb16         useradd -d 主目录 -m -g 组名 用户名         -d DIR #指定新建用户的主目录,若未指定默认自动创建主目录/home/用户名         -m        #如果主目录不存在则创建,只能创建一级目录         -g GNAME #指定用户所属主组名,若未指定默认创建同名组,并将自己归于该组内         -G GN1,GN2...#指定用户所属附加组名列表         usermod -d 主目录 -g 组名 用户名         userdel [-r] USERNAME             -r 删除主目录

        passwd USERNAME|GROUPNAME #设置用户或分组密码         passwd -l USERNAME #定用户         passwd -u USERNAME #解锁用户

        #创建用户分组         groupadd GROUPNAME         groupmod -g NEW_GID -n NEW_GROUPNAME SRC_GROUPNAME         groupdel GROUPNAME

        修改权限         touch b.log         ll         #---------------------------------------------         权限    硬链接数 owner group   创建时间    文件名         #--------------------------------------------         [-rw-r--r--] 1    [root root] 0 Dec 22 10:45 b.log         #-----------------------------------------------         -rw-r--r--         -资源类型 -文件    d目录         rw- u 表示所有者对资源的权限,r表示read,w表示write,第三个`-`(`x`)表示执行权,`-`表示没有执行权         r-- g 表示组内用户对他的权限         r-- o 表示其他用户对它的权限

        新建的文件默认权限644 vi/touch *.*         新建的目录默认权限755     madir *         .*.*    隐藏文件或目录  可以通过ls-la查看         *~        临时文件         rwx 111 7         rw- 110 6         r-x 101 5         r-- 100 4         -wx 011 3         -w- 010 2         --x 001 1         --- 000 0

        chmod u+x b.log         chmod g+w b.log         chmod  732 b.log

              [root  root]         chown USER:group B.LOG

        管道符 |         cmd ...|cmd2 ...|...先执行并将结果作为cmd2的输入,依次执行         cat /etc/passwd|grep kb16

    文本编辑         sed [-option] 'script' file         sed [-option] {script|AdressCommand} file1[ file2...]         -option             -n    #不显示模式空间内容             -e     #同时执行多个匹配操作             -f     #执行文件中的多个AddressCommand操作    *             -r     #使用扩展正则表达式*             -i    #直接修改文件    *         #Address表达式         s,e|+n|$ #从s行(包含)到(e行|之后的n行|最后一行)         n        #第n行         /REGEX/,+2    #从正则匹配行(包含)之后n行         /REGEXS/,/REGEXE/    #从REGEXS开始至    REGEXE结束         #Command表达式         script    操作指令             d     删除(行)delete* sed -i '/HISTSIZE=1000/d' profile                                             sed -i '1,9d' profile             p     显示符合条件的行        print             a    向下追加新行    append*             i     向上插入新行    insert*             c     整行替换             s     行中替换* sed -i 's/\/opt\/software\/jdk8/\/opt\/jdk8/' profile             r     行中追加cat pro

        script     行匹配模式         行号匹配         n         1,3         1,$

        正则匹配         /SELINUX=enforced/         /SELINUX=enforced/,/UseDNS=yes/

        操作             cp /etc/profile ./             sed -i '/HISTSIZE=1000/d' profile             sed -i '1,9d' profile             sed -i '/unset i/i \export JAVA_HOME=/opt/software/jdk8' profile             sed -i 's/\/opt\/software\/jdk8/\/opt\/jdk8/' profile             sed -i 's/"//g' ifcfg-ens33             sed -nr '/IPV/p' ifcfg-ens33             sed -nr '/^IPV.*no$/p' ifcfg-ens33             sed -ri '/^IPV.*no$/s/no/yes' ifcfg-ens33

    文件处理     awk [-option] `script` file     -option         -F 外置定义分隔符,指定分隔符(',',' ',';')=> -F ','  (以逗号问分隔符)         -v 传参        -v var=value         -f file     脚本文件     script         'BEGIN {}/regexp/{}END{}'         BEGIN {}     类似于过滤器的init()    启动示执行一次             BEGIN{i=1}    声明变量并初始化             BEGIN{FS=';'} 内置定义分隔符             多条语句分号隔开         {}            类似于过滤器的doFilter() 逐行执行         END {}        类似于过滤器的destroy()  结束时执行     分支,循环,跳转语句都存在

    字符串函数     gensub(regex,replace,noWho,target) 将target字符串中的第noWho个regex匹配内容替换为replace         awk -F ',' '{v=gensub("5","X",1,$1);print v,$2,$3}' a.log|awk         awk -F ',' 'BEGIN{V="ABC DEF";print gensub(/(.*?) (.*?)/,"\\2 \\1","g",v)}' =>DEF ABC     index(src,find)    返回find在src中的位置,不存在返回0         awk -F ',' 'BEGIN{v="ABC DEF";print index(v,"BC")}' =>2     length(src)    返回字符串的长度(字符数量)     awk -F ',' 'BEGIN{v="ABC def";print length(v)}' =>7     match(src,regex[,arr])         awk -F ',' 'BEGIN{v="ABC123";print match(v,[0-9]{1,}/)}' =>4         awk -F ',' 'BEGIN{v="ABC123";print match(v,[0-9]{2,}/)}' =>4         awk -F ',' 'BEGIN{v="ABC123";print match(v,[0-9]{3,}/)}' =>4         awk -F ',' 'BEGIN{v="ABC123";print match(v,[0-9]{4,}/)}' =>0         若regex带分组,则将多个分支一次填入arr         awk -F ',' 'BEGIN{v="ABC 123";match(v,/(.*?) (.*?)/,arr);print arr[1] arr[2]}' =>ABC 123     split(src,arr[,FieldSep[,seps]])  一FieldSep将src分成数组,并一次存放于arr中,将分隔符存放于seps中         awk -F ',' 'BEGIN{v="ABC 123,def;xxx";split(v,arr,/ |,|;/);print arr[1] arr[2] arr[3] arr[4]}' =>ABC 123 def xxx         awk -F ',' 'BEGIN{v="ABC 123,def;xxx";split(v,arr,/ |,|;/,seps);print seps[1] seps[2] seps[3]}' => , ;     substr(str,start[,length])    截取字符串         输入每行ip地址中最后一位         awk -F ',' '{v=$1;while(index(v,".")>0){v=substr(v,index(v,".")+1)} print v}' a.log     tolower(str)    转为小写字母         awk 'BEGIN{V="aBcDeF";print tolower(v)}'=>abcdef     toupper(str) 转为大写字母         awk 'BEGIN{V="aBcDeF";print toupper(v)}'=>ABCDEF         (str""str)    拼接字符串

    

统计所有订单金额     awk -F ',' 'BEGIN{v=0} {v+=$3}END{print v}' a.log     wc a.log     wc -l a.log 统计每个ip下产生的订单数量,订单总金额,订单均值     awk 'BEGIN{FS=","}{a[$1]++;b[$1]+=$3}END{for(e in a) print e,a[e],b[e],b[e]/a[e]}' a.log

统计不同用户在不同的ip下的订单数     awk -F ',' '{a[$2","$1]++}END{for(k in a) print k,a[k]}' a.log     awk -F ',' '{a[$2","$1]++}END{for(k in a) print k,a[k]}' a.log|sort    排序

统计订单金额为参数top以上的订单数     awk -F ',' -v top=700 'BEGIN {c=0}{if($3>top) c++}END{print c}' a.log

    命令集     cat /etc/shells     #-------------------------------------------------     /bin/sh     /bin/bash*     /usr/bin/sh     /usr/bin/bash

    #--------------------------------------------     表达式     ``         #整数计算         a=`expr 1+2` =>3         a=`expr 1-2` =>-1         a=`expr 1\*2` =>2         a=`expr 1/2` =>0

        #小数计算         a=`awk -v a=1 -v b=2 'BEGIN{printf "%.2f",a/b}'` =>0.50

        #shell命令结果         a=`pwd`**

    []     #关系运算符     a=$[1>2]    =>0:false **     a=$[1<2]    =>1:true **     #整数计算     a=$[1[+|-|*|/|%]2] =>3|....**     ((a++)) =>a=4    **     #数组下标     arr[index]  **

[[]]     =~        **     a="bc123ab12"     [[ $a=~ ^abc.* ]] && echo "a" ||echo "b"     #配合if分支使用

    #创建数组     arr=(item,...,item)   **     item=${arr[index]}     len=${#arr[*]}     arr[index]=value 下标已存在覆盖,不存在增加

序列     s=`seq 1 2 10`  **

    #提取变量值     ${a}                提取变量值**     ${arr[index]}        提取数组元素**     ${#arr[*]}            提取数组长度**

    ${str/[/]from/to/g}  替换(、替换第一处,//替换所有)**

    运算符         if/while[]             关系    -gt -ge -lt -le -eq -ne             逻辑    -a -o !             字符串    = != -z -n        **             文件    -e -f -d -r -w -x             **         (())             关系    同java一样        **             逻辑    同java一样        **

    #shell编程         touch | vi[m] call.sh   #touch call.sh         chmod u+x call.sh         call [-option]...         call -name "heney"     ----------------------------------------     #!/bin/bash     source /etc/profile     ------------------------------------------------

    变量     var=value     let var=value     unset var     let var=()     let var=`seq 1 5`     #类别     环境变量     全局变量     局部

    分支     if [ $a -ge 6 -a $b -le 10]  *     then         echo "yes"     else         echo "no"     fi     ----------------------------------------------------------------------------------------     ----------------------------------------------------------------------------------------     if((a>6 && b<10))     then         echo "yes"     else         echo "no"     fi     ----------------------------------------------     read -p "input a number :" var

    if((var>5));then             echo "hello"     else             echo "world"     fi     --------------------------------------     path=$1     if [ ! -e $path ];then             echo "$path not exist"     slif [ -d $path  ];then             echo "$path is directory"     else             echo "$path is file"             if [ -r $path ];then                     echo "$path is readable"             elif [ -w $path ];then                     echo "$path is writeable"             elif[ -x $path ];then                     echo "$path is executable"             else                     echo "$path is not available"             fi     fi     -----------------------------------------------------     if [ $1 -ge 90 ]     then             echo "A"     elif [ $1 -ge 80 ]     then             echo "B"     else             echo "C"     fi     ---------------------------------------------------     a=$1     b=$2     c=$#

    if [ $c==2 $a -ge 10 -o $b -le 5 ];then             echo "yes"     else             echo "no"     fi     ---------------------------------------------------------------------------------------------     --------------------------------------------------------------------------------------------     ######################################################################################     case $var in     v1)         ...     ;;     v2)         ...     ;;     esac     -------------------------------------------------------------------------------------------------------     -------------------------------------------------------------------------------------------------------     case $1 in     start|START)             echo "starting..."     ;;     stop|STOP)             echo "stopping..."     ;;     *)             echo "nothing"     ;;     esac     -------------------------------------------------------------------------------------------------------     --------------------------------------------------------------------------------------------------------

    循环     array=("aa bb cc")     for item in ${array[@]}     do         echo $item     done     #-----------------------------------------     aa     bb     cc     #====================================

    for  item in `seq 1 2 10`     do         echo $item     done     #-----------------------     1     3     5     7     9     #----------------------------------     total=0     for ((i=1;i<=100;i++))     do         echo ((total+=i))     done     echo "SUM :$total"     #----------------------------     SUM : 5050     #-------------------------------     #函数     function func_name(){         p1=$1         p2=$2         ...         pc=$#

        echo RESULT         #return number xxxx

    }

    rst =`func_name param1 param2...`   ***     func_name param1,param2

    #脚本执行方式     #开启子shell执行     ./install.sh     /bash     -

read -p "input a number :" var

重定向 echo "content" >file 覆盖模式 echo "content" >>file 追加模式 将a.log 中ip最后一位200以上的数据写入b.log,排序 >>追加 #分流 cat a.log|awk -F ',' '{split($1,a,".");if(a[4]>=200) print $0}' #并流 cat a.log|awk -F ',' '{split($1,a,".");if(a[4]>=200) print $0}'|sort >b.log cat a.log|awk -F ',' '{split($1,a,".");if(a[4]<=200 &&a[4]>150) print $0}'|sort >>b.log cat a.log|awk -F ',' '{split($1,a,".");if(a[4]>=200) print $0}'|sort >b.log 2>&1 cat a.log|awk -F ',' '{split($1,a,".");if(a[4]>=200) print $0}'|sort 1>b.log 1>e.log     文件处理     系统性能查看

        #创建数组         arr=(item,...,item)   **         item=${arr[index]}         len=${#arr[*]}

    shell三元运算符

    #8、软件安装         系统软件安装         rpm -qa|grep vim

        yum -y remove vim-common-7.4.629-8.el7_9.x86_64         yum -y remove vim-enhanced-7.4.629-8.el7_9.x86_64         yum -y remove vim-filesystem-7.4.629-8.el7_9.x86_64

        yum search vim         yum -y install vim         yum -y install vim-minimal.x86_64 : A minimal version of the VIM editor

        绿色安装         xxx.tar         xxx.tar.gz         xxx.tgz

        tar [-option] xxx.tar[.gz] -C dest_path         -z    .gz         -x    解压         -c  压缩         -v     展示解压或压缩的过程         -f 固定格式

        RPM安装             xxx.rpm             rpm -ivh xxx.rpm

        手工编译安装             #解压并切换值根目录             #安装gc依赖             make             #配置             #启动服务             #起客户端访问     #9 环境变量     /etc/profile    shell文件    全局     /etc/profile.d    目录     ~/.bashrc    shell文件    当前用户

    #脚本执行方式     #开启自shell执行     ./script.sh     bash script.sh     #开启

    [root@single ~]# chmod u+x install2.sh     [root@single ~]# source install2.sh

    编写脚本 删除、解压、配置、验证...     #-------------------------------------------------------------------------------------- #JDK安装(先把jdk压缩包拖到download下面)     tar -zxvf jdk-8u171-linux-x64.tar.gz -C /opt/software/ 解压     cd /opt/software/     ls    查看     mv jdk1.8.0_171/ jdk8     重命名     ls

    #创建或编辑自定义环境变量shell脚本     vim /etc/profile.d/my.sh  在这里配环境变量,系统文件不要动     #--------------------------------------------------------------------     #jdk 8     export JAVA_HOME=/opt/software/jdk8     export PATH=$JAVA_HOME/bin:$PATH     export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar     #----------------------------------------------------------------------     #每次添加新的环境变量要激活才能生效     source /etc/profile     java -version #SCALA安装(先把scala压缩包拖到download下面)     [root@single jdk8]# tar -zxvf /opt/download/scala-2.12.10.tgz -C /opt/software/     [root@single jdk8]# cd ../     [root@single software]# ls     jdk8  scala-2.12.10

    #创建或编辑自定义环境变量shell脚本     vim /etc/profile.d/my.sh     #-----------------------------------------------     #scala 2.12     export SCALA_HOME=/opt/software/scala212     export PATH=$SCALA_HOME/bin:$PATH     #-------------------------------------     #每次添加新的环境变量要激活才能生效     source /etc/profile     #测试     scala -version     #进入客户端     scala     scala>...

    #9、MYSQL、JDK、SCALA

标签: uyb型高压电容物位变送器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台