• niaoge.html


    niaoge.html

    Linux常用指令

    来自《鸟哥的linux私房菜》,用于个人回忆


    查看目录下文件:

    ls

    参数 功能
    -a :全部的档案,连同隐藏档( 开头为 . 的档案) 一起列出来~
    -A :全部的档案,连同隐藏档,但不包括 . 与 .. 这两个目录,一起列出来~
    -d :仅列出目录本身,而不是列出目录内的档案数据
    -f :直接列出结果,而不进行排序 (ls 预设会以档名排序!)
    -F :根据档案、目录等信息,给予附加数据结构, 例如:*:代表可执行档; /:代表目录; =:代表 socket 档案; “”:代表 FIFO 档案;
    -h :将档案容量以人类较易读的方式(例如 GB, KB 等等)列出来;
    -i :列出 inode 位置,而非列出档案属性;
    -l :长数据串行出,包含档案的属性等等数据;
    -n :列出 UID 与 GID 而非使用者与群组的名称 (UID 与 GID 会在账号管理提到!)
    -r :将排序结果反向输出,例如:原本档名由小到大,反向则为由大到小;
    -R :连同子目录内容一起列出来;
    -S :以档案容量大小排序!
    -t :依时间排序
    --color=never :不要依据档案特性给予颜色显示;
    --color=always :显示颜色
    --color=auto :让系统自行依据设定来判断是否给予颜色
    --full-time :以完整时间模式 (包含年、月、日、时、分) 输出
    --time={atime,ctime} :输出 access 时间或 改变权限属性时间 (ctime)而非内容变更时间 (modification time)

    当然 以上参数可组合,例如感觉宝宝萌萌的对不对呀_

    ls -al
    ls -alF --color=never
    ls -al --full-time

    ll(two lower-case of L) == ls -l

    复制文件:

    cp file.xxx newfile.xxx

    详见《鸟哥》cp 标签页

    指令 功能
    -a :相当于 -pdr 的意思;
    -d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身;
    -f :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;
    -i :若目的檔(destination)已经存在时,在覆盖时会先询问是否真的动作!
    -l :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;
    -p :连同档案的属性一起复制过去,而非使用预设属性;
    -r :递归持续复制,用于目录的复制行为;
    -s :复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案;
    -u :若 destination 比 source 旧才更新 destination !

    example:

    1). cp ~/xxx.c xxx.cpp (复制家目录下的xxx.c文件到当前文件夹,并改其名为xxx.cpp)
    2). cp -a ...(复制属性)
    3). cp -r ...(复制整个目录)
    4). cp -s/-l ...(建立快捷方式) -s:指出链接方向
    5). cp -u ...(只复制有差异的地方)
    

    删除文件:

    rm file.xxx

    参数 功能
    -f :就是 force 的意思,强制移除;
    -i :互动模式,在删除前会询问使用者是否动作
    -r :递归删除啊!最常用在目录的删除了

    移动文件:

    mv —

    参数 功能
    -f :force 强制的意思,强制直接移动而不询问;
    -i :若目标档案 (destination) 已经存在时,就会询问是否覆盖!
    -u :若目标档案已经存在,且 source 比较新,才会更新 (update)

    mv old_name new_name(可以实现重命名的功能)
    rename man

    创建新文件夹:

    mkdir floder_name

    mkdir -p test/test1/test2/…(创建多级目录)
    mkdir -m 711 trstx (设置文件权限,若不加-m 系统自动设置为当下用户权限)
    rmdir (-p) floder_name (删除文件夹仅能删除空目录,加-p可删除多级空目录)
    rmdir -rf floder_name (删除文件夹及其下文件)

    改变群组、所有者、权限:

    chgrp group_name file.xxx /etc/group

    chown own_name:group_name file.xxx //同时改变所有者与群组,可添加 -R 递归更改 /etc/passwd

    chmod 777 file.xxx
    详见《鸟哥》-> Bookmarks -> chmod

    切换身份:

    su user_name

    注意:在root下使用该指令,然后 >exit 会返回root!!!
    

    切换目录

    操作 释义
    . 代表此层目录
    .. 代表上一层目录
    - 代表前一个工作目录
    ~ 代表『目前使用者身份』所在的家目录
    ~account 代表 account 这个使用者的家目录

    显示当前目录

    pwd (-p)

    PATH

    echo PATH()PATH="PATH”:/catolog/… (添加路径)

    压缩/解压

    tar -cvf file.tar /floder 只打包不压缩

    c:create建立打包 file.tar 为打包后的名字 /floder 为将要打包的文件/夹

    tar -zcvf …. 打包并以gzip方式压缩

    tar -jcvf …. 打包并以bzip2方式压缩

    解压的时候将 c 换成 x即可!

    另:『 tar 用来作备份是很重要的指令! 』而由于 tar 整合过后的档案我们通常会取名为 .tar ,而如果还含有 gzip 的压缩属性,那么就取名为 .tar.gz 啰!取这个文件名只是为了方便我们记忆这个档案是什么属性罢了!并没有实际的意义在!
    但为了好区分,还是输后缀吧!

    Vim/Vi 命令

    一般模式: 移动光标的方法
    命令 释义
    h 或 向左方向键(←) 光标向左移动一个字符
    j 或 向下方向键(↓) 光标向下移动一个字符
    k 或 向上方向键(↑) 光标向上移动一个字符
    l 或 向右方向键(→) 光标向右移动一个字符
    如果想要进行多次移动的话,例如向下移动 30 行,可以使用 “30j” 或 “30↓” 的组合按键, 亦即加上想要进行的次数(数字)后,按下动作即可!
    [Ctrl] + [f] 屏幕『向下』移动一页,相当于 [Page Down]按键 (常用)
    [Ctrl] + [b] 屏幕『向上』移动一页,相当于 [Page Up] 按键 (常用)
    [Ctrl] + [d] 屏幕『向下』移动半页
    [Ctrl] + [u] 屏幕『向上』移动半页
    + 光标移动到非空格符的下一列
    - 光标移动到非空格符的上一列
    n 那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20 则光标会向后面移动 20 个字符距离。
    0 这是数字『 0 』:移动到这一行的最前面字符处 (常用)
    $ 移动到这一行的最后面字符处(常用)
    H 光标移动到这个屏幕的最上方那一行
    M 光标移动到这个屏幕的中央那一行
    L 光标移动到这个屏幕的最下方那一行
    G 移动到这个档案的最后一行(常用)
    nG n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)
    gg 移动到这个档案的第一行,相当于 1G 啊! (常用)
    n n 为数字。光标向下移动 n 行(常用)
    一般模式: 搜寻与取代
    /word 向光标之下寻找一个字符串名称为 word 的字符串。例如要在档案内搜寻 vbird 这个字符串,就输入 /vbird 即可! (常用)
    ?word 向光标之上寻找一个字符串名称为 word 的字符串。
    n 这个 n 是英文按键。代表『重复前一个搜寻的动作』的意思。举例来说, 如果刚刚我们执行 /vbird 去向下搜寻 vbird 这个字符串,则按下 n 后,会向下继续搜寻下一个名称为 vbird 的字符串。如果是执行 ?vbird 的话,那么按下 n 则会向上继续搜寻名称为vbird 的字符串!
    N 这个 N 是英文按键。与 n 刚好相反,为『反向』进行前一个搜寻动作。 例如 /vbird 后,按下 N 则表示『向上』搜寻 vbird 。
    :n1,n2s/word1/word2/g n1 与 n2 为数字。在第 n1 与 n2 行之间寻找 word1 这个字符串,并将该字符串取代为 word2 !举例来说,在 100 到 200 行之间搜寻 vbird 并取代为 VBIRD 则:『:100,200s/vbird/VBIRD/g』。(常用)
    :1,$s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为word2 !(常用)
    :1,$s/word1/word2/gc 从第一行到最后一行寻找 word1 字符串,并将该字符串取代为word2 !且在取代前显示提示字符给使用者确认 (conform) 是否需要取代!(常用)
    一般模式: 删除、复制与贴上
    x, X 在一行字当中,x 为向后删除一个字符 (相当于 [del] 按键), X为向前删除一个字符(相当于 [backspace] 亦即是退格键) (常用)
    nx n 为数字,连续向后删除 n 个字符。举例来说,我要连续删除 10个字符, 『10x』。
    dd 删除游标所在的那一整列(常用)
    ndd n 为数字。删除光标所在的向下 n 列,例如 20dd 则是删除 20 列(常用)
    d1G 删除光标所在到第一行的所有数据
    dG 删除光标所在到最后一行的所有数据
    d$ 删除游标所在处,到该行的最后一个字符
    d0 那个是数字的 0 ,删除游标所在处,到该行的最前面一个字符
    yy 复制游标所在的那一行(常用)
    nyy n 为数字。复制光标所在的向下 n 列,例如 20yy 则是复制 20 列(常用)
    y1G 复制光标所在列到第一列的所有数据
    yG 复制光标所在列到最后一列的所有数据
    y0 复制光标所在的那个字符到该行行首的所有数据
    y$ 复制光标所在的那个字符到该行行尾的所有数据
    p, P p 为将已复制的数据在光标下一行贴上,P 则为贴在游标上一行!举例来说,我目前光标在第 20 行,且已经复制了 10 行数据。则按下 p 后, 那 10 行数据会贴在原本的 20 行之后,亦即由 21行开始贴。但如果是按下 P 呢? 那么原本的第 20 行会被推到变成 30 行。 (常用)
    J 将光标所在列与下一列的数据结合成同一列
    c 重复删除多个数据,例如向下删除 10 行,[ 10cj ]
    u 复原前一个动作。(常用)
    [Ctrl]+r 重做上一个动作。(常用)
    这个 u 与 [Ctrl]+r 是很常用的指令!一个是复原,另一个则是重做一次~ 利用这两个功能按键,您的编辑,嘿嘿!很快乐的啦!
    . 不要怀疑!这就是小数点!意思是重复前一个动作的意思。 如果您想要重复删除、重复贴上等等动作,按下小数点『.』就好了! (常用)
    进入编辑模式
    i, I 插入:在目前的光标所在处插入输入之文字,已存在的文字会向后退; 其中, i 为『从目前光标所在处插入』, I 为『在目前所在行的第一个非空格符处开始插入』。 (常用)
    a, A a 为『从目前光标所在的下一个字符处开始插入』, A 为『从光标所在行的最后一个字符处开始插入』。(常用)
    o, O 这是英文字母 o 的大小写。o 为『在目前光标所在的下一行处插入新的一行』; O 为在目前光标所在处的上一行插入新的一行! (常用)
    r, R 取代:r 会取代光标所在的那一个字符;R 会一直取代光标所在的文字,直到按下 ESC 为止;(常用)
    上面这些按键中,在 vi 画面的左下角处会出现『—INSERT—』或『—REPLACE—』的字样。 由名称就知道该动作了吧!!特别注意的是,我们上面也提过了,你想要在档案里面输入字符时, 一定要在左下角处看到 INSERT/REPLACE 才能输入喔!
    Esc 退出编辑模式,回到一般模式中(常用)
    指令列命令模式
    :w 将编辑的数据写入硬盘档案中(常用)
    :w! 若档案属性为『只读』时,强制写入该档案。不过,到底能不能写入, 还是跟您对该档案的档案权限有关啊!
    :q 离开 vi (常用)
    :q! 若曾修改过档案,又不想储存,使用 ! 为强制离开不储存档案。注意一下啊,那个惊叹号 (!) 在 vi 当中,常常具有『强制』的意思~
    :wq 储存后离开,若为 :wq! 则为强制储存后离开 (常用)
    :e! 将档案还原到最原始的状态!
    ZZ 若档案没有更动,则不储存离开,若档案已经经过更动,则储存后离开!
    :w [filename] 将编辑的数据储存成另一个档案(类似另存新档)
    :r [filename] 在编辑的数据中,读入另一个档案的数据。亦即将 『filename』 这个档案内容加到游标所在行后面
    :n1,n2 w [filename] 将 n1 到 n2 的内容储存成 filename 这个档案。
    :! command 暂时离开 vi 到指令列模式下执行 command 的显示结果!例如『:! ls /home』即可在 vi 当中察看 /home 底下以 ls 输出的档案信息!
    :set nu 显示行号,设定之后,会在每一行的前缀显示该行的行号
    :set nonu 与 set nu 相反,为取消行号!
    Vim额外功能
    区块选择(Visual Block)
    v 字符选择,会将光标经过的地方反白选择!
    V 行选择,会将光标经过的行反白选择!
    [Ctrl]+v 区块选择,可以用长方形的方式选择资料
    y 将反白的地方复制起来
    d 将反白的地方删除掉
    多档案编辑的按键
    :n 编辑下一个档案
    :N 编辑上一个档案
    :files 列出目前这个 vim 的开启的所有档案
    多窗口情况下的按键功能
    :sp [filename] 开启一个新窗口,如果有加 filename, 表示在新窗口开启一个新档案,否则表示两个窗口为同一个档案内容(同步显示)。
    [ctrl]+wj 按键的按法是:先按下 [ctrl] 不放, 再按下 w 后放开所有的按键,然后再按下 j ,则光标可移动到下方的窗口。
    [ctrl]+wk 同上,不过光标移动到上面的窗口。
    [ctrl]+wq 其实就是 :q 结束离开啦! 举例来说,如果我想要结束下方的窗口,那么利用 [ctrl]+wj 移动到下方窗口后,按下 :q 即可离开, 也可以按下 [ctrl]+wq 啊!

    Vim环境设定参数

    设定 释义
    :set nu 还记得这个吧?!就是设定行号啊!取消的话,就是 :set nonu
    :set hlsearch 这个就是设定是否将搜寻的字符串反白的设定值。 默认值就是hlsearch ,如果不想要反白,就 :set nohlsearch 。
    :set autoindent 是否自动缩排?autoindent 就是自动缩排, 不想要缩排就 :setnoautoindent 。
    :set backup 是否自动储存备份档?一般是 nobackup 的, 如果设定 backup 的话,那么当你更动任何一个档案时,则源文件会被另存成一个档名为filename~ 的档案。 举例来说,我们编辑 hosts ,设定 :setbackup ,那么当更动 hosts 时,在同目录下,就会产生 hosts~ 文件名的档案,记录原始的 hosts 档案内容~
    :set ruler 还记得我们提到的右下角的一些状态列说明吗? 这个 ruler 就是在显示或不显示该设定值的啦!
    :set showmode 这个则是,是否要显示 —INSERT— 之类的字眼在左下角的状态列。
    :set backspace=(012) 一般来说, 如果我们按下 i 进入编辑模式后,可以利用退格键(backspace) 来删除任意字符的。 但是,某些 distribution 则不许如此。此时,我们就可以透过 backspace 来设定啰~ 当backspace 为 2 时,就是可以删除任意值;0 或 1 时,仅可删除刚刚输入的字符, 而无法删除原本就已经存在的文字了!
    :set all 显示目前所有的环境参数设定值。
    :syntax (off/on) 是否依据程序相关语法显示不同颜色? 举例来说,在编辑一个纯文字文件时,如果开头是以 # 开始,那么该行就会变成蓝色。 如果您懂得写程序,那么这个 :syntax on 还会主动的帮您除错呢!但是,如果您仅是编写纯文本文件,要避免颜色对您的屏幕产生的干扰,则可以取消这个设定 :syntax off 。

    Shell

    什么是Shell

    一句话:Shell可以沟通kernel(内核)操控硬件进行工作.所以Shell大概就相当于语言.

    为什么学习Shell

    X Window 的接口虽然亲善,功能虽然强大,而 web 接口的工具也可以提供我们很友善的服务,但是毕竟他是将所有利用到的套件都整合在一起的一个套件而已,并非是一个完整的套件,所以某些时候当你升级或者是使用其它套件管理模块( 例如 tarball 而非 rpm档案等等 )时,就会造成设定的困扰了。

    此外,远程联机时,文字接口的传输速度一定比较快, 而且,较不容易出现断线或者是信息外流的问题,因此, shell 真的是得学习的一项工具。而且,他可以让您更深入 Linux ,更了解他, 而不是只会按一按鼠标而已!所谓『天助自助者!』多摸一点文字模式的东西,会让你与 Linux 更亲近呢!

    Shell类型

    大概有一下几种.(不同Shell语法不尽相同,功能相似.算是殊途同归)

    1. Bourne SHell (sh)
    2. C SHell(在 Sun 里头预设的)
    3. K SHell(商业上常用)
    4. TCSH 等等 TCSH编程入门
    5. Bash(Bourne Again SHell):Bourne Shell 的增强版本,Linux所用Shell教程

    Shell所在文件夹 /etc/shells
    通过一下指令查看:

    $ cd //etc/
    $ cat -n shell

    得到

    1 # /etc/shells: valid login shells
    2 /bin/sh
    3 /bin/dash
    4 /bin/bash
    5 /bin/rbash

    Bash的功能

    1. 命令编修能力(类似 DOS 的 doskey 功能)

    记录曾经使用过的指令,存于 ~/.bash_history 文件中
    在terminal内 按PgUP(上)/PgDn(下)键 选择最近使用过得指令

    2. 命令与档案补全功能:

    [Tab]键

    • [Tab] 接在一串指令的第一个字的后面,则为命令补全;
    • [Tab] 接在一串指令的第二个字以后时,则为『档案补齐』
    • [Tab][Tab](两次Tab) 输出所有的可执行指令了

    3. 命令别名(alias)设定功能:
    设置命令简写
    查看目前存在简写

    $ alias

    自定义简写

    alias lm=’ls -al’

    4. 工作控制(jobs)、前景背景控制:

    [Ctrl] + c 来停掉该程序!
    待续

    5. Shell scripts 的强大功能:

    待续

    6. 万用字符!
    显示当前目录下所有以 sh 开头的档案/文件/文件夹

    $ ll sh*

  • 相关阅读:
    kaldi的TIMIT实例二
    kaldi的TIMIT实例一
    kaldi脚本注释二
    kaldi脚本注释一
    [转]kaldi特征和模型空间转换
    [转]kaldi中的特征提取
    [转]kaldi上的深度神经网络
    [转]语音识别中区分性训练(Discriminative Training)和最大似然估计(ML)的区别
    [转]kaldi中的在线识别----Online Recognizers
    [转]决策树在Kaldi中如何使用
  • 原文地址:https://www.cnblogs.com/pualus/p/6024592.html
Copyright © 2020-2023  润新知