zoukankan      html  css  js  c++  java
  • shell 基础

    shell 

    我们无法直接操作计算机硬件,我们可以将指令提交给shell,shell再传输给系统内核,内核支配各种硬件进行各种操作。

    我们敲过的命令,linux是会有记录的,预设可以记录1000条历史命令。

    !! (连续两个”!”),表示执行上一条指令;

    [root@host ~]# echo "hello"
    hello
    [root@host ~]# !!
    echo "hello"
    hello

    !n(这里的n是数字),表示执行命令历史中第n条指令

    [root@host ~]# !600
    scala
    Welcome to Scala 2.12.3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_101).
    Type in expressions for evaluation. Or try :help.

    scala>

    按tab键,它可以帮你补全一个指令,也可以帮你补全一个路径或者一个文件名。连续按两次tab键,系统则会把所有的指令或者文件名都列出来。

    我们可以通过alias把一个常用的并且很长的指令别名一个简洁易记的指令。如果不想用了,还可以用unalias解除别名功能。直接敲alias会看到目前系统预设的alias :

    [root@host ~]# alias
    alias cp='cp -i'
    alias l.='ls -d .* --color=auto'
    alias ll='ls -l --color=auto'
    alias ls='ls --color=auto'
    alias mv='mv -i'
    alias rm='rm -i'
    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'

    alias语法:alias [命令别名]=[’具体的命令’]。

    [root@host ~]# alias hl='echo 'hello''
    [root@host ~]# hl
    hello

    输入输出从定向

    输入重定向的命令是<

    输出重定向的命令是>

    错误重定向2>

    追加重定向>>

    管道符”|”

    将前面命令运行的结果丢给后面的命令

    [root@host ~]# hdfs dfs -ls -R /tmp/20170915 | grep tian
    -rw-r--r-- 1 root supergroup 66 2017-09-29 09:59 /tmp/20170915/tian.txt

    [root@host ~]# ls -al | grep 2017*
    -rw-r--r-- 1 root root 66538 Sep 20 12:09 20170920.txt

    当运行一个进程时,(按Ctrl+z)暂停,然后使用fg命令恢复,利用bg命令使他到后台运行,(按Ctrl+c)终止。

     df -h查看磁盘分区的使用情况

    [root@host ~]# df -h
    Filesystem Size Used Avail Use% Mounted on
    /dev/sda3 451G 6.1G 422G 2% /
    tmpfs 1.9G 0 1.9G 0% /dev/shm
    /dev/sda1 194M 28M 157M 15% /boot
    [root@host ~]# df -hl
    Filesystem Size Used Avail Use% Mounted on
    /dev/sda3 451G 6.1G 422G 2% /
    tmpfs 1.9G 0 1.9G 0% /dev/shm
    /dev/sda1 194M 28M 157M 15% /boot

    du -sh [目录名] 返回该目录的大小

    du -sm [文件夹] 返回该文件夹总M数

    du -h [目录名] 查看指定文件夹下的所有文件大小(包含子文件夹)
     

    如果程序正在前台运行,可以使用 Ctrl+z 选项把程序暂停,然后用 bg %[number] 命令把这个程序放到后台运行

    对于所有运行的程序,我们可以用jobs –l 指令查看

    也可以用 fg %[number] 指令把一个程序掉到前台运行

    也可以直接终止后台运行的程序,使用 kill %[number]命令

     

    Spark-shell 进入开发环境,ctrl+z 暂停程序,jps然后会发现sparksubmit进程

    jobs 查看所有运行的程序,可看到spark任务已经暂停

    可以使用fg % number 把程序调到前台运行。进入程序后,可以使用:quit退出程序

    ,然后jobs不存在该进程,jps也不会查到sparksubmit进程,如果异常退出或者通过

    Kill % number结束掉任务,则jps中依然会有sparksubmit,可以使用 kill -9 进程id 干掉进程

     

    运行 Shell 脚本有两种方法:

    1、作为可执行程序 将上面的代码保存为 test.sh,并 cd 到相应目录: chmod +x ./test.sh  #使脚本具有执行权限 ./test.sh  #执行脚本 注意,一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。

    2、作为解释器参数 这种运行方式是,直接运行解释器,其参数就是 shell 脚本的文件名,如: /bin/sh test.sh

     filelist=`ls /home/work/file/`

    for file in $filelist

    do  echo $file

    done

    一定要切记filelist=后边的那个引号不是单引号,而是tab键上边的那个键

    绝对路径:

    路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。

    相对路径:

    路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,

    可以写成: cd ../man 这就是相对路径的写法啦!

    Shell 字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。

    单双引号的区别跟PHP类似。 单引号 str='this is a string' 单引号字符串的限制: 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的; 单引号字串中不能出现单引号(对单引号使用转义符后也不行)。 双引号 your_name='qinjx' str="Hello, I know your are "$your_name"! " 双引号的优点: 双引号里可以有变量 双引号里可以出现转义字符

    获取字符串长度

    string="abcd"

    echo ${#string}  #输出 4

    提取子字符串

    以下实例从字符串第 2 个字符开始截取 4 个字符:

    string="runoob is a great site"

    echo ${string:1:4} # 输出 unoo

    查找子字符串 查找字符 "i 或 s" 的位置:

    string="runoob is a great company"

    echo `expr index "$string" is`  # 输出 8

    注意: 以上脚本中 "`" 是反引号,而不是单引号 "'",不要看错了哦。

    在Shell中,用括号来表示数组,数组元素用"空格"符号分割开。

    定义数组的一般形式为: 数组名=(值1 值2 ... 值n)

    例如: array_name=(value0 value1 value2 value3)

    读取数组

    读取数组元素值的一般格式是: ${数组名[下标]}

    获取数组的长度

    获取数组长度的方法与获取字符串长度的方法相同,例如: # 取得数组元素的个数 length=${#array_name[@]} # 或者 length=${#array_name[*]} # 取得数组单个元素的长度 lengthn=${#array_name[n]}

    在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 实例 以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名:

    echo "Shell 传递参数实例!";

    echo "执行的文件名:$0";

    echo "第一个参数为:$1";

    echo "第二个参数为:$2";

    echo "第三个参数为:$3";

    $# 传递到脚本的参数个数 $* 以一个单字符串显示所有向脚本传递的参数。

    如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。

    $$ 脚本运行的当前进程ID号

    $! 后台运行的最后一个进程的ID号

    $@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。

    如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。

    $- 显示Shell使用的当前选项,与set命令功能相同。

    $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

    #!/bin/bash # author:菜鸟教程 # url:www.runoob.com

    echo "Shell 传递参数实例!";

    echo "第一个参数为:$1";

    echo "参数个数为:$#";

    echo "传递的参数作为一个字符串显示:$*";

    为脚本设置可执行权限,并执行脚本,输出结果如下所示: $ chmod +x test.sh

    $ ./test.sh 1 2 3 Shell

    传递参数实例! 执行的文件名:./test.sh

    第一个参数为:1

    第二个参数为:2

    第三个参数为:3

    #打印数组长度 echo ${#arrayWen[@]} #

    for 循环遍历 for var in ${arrayWen[@]}; do  echo $var done

    获取数组中的所有元素 使用@ 或 * 可以获取数组中的所有元素,例如: #!/bin/bash # author:菜鸟教程 # url:www.runoob.com

    my_array[0]=A my_array[1]=B my_array[2]=C my_array[3]=D

    echo "数组的元素为: ${my_array[*]}" echo "数组的元素为: ${my_array[@]}"

    获取数组的长度 获取数组长度的方法与获取字符串长度的方法相同,例如: #!/bin/bash # author:菜鸟教程 # url:www.runoob.com

    my_array[0]=A my_array[1]=B my_array[2]=C my_array[3]=D

    echo "数组元素个数为: ${#my_array[*]}" echo "数组元素个数为: ${#my_array[@]}"

    expr 是一款表达式计算工具,使用它能完成表达式的求值操作。 例如,两个数相加(注意使用的是反引号 ` 而不是单引号 '): #!/bin/bash

    val=`expr 2 + 2` echo "两数之和为 : $val"

    两点注意: 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。

    * 乘法 `expr $a * $b` 结果为  200。

    注意:条件表达式要放在方括号之间,并且要有空格,例如: [$a==$b] 是错误的,必须写成 [ $a == $b ]。 注意: 乘号(*)前边必须加反斜杠()才能实现乘法运算; if...then...fi 是条件语句,后续将会讲解。 在 MAC 中 shell 的 expr 语法是:$((表达式)),此处表达式中的 "*" 不需要转义符号 "" 。

    关系运算符 关系运算符只支持数字,不支持字符串,除非字符串的值是数字。 下表列出了常用的关系运算符,假定变量 a 为 10,变量 b 为 20: 运算符 说明 举例 -eq 检测两个数是否相等,相等返回 true。 [ $a -eq $b ] 返回 false。 -ne 检测两个数是否相等,不相等返回 true。 [ $a -ne $b ] 返回 true。 -gt 检测左边的数是否大于右边的,如果是,则返回 true。 [ $a -gt $b ] 返回 false。 -lt 检测左边的数是否小于右边的,如果是,则返回 true。 [ $a -lt $b ] 返回 true。 -ge 检测左边的数是否大于等于右边的,如果是,则返回 true。 [ $a -ge $b ] 返回 false。 -le 检测左边的数是否小于等于右边的,如果是,则返回 true。 [ $a -le $b ] 返回 true。

    逻辑运算符 以下介绍 Shell 的逻辑运算符,假定变量 a 为 10,变量 b 为 20: 运算符 说明 举例 && 逻辑的 AND [[ $a -lt 100 && $b -gt 100 ]] 返回 false || 逻辑的 OR [[ $a -lt 100 || $b -gt 100 ]] 返回 true

    字符串运算符 下表列出了常用的字符串运算符,假定变量 a 为 "abc",变量 b 为 "efg": 运算符 说明 举例 = 检测两个字符串是否相等,相等返回 true。 [ $a = $b ] 返回 false。 != 检测两个字符串是否相等,不相等返回 true。 [ $a != $b ] 返回 true。 -z 检测字符串长度是否为0,为0返回 true。 [ -z $a ] 返回 false。 -n 检测字符串长度是否为0,不为0返回 true。 [ -n $a ] 返回 true。 str 检测字符串是否为空,不为空返回 true。 [ $a ] 返回 true。

    文件测试运算符 文件测试运算符用于检测 Unix 文件的各种属性。 属性检测描述如下: 操作符 说明 举例 -b file 检测文件是否是块设备文件,如果是,则返回 true。 [ -b $file ] 返回 false。 -c file 检测文件是否是字符设备文件,如果是,则返回 true。 [ -c $file ] 返回 false。 -d file 检测文件是否是目录,如果是,则返回 true。 [ -d $file ] 返回 false。 -f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 [ -f $file ] 返回 true。 -g file 检测文件是否设置了 SGID 位,如果是,则返回 true。 [ -g $file ] 返回 false。 -k file 检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。 [ -k $file ] 返回 false。 -p file 检测文件是否是有名管道,如果是,则返回 true。 [ -p $file ] 返回 false。 -u file 检测文件是否设置了 SUID 位,如果是,则返回 true。 [ -u $file ] 返回 false。 -r file 检测文件是否可读,如果是,则返回 true。 [ -r $file ] 返回 true。 -w file 检测文件是否可写,如果是,则返回 true。 [ -w $file ] 返回 true。 -x file 检测文件是否可执行,如果是,则返回 true。 [ -x $file ] 返回 true。 -s file 检测文件是否为空(文件大小是否大于0),不为空返回 true。 [ -s $file ] 返回 true。 -e file 检测文件(包括目录)是否存在,如果是,则返回 true。 [ -e $file ] 返回 true。

    Shell echo命令 Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式: echo string

    .显示普通字符串: echo "It is a test" 这里的双引号完全可以省略,以下命令与上面实例效果一致: echo It is a test

    2.显示转义字符 echo ""It is a test"" 结果将是: "It is a test"

    3.显示变量 read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量 #!/bin/sh read name echo "$name It is a test" 以上代码保存为 test.sh,name 接收标准输入的变量,结果将是: [root@www ~]# sh test.sh OK                     #标准输入 OK It is a test        #输出 4.显示换行 echo -e "OK! " # -e 开启转义 echo "It it a test" 输出结果: OK!

    It it a test 5.显示不换行 #!/bin/sh echo -e "OK! c" # -e 开启转义 c 不换行 echo "It is a test" 输出结果: OK! It is a test 6.显示结果定向至文件 echo "It is a test" > myfile 7.原样输出字符串,不进行转义或取变量(用单引号) echo '$name"' 输出结果: $name" 8.显示命令执行结果 echo `date` 注意: 这里使用的是反引号 `, 而不是单引号 '。 结果将显示当前日期 Thu Jul 24 10:08:46 CST 2014

    Shell printf 命令 上一章节我们学习了 Shell 的 echo 命令,本章节我们来学习 Shell 的另一个输出命令 printf。 printf 命令模仿 C 程序库(library)里的 printf() 程序。 标准所定义,因此使用printf的脚本比使用echo移植性好。 printf 使用引用文本或空格分隔的参数,外面可以在printf中使用格式化字符串,还可以制定字符串的宽度、左右对齐方式等。默认printf不会像 echo 自动添加换行符,我们可以手动添加 。 printf 命令的语法: printf  format-string  [arguments...] 参数说明: format-string: 为格式控制字符串 arguments: 为参数列表。 实例如下: $ echo "Hello, Shell" Hello, Shell $ printf "Hello, Shell " Hello, Shell $

    printf "%-10s %-8s %-4s " 姓名 性别 体重kg  printf "%-10s %-8s %-4.2f " 郭芙 女 47.9876 %s %c %d %f都是格式替代符 %-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。 %-4.2f 指格式化为小数,其中.2指保留2位小数。

    printf格式指示符 项目     说明

    %b          相对应的参数被视为含有要被处理的转义序列之字符串。

    %c           ASCII字符。显示相对应参数的第一个字符

    %d, %i    十进制整数

    %e          浮点格式

    %E          浮点格式

    %f           浮点格式

    %g          %e或%f转换,看哪一个较短,则删除结尾的零

    %G          %E或%f转换,看哪一个较短,则删除结尾的零

    %o           不带正负号的八进制值

    %s           字符串

    %u          不带正负号的十进制值

    %x          不带正负号的十六进制值,使用a至f表示10至15

    %X          不带正负号的十六进制值,使用A至F表示10至15

    %%         字面意义的%

    格式只指定了一个参数,但多出的参数仍然会按照该格式输出,format-string 被重用 printf "%s " aa bb 结果: aa bb printf "%s %s %s " a b c d e f g h i j k 结果: a b c d e f g h i k

    %d %s %c %f 格式替代符详解: d:data 数字 -- 对应位置参数必须是数字型,否则报错! s:str 字符串 -- 对应位置参数必须是字符串或者字符型,否则报错! c:char 字符 -- 对应位置参数必须是字符串或者字符型,否则报错! f:float 浮点 -- 对应位置参数必须是数字型,否则报错! 如:其中最后一个参数是 "def",%c 自动截取字符串的第一个字符作为结果输出。 $  printf "%d %s %c " 1 "abc" "def" 1 abc d

    Shell test 命令 Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。

    代码中的 [] 执行基本的算数运算: result=$[a+b] # 注意等号两边不能有空格

    if else-if else if else-if else 语法格式: if condition1 then     command1 elif condition2 then     command2 else     commandN fi

    for 循环 与其他编程语言类似,Shell支持for循环。 for循环一般格式为: for var in item1 item2 ... itemN do     command1     command2     ...     commandN done

    例如,顺序输出当前列表中的数字: for loop in 1 2 3 4 5 do     echo "The value is: $loop" done 输出结果: The value is: 1 The value is: 2 The value is: 3 The value is: 4 The value is: 5 顺序输出字符串中的字符: for str in 'This is a string' do     echo $str done 输出结果: This is a string

    while 语句 while循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件。其格式为: while condition do     command done 以下是一个基本的while循环,测试条件是:如果int小于等于5,那么条件返回真。int从0开始,每次循环处理时,int加1。运行上述脚本,返回数字1到5,然后终止。 #!/bin/sh int=1 while(( $int<=5 )) do         echo $int         let "int++" done 运行脚本,输出: 1 2 3 4 5

    使用中使用了 Bash let 命令,它用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量 let 命令是 BASH 中用于计算的工具,用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量。如果表达式中包含了空格或其他特殊字符,则必须引起来。 自加操作:let no++ 自减操作:let no-- 简写形式 let no+=10,let no-=20,分别等同于 let no=no+10,let no=no-20。 以下实例计算 a 和 b 两个表达式,并输出结果: #!/bin/bash

    let a=5+4 let b=9-3 echo $a $b 以上实例执行结果为: 9 6

    until 循环 until循环执行一系列命令直至条件为真时停止。

    case Shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下: case 值 in 模式1)     command1     command2     ...     commandN     ;; 模式2)     command1     command2     ...     commandN     ;; esac case工作方式如上所示。取值后面必须为单词in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。 取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。

    跳出循环 在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,Shell使用两个命令来实现该功能:break和continue。 break命令 break命令允许跳出所有循环(终止执行后面的所有循环)。 下面的例子中,脚本进入死循环直至用户输入数字大于5。要跳出这个循环,返回到shell提示符下,需要使用break命令。 #!/bin/bash while : do     echo -n "输入 1 到 5 之间的数字:"     read aNum     case $aNum in         1|2|3|4|5) echo "你输入的数字为 $aNum!"         ;;         *) echo "你输入的数字不是 1 到 5 之间的! 游戏结束"             break         ;;     esac done 执行以上代码,输出结果为: 输入 1 到 5 之间的数字:3 你输入的数字为 3! 输入 1 到 5 之间的数字:7 你输入的数字不是 1 到 5 之间的! 游戏结束

    continue continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。 对上面的例子进行修改: #!/bin/bash while : do     echo -n "输入 1 到 5 之间的数字: "     read aNum     case $aNum in         1|2|3|4|5) echo "你输入的数字为 $aNum!"         ;;         *) echo "你输入的数字不是 1 到 5 之间的!"             continue             echo "游戏结束"         ;;     esac done 运行代码发现,当输入大于5的数字时,该例中的循环不会结束,语句 echo "Game is over!" 永远不会被执行。

    esac case的语法和C family语言差别很大,它需要一个esac(就是case反过来)作为结束标记,每个case分支用右圆括号,用两个分号表示break。

    command > file 将输出重定向到 file。 command < file 将输入重定向到 file。 command >> file 将输出以追加的方式重定向到 file。

    cat aa.txt>>bb.txt 将文件aa追加到bb.txt

    文件的行数: awk '{print NR}' test1.sh|tail -n1 awk 'END{print NR}' test1.sh wc -l test1.sh

    wc命令   该命令用于统计指定文件中的字节数、字数、行数。该命令各选项含义如下:   -l 统计行数   -w 统计字数   -c 统计字节数

    wc text1.sh 结果如下: 行数、字数、字节数、文件名

    grep 命令   grep是(global search regular expression(RE) and print out the line的缩写,用于从文件面搜索包含指定模式的行并打印出来,它是一种强大的文本搜索工具,支持使用正则表达式搜索文本。grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被””引用,模板后的所有字符串被看作文件名。搜索结果送到屏幕,不影响原文件内容。   grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。   示例:   $ ls -l | grep '^a'   通过管道过滤ls -l输出的内容,只显示以a开头的行。   $ grep 'test' d*   显示所有以d开头的文件中包含test的行。   $ grep 'test' aa bb cc   显示在aa,bb,cc文件中匹配test的行。   $ grep '[a-z]/{5/}' aa   显示所有包含每个字符串至少有5个连续小写字符的字符串的行。   $ grep 'w/(es/)t.*/1' aa   如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(/1),找到就显示该行。如果用egrep或grep -E,就不用"/"号进行转义,直接写成'w(es)t.*/1'就可以了。

    ls -al|grep '^d'  :所有所有以字母d开头的行

    $ grep 'test' d*   :显示所有以d开头的文件中包含test的行。

    $ grep 'test' aa bb cc   显示在aa,bb,cc文件中匹配test的行。

    sort 功能:对文本文件中的各行进行排序 用法:sort 文件名 例:#sort 123.txt >456.txt 将123.txt排序后重定向到456.txt文件中。 18、uniq 功能:将重复行从输出文件中删除,只留下每条记录的唯一样本 语法: uniq 文件名 #uniq 456.txt文件中的重复行删除后输出

    find -name "aa.txt" 查找文件路径 、who(后面详讲) 功能:显示当前登录在系统上的用户信息。 uname 功能:显示当前的系统信息 #uname -a

    5、w 功能:查看其他登录的用户(who增强版) 第一行输出内容:当前时间,系统启动到现在的时间,登录用户的数目,系统在最近1秒、5秒和15秒的平均负载 第二行输出内容:登录帐号、终端名称、远程主机名、登录时间、空闲时间、JCPU、PCPU、当前正在运行进程的命令行。 *JCPU时间指的是和该终端(tty)连接的所有进程占用的时间 *PCPU时间则是指当前进程(即在WHAT项中显示的进程)所占用的时间

    whoami 功能:显示当前用户名 7、hostname 功能:显示系统的主机名 8、cal [月份] [年份] 功能:显示日历 9、bc 功能:计算器,使用quit退出 10、date 功能:显示或修改日期时间。

    11、df 功能:报告文件系统磁盘空间的使用情况 语法:df[参数] [参数] -h:用常见的格式显示出大小(例如:1K,23M,2G等) -t:只显示指定类型的文件系统 12、free 功能:查看当前内存和交换空间的使用情况

     ifconfig eth0  IP 设置第一个网卡的IP

    ifconfig eth0 192.168.120.140 broadcast 192.168.120.255 修改IP以及默认网关

    实例2:启动关闭指定网卡   命令:   ifconfig eth0 up   ifconfig eth0 down

    vi/vim 的使用 基本上 vi/vim 共分为三种模式,分别是命令模式(Command mode),插入模式(Insert mode)和底线命令模式(Last line mode)。 这三种模式的作用分别是: 命令模式: 用户刚刚启动 vi/vim,便进入了命令模式。 此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。 以下是常用的几个命令: i 切换到插入模式,以输入字符。 x 删除当前光标所在处的字符。 : 切换到底线命令模式,以在最底一行输入命令。 若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。 命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

    输入模式 在命令模式下按下i就进入了输入模式。 在输入模式中,可以使用以下按键: 字符按键以及Shift组合,输入字符 ENTER,回车键,换行 BACK SPACE,退格键,删除光标前一个字符 DEL,删除键,删除光标后一个字符 方向键,在文本中移动光标 HOME/END,移动光标到行首/行尾 Page Up/Page Down,上/下翻页 Insert,切换光标为输入/替换模式,光标将变成竖线/下划线 ESC,退出输入模式,切换到命令模式

    命令: uname -a 作用: 查看系统内核版本号及系统名称

  • 相关阅读:
    HearthBuddy投降插件2019-11-01的使用
    正则表达式在线分析 regex online analyzer
    Tips to write better Conditionals in JavaScript
    The fileSyncDll.ps1 is not digitally signed. You cannot run this script on the current system.
    Cannot capture jmeter traffic in fiddler
    JMETER + POST + anti-forgery token
    input type color
    HearthBuddy修改系统时间
    What are all the possible values for HTTP “Content-Type” header?
    UDK性能优化
  • 原文地址:https://www.cnblogs.com/playforever/p/8431763.html
Copyright © 2011-2022 走看看