zoukankan      html  css  js  c++  java
  • Linux 基础命令

    1. 将用户添加到sudo中

    root 登陆, vim /etc/sudoers添加如下:

    UserA   ALL=(ALL)       ALL
    UserB   ALL=(ALL)       ALL
    UserC   ALL=(ALL)       ALL

    要想使user在 sudo的时候不输入密码。

    1. #%wheels 那一行注释揭开

    2. 执行 gpasswd -a UserA wheel

    2.gzip: 将文件压缩到一个压缩包中

    #gzip -v a.txt

    -v:现实压缩的比例,压缩之后原文件消失。

    #gzip -d a.txt.gz

    -d 解压缩。

    zcat a.txt.gz

    查看压缩文件的内容

    #gzip folder/* 压缩子文件夹中所有文件使用 gzip folder/*/* 二级菜单在内的所有文件压缩

    变量的定义 

    a=1

    b=2

    变量值在当前的bash中有效,要想子进程中有效许将变量倒入到一个缓冲区中也就是环境变量。export

    如: a=1; export a; bash; echo $a

    变量类型的定义

    declar -iaxr

    i: int

    a: array

    x: export

    r: readonly

    declare -i num

    declare -a array

    array[1]=1

    echo ${array[1]}

    关于 $(), $(()), $ 和 ${}

    $用于变量的引用, 如 a=123 echo $a

    ${}用于输出数组元素 如: declare -a array ;  array[1]='a'; array[2]='b'; echo ${array[1]}则输出a

    $()用于执行括号内的命令 如: echo $(pwd)  和 echo pwd的区别

    $(())容易和上面的混合,他的作用是把括号内的内容作为运算副

    变量内容的删除和替换

    PATH='/usr/lib/gradle/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/Software/IDEA/idea-IU-141.1532.4/bin:/usr/lib/java/bin:/home/ygshen/.local/bin:/home/ygshen/bin'

    删除.local/bin:之前的 配置

    echo ${abc#/*local/bin:}这里#代表从最左侧的某个字符即/开始向右数0-N 个字符直到local/bin:结束,将查找到的最短匹配删除调

    结果: '/usr/lib/gradle/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/Software/IDEA/idea-IU-141.1532.4/bin:/usr/lib/java/bin:/home/ygshen/.local/bin:/home/ygshen/bin'

    如果改成 echo ${abc##/*local/bin:}结果将变成也即最长匹配

    '/usr/lib/gradle/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/Software/IDEA/idea-IU-141.1532.4/bin:/usr/lib/java/bin:/home/ygshen/.local/bin:/home/ygshen/bin'

    只保留最后一个设置: echo ${abc%:*bin}从最后一个:开始查找最短匹配

    只保留第一个配置 echo ${abc%%:*bin}从最后一个:开始查找最长匹配

    变量的替换

    abc='john shen is a big shen'

    echo ${abc/shen/SHEN} 之替换第一个匹配的字符

    echo ${ab//shen/SHEN}替换所有匹配的字符

     

    输入和输出

    1.sudo usera

    ll -al /home/usera /home/userb 1>~usera/file 2>~usera/file2

    1>或者2>代表覆盖

    1>> 或者2>>代表追加输出

    以上信息 1>代表输出流 2>代表错误流

    2. cat >~ygshen/file 键盘输入并且保存到文件中知道按 ctrl+d

    3. cat >~ygshen/file <~/.bashrc 将~/.bashrc中的内容输出到~ygshen/file中

    <代表输入流不写代表输入来自键盘

    4.cat>~ygshen/file <<eof键盘输入字符保存到~ygshen/file中,结束条件是输入eof字符并会场而不是ctrl+d

    5. echo /dev/null >~ygshen/.bashrc将文件制成空

     运算符 &&、||

    ls /opt/session-server && touch /opt/session-server/file.txt   - 如果存在目录就在目录下面新建一个文件

    ls /opt/session-server || mkdir /opt/session-server && touch /opt/session-server/file.txt   -接上面的,如果不存在就创建一个目录 然后目录里创建文件

    A&&B = A 成功的情况下才执行B

    A||B  = A成功了就不执行B 不成功才执行B

    管道:

    选取命令之 cut -

    echo $PATH | cut -d ':' -f 1    将PATH按照字符 ‘:’分割 取出数组第一个元素 这里是每行作一次切割的如下面的例子

    [ygshen@localhost my-service1]$ cat file.txt
    hello world;this is a test;
    Second line
    Third Line; Test
    [ygshen@localhost my-service1]$ cat file.txt | cut -d ';' -f 1
    hello world
    Second line
    Third Line
    [ygshen@localhost my-service1]$

    选取命令之 grep -  选取包含指定字符串的行

    last | grep unknown

    选取结果的排序和统计

    last | grep -d ' ' -f 1 | sort | uniq -c   : 查找所有登陆的帐号按'   '分割并取第一列,对去道德结果作排序并且统计每一个帐号的登陆次数

     

    Sed: 四个功能 -

    1. 删除 num1到num2 之间的文字 sed 'num1,num2d'

    2. 新增 num1后面新增一行  sed 'num1a this is a new line' 也可以新增 n 行 sed 'num1a this is a new line .....

    > another line....

    > third line'

    3. 替换: sed 'num1,num2c this is to replace lines between num1 and num2 with the text here given'

    4. 输出 sed 'num1,num2p' -n 这里参数-n 是不允许有重行的形式输出

    awk功能: 通过print的功能将每一行的字段列出来格式 awk '条件1{运行段如print} 条件2{运行字段}'

    举例 :  last -n 5 | awk '{print $1,$3}'

    有一个table

    Name score1 score2
    JOhn   1 2
    Bob 3333 34234

    生成一个统计文件, 表格保存在file.txt中

    cat file.txt | awk 'NR==1 {printf "%10s %10s %10s %10s ",$1,$2,$3,"total"} NR>=2 {printf "%10s %10d %10d %10f ",$1,$2,$3,$2+$3}'

    注意printf的使用以及格式的末尾 ,注意awk的格式

    显示所有文件并按照时间排序:

    ll -a | sort -n

  • 相关阅读:
    QTableView表格滚动条样式(QSS真是细致到家了)
    窗体间传递数据(跨控件跨类),三种情况与处理方法
    16Khz音频定时触发采样DMA存储过程
    两种解决Qt5显示中文乱码的方法(使用QStringLiteral和#pragma execution_character_set("utf-8")两种方法)
    C语言数组内存初始化
    13 Amazing Component Sets Driving Success In Delphi Berlin On Android And IOS
    不要短期利益,要长期利益;要创新,但要反对盲目创新
    有关FTPS和VNP的详解
    (十六)备忘录模式详解(都市异能版)
    百度云世界里的“七种武器”:PCS、BAE、Site App、ScreenX等
  • 原文地址:https://www.cnblogs.com/ygshen/p/4768029.html
Copyright © 2011-2022 走看看