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

    登录Linux系统后,呈现在眼前的是这样一个界面:
    fs@ehbio:~$
    首先解释下出现的这几个字母和符号:
    fs:用户名
    ehbio:如果是登录的远程服务器,则为宿主机的名字
    ~:代表家目录, 在我们进入新的目录后,这个地方会跟着改变
    $:用来指示普通用户输入命令的地方;对根用户来说一般是 #
     
    Linux命令行格式:命令(空格)【选项】(空格)参数1 参数2
    man 查询某一命令的具体参数,例如: man wget
    1.创建、删除与复制文件、文件夹
    mkdir 创建文件夹mkdir = make directory
    -p选项(--parents):创建一个目录的时候,若其父目录不存在,则自动创建,而不是默认的报错。例如:
    mkdir /home/a/b
    若/home目录下不存在a目录,则会报错。
    加上-p选项后,就会先建立a目录,然后在a目录下再建立b目录
     
    批量创建文件
    touch linux-{001..100}
    # 或
    touch linux-`seq 100`
     
    rmdir 删除空目录
    cd 目录切换(区别相对路径与绝对路径)cd = Change Directory
    cd #切换到家目录
    cd /home/usrs #切换到/home/usrs目录
    cd .. #返回上级目录
    cd ../.. #返回上上级目录
    cp 复制文件cp = CoPy
    cp old_file new_file
    -r 拷贝文件夹时的参数,递归拷贝
    mv 重命名或移动文件、文件夹mv = MoVe
    mv file_old_name file_new_name #文件重命名
    mv folder_old_neme folder_new_name #文件夹重命名
    mv file new_folder/ #将文件移动到新目录
    rm 删除文件、文件夹rm = ReMove
    rm file #删除文件
    rm -r folder #删除文件夹
    删除一个目录和其中的子文件(子目录)
    rm -rf 目录名
    -f --force
     
    rename 进行文件批量重命名
    2.读写文件、文件夹
    ls 显示文件夹中文件列表ls = LiSt
    -l 长格式列出
    -a 显示所有文件,包括隐藏文件和目录(所有以“.”为开始的文件和目录为隐藏文件)
    -F 会在每个文件名后附上一个字符以阐明该文件的类型
    -h 参数是更加人性化打印文件的尺寸大小,单位是G,M,K。否者显示文件的字节大小
    ls -la #显示全部详细格式(列出当前目录中的所有文件和目录,包括隐藏文件和目录)
    ll #显示文件详细信息(ll是“ls -lh"的别名)
    cat 直接查看文件cat = CATenate
    在这与<<END连用用于读入大段数据。输入cat <<END之后,回车,会看到终端出现一个大于号,大于号后面可以输入内容,再回车,继续输入内容,直到我们输入END,输入过程结束,我们输入的内容都显示在了屏幕上
    cat <<END > test.fa
    > >SOX2
    > ACGTCGGCGGAGGGTGGSCGGGGGGGGAGAGGT
    > SSSS
    > >OCT4
    > SLJLJLJL
    > SLL
    > >NANOG
    > END
    cat主要有三大功能:
    # 一次显示整个文件
    cat filename
    # 从键盘创建一个文件,只能创建新文件,不能编辑已有文件
    cat > filename  
    # 将几个文件合并为一个文件
    cat file1 file2 > file
     
    more/less 翻页查看文件
    q退出
    上下箭头、空格翻页
    两个有意思的命令,tac:文件翻转;rev:每列反转
    cat <<END | tac
    > first
    > second
    > third
    > END
    third
    second
    first
    cat <<END | rev
    > abcde
    > xyz
    > END
    edcba
    zyx
    sed 编辑文件sed = Stream EDitor
    sed ‘s/A/a/g’ file #将文件中所有的A替换为a
    sed -n ‘3,6 p’ file #打印第3到6行
    sed ‘5 q’ file #打印前5行
    > 重定向,将终端结果输出给文件,会创建新文件或者覆盖原文件
    sed ‘s/A/a/g’ file > new_file
    >> 重定向,将终端结果输出给文件,内容会加在原文件内容尾部
    sed ‘5 q’ file >> new_file
    # sed =先输出行号,再输出每行的内容
    $ echo "a b c" | tr ' ' '
    ' | sed =
    1
    a
    2
    b
    3
    c
    # N: 表示读入下一行;sed命令每次只读一行,加上N之后就是缓存了第2行,所有的操作都针对第一行
    # s: 替换;把换行符替换为	
    ct@ehbio:~$ echo "a b c" | tr ' ' '
    ' | sed = | sed 'N;s/
    /	/' 
    1    a
    2    b
    3    c
    # s: 替换;把读取的奇数行行首加一个'>'(偶数行相当于被隐藏了)
    ct@ehbio:~$ echo "a b c" | tr ' ' '
    ' | sed = | sed 'N;s/^/>/'
    >1
    a
    >2
    b
    >3
    c
    ln(link) 给文件建立快捷方式 (ln -s source_file target 创建软连接)
    在建立软连接时,原文件要使用全路径。全路径指以/开头的路径。
    建立软连接,是为了在不增加硬盘存储的情况下,简化文件访问方式的一个办法。把其它文件夹下的文件链接到当前目录,使用时只需要写文件的名字就可以了,不需要再写长串的目录了。
    ../:表示上一层目录;../../:表示上面两层目录
     
    pwd (print working directory) 输出当前所在的目录
     
    `为键盘Esc下第一个按键 (与家目录~符号同一个键),写在反引号内的命令会被运行,运行结果会放置在反引号所在的位置
    # 建立软连接,把当前目录下的ehbio2.fa,链接到上一层目录的data下面
    # 这是一个无效的软连接
    ct@ehbio:~/ehbio_project$ ln -s ehbio2.fa ../data
    
    # 在使用ls查看时,无效软连接的文件名下面是黑色的背景
    ct@ehbio:~/ehbio_project$ ls -l ../data/
    总用量 4
    lrwxrwxrwx 1 ct ct   9 6月   9 17:55 ehbio2.fa -> ehbio2.fa
    -rw-rw-r-- 1 ct ct 284 6月   8 14:48 first.fa
    
    # 建立软连接时,原始文件一定使用全路径。全路径指以/开头的路径
    ct@ehbio:~/ehbio_project$ ln -s /home/ct/ehbio_project/ehbio2.fa ../data
    ln: 无法创建符号链接" ../data/ehbio2.fa" : 文件已存在
    # 上面的错误信息是,已经存在这么一个链接了(虽然是无效的),但再建新的链接时还会提示
    # 使用`-f`(force)强制覆盖已有的链接
    # 通常为了简化写法,使用`pwd`代替全路径 ct@ehbio:~/ehbio_project$ ln -fs `pwd`/ehbio2.fa ../data # 再次查看时,就正常了。文件名下面没有了背景色,并且有个右箭头指向原始文件 # `lrwxrwxrwx`中的`l`表示软连接 ct@ehbio:~/ehbio_project$ ls -l ../data/ 总用量 4 lrwxrwxrwx 1 ct ct 32 6月 9 17:56 ehbio2.fa -> /home/ct/ehbio_project/ehbio2.fa -rw-rw-r-- 1 ct ct 284 6月 8 14:48 first.fa
    3.文件信息提取
    wc 查看文件行数、字数wc = Word Count
    -c 统计字节数
    -l 统计行数
    -w 统计字数
    wc -l file #查看文件行数
    wc -w file #查看文件字数
    head 查看文件前几行,默认为10行
    head -n [N] file #查看文件前N行
    tail 查看文件后几行
    tail -n [N] file #查看文件后N行
    cut 取出文件中的特定列或字符
    cut -f [N] file #取出第N列
    cut -d “;” -f [N] file #以”;”作为输入字段的分隔符(默认为制表符tab),取出第N列。如果一行没有指定的分隔符,整行都为第一列
    sort 排序
    sort -n file #按照数值排序(默认为按照ASCII码排序)
    sort -k start[,stop] file #按照指定的字段进行排序;start指定开始处字段,stop指定结尾处字段,如果省略stop,默认到行尾
    -r --reverse 倒序排序
    -t --field-separator 设置字段分隔符
     
    uniq 去重复,排序完才可以使用uniq = UNIQue
    uniq -c #去重复并且计算重复频率
    grep 文件中关键词搜索,返回行grep = global regular expression print
    grep ‘CDS’ file #显示匹配上 ‘CDS’ 的所有行
    grep -v ‘CDS’ file #显示没有匹配上’CDS’的所有行
    grep -w ‘CDS’ file #必须与整个字匹配,如果另外有’CDSs’这样的字符串,就不会与之匹配
    grep -x ‘CDS’ file #仅匹配整行,即只显示整行就是’CDS’的所有行
    # 获取包含>的行的行数 (-c: count lines)
    grep -c '>' ehbio.fa
    # 4
    | 管道,命令粘合剂,可将某命令的结果输出给另一个命令
    head -n 20 file | tail -n 10
    cut -f 3 file | sort | uniq -c
    # tr是用于替换字符的,把空格替换为换行,文字就从一行变为了一列
    $ echo "1 2 3" | tr ' ' '
    '
    1
    2
    3
    4.查找文件
    which 寻找可执行文件,显示路径
    whereis 寻找特定文件
    locate 按照关键词搜索文件
     
    5. 查看、修改文件权限
    chmod 修改文件的访问权限,分为数字模式和符号模式
    数字模式:
    chmod 755 file
    chmod -R 755 folder #-R 修改该目录中所有文件的权限
    三位数分别表示文件所有者u (user),用户组g (group),其他人o (other)
    r表示可读,w表示可写,x表示可执行
    用数字表示:可读r=1,可写w=2,可执行x=4
    例如:777表示所有用户对文件具有读、写、执行权限;755表示文件所有者对文件具有可读、可写、可执行权限,其他用户只具有可读、可执行权限
    符号模式:
    chmod u+x,go=rx file #使file文件的所有者加上可执行权限,将用户组和其他人权限设置为可读和可执行
    chmod o-x file #使其他人对file文件除去可执行权限
    chmod -R a+x folder #使所有人对folder文件夹加上可执行权限
    符号:+加入,-除去,=设置
     
    6.文件、文件夹的打包,压缩与解压缩
    gzip压缩文件
    -c 将输出写到标准输出上,并保留原文件
    -d或--decompress 将压缩文件解压
    -r或--recursive  递归处理,将指定目录下的所有文件及子目录一并处理
    gzip file
    gunzip 解压缩文件(.gz文件)
    gunzip file.gz
    tar 打包压缩文件、文件夹的产生与解压缩
    tar -zcv -f folder.tar.gz folder #打包压缩文件夹(gzip格式)
    tar -jcv -f folder.tar.gz folder #打包压缩文件夹(bzip2格式)
    tar –ztv -f folder.tar.gz #查看压缩文件夹中的文件名(gzip格式)
    tar –jtv -f folder.tar.gz #查看压缩文件夹中的文件名(bzip2格式)
    tar -zxv –f folder.tar.gz #打开包并解压缩(gzip格式)
    tar -jxv –f folder.tar.gz #打开包并解压缩(bzip2格式)
    -z 压缩(gzip格式)
    -j 压缩(bzip2格式)
    -c 打包
    -v 显示过程
    -f 新建的压缩文件名
    -t 查看压缩包里的文件名
    -x 解压缩
     
    zip解压缩
    unzip yasuo.zip
     
    7. 系统及进程
    top 监视计算机使用情况
    ctrl-c 终止当前进程
    ctrl-z 暂停当前进程
    bg 让暂停的进程在后台继续运行
    fg 把后台运行的进程调到前台
    ps 列出所有用户的进程
    ps -e #列出所有的用户的进程
    ps -f #列出详细的列表
    kill 终止特定进程
    kill PID_list #终止PID进程
    date 显示系统的时间和日期,可用于为程序运行时长进行计时
     
    8.文本编辑 Vi /Vim
    3种工作模式: 编辑模式、 一般模式(Visual)、命令模式
    模式切换方法:
    编辑模式到一般模式: 按 Esc
    一般模式到编辑模式: 输入 “i、a、o”等
    一般模式到命令模式: 输入“:、/、?”
    1. 一般模式下:
    上下左右移动光标: 键盘方向键
    屏幕向下移动半页: ctrl+d
    屏幕向上移动半页: ctrl+u
    移动到当前行的最前面字符处: ^ 或者 0
    移动到当前行的最后面字符处: $
    移动到文件的第一行: gg
    移动到文件的最后一行: G
    移动到文件的第 n 行: n
    复制: y
    复制: nyy (将当前行开始的 n 行内容复制到缓冲区)
    粘贴: p
    粘贴: p (将缓冲区的内容复制到光标所在处)
    删除: d
    删除: ndd (删除当前行及其后 n-1 行)
    n 移动到下一个 string 字符串
    N 移动到上一个 string 字符串
    取消前一次操作: u
    重做前一次操作: ctrl+r
    查找字符串:
    /string #向光标之下查找字符串 string
    ?string #向光标之上查找字符串 string
    替换字符串:
    :%s/string1/string2/
    2. 命令模式下:
    文件存盘: :w
    存盘并退出: :wq
    不存盘退出::q!
    打开文件: :r file_name
    新建文件: :e file_name
    文件另存为 : :w file_name
    移动到指定的行处: :n
    鼠标定位: :set mouse=a
    自动缩进: :set autoindent
    显示行号: :set number
    执行 shell 命令: :!command
    3.编辑模式下:
    可进行文本编辑。
     
    多行删除
    首先在命令模式下,输入“:set nu”显示行号;通过行号确定你要删除的行;命令输入“:32,65d”,回车键,32-65行就被删除了
     
    在Linux命令行中, "." 可代表当前目录,".."可代表上一层目录
     
    批量修改文件夹权限
    先进入目录,举例为www
    cd /www
    然后递归设置文件夹(目录)权限为755
    find -type d|xargs chmod 755
    同样,把目录下的所有文件权限递归地改成644可以这样执行
    find -type f|xargs chmod 644
  • 相关阅读:
    Sqlite—修改语句(Update)
    Python—图形界面开发
    Django—模型
    Sqlite—删除语句(Delete)
    Shell—详解$( )、$(( ))、``与${ }的区别
    Shell—详解$0、$1、$2、$#、$*、$@、$?、$$变量
    排名靠前的博客
    系统架构--逻辑层
    互联网系统的通用架构笔记
    各类开源协议总结
  • 原文地址:https://www.cnblogs.com/freescience/p/7271997.html
Copyright © 2011-2022 走看看