zoukankan      html  css  js  c++  java
  • linux 常用命令

    1、创建文件夹       mkdir [选项] DirName        

     -m    用于对新建目录设置存取权限,也可以用 chmod 命令进行设置。

     -p     需要时创建上层文件夹(或目录),如果文件夹(或目录)已经存在,则不视为错误。

    例一:在桌面下面创建以“demo”命名的文件夹。  

        mkdir 桌面/demo

    例二:在桌面下面创建以“demo”命名的文件夹,并且给文件夹赋权限,权限为123。

         mkdir  123  桌面/demo

     2、删除文件夹      rm [选项] DirName

    -i 删除前逐一询问确认。

    -f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。

    -r 将目录及以下之档案亦逐一删除

     例一:删除所有C语言程序文档;删除前逐一询问确认。

    rm -i *.c

    例二:将 Finished 子目录及子目录中所有档案删除。

    rm -r Finished

    3、vi命令       

    vi filename :打开或新建文件,并将光标置于第一行首

    vi +n filename :打开文件,并将光标置于第n行首

    vi + filename :打开文件,并将光标置于最后一行首

    vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处

    vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filename

    vi filename....filename :打开多个文件,依次进行编辑

    4、光标移动命令

    h :光标左移一个字符

    l :光标右移一个字符

    space:光标右移一个字符

    Backspace:光标左移一个字符

    k或Ctrl+p:光标上移一行

    j或Ctrl+n :光标下移一行

    Enter :光标下移一行

    w或W :光标右移一个字至字首

    b或B :光标左移一个字至字首

    e或E :光标右移一个字至字尾

    ) :光标移至句尾

    ( :光标移至句首

    }:光标移至段落开头

    {:光标移至段落结尾

    nG:光标移至第n行首

    n+:光标下移n行

    n-:光标上移n行

    n$:光标移至第n行尾

    H :光标移至屏幕顶行

    M :光标移至屏幕中间行

    L :光标移至屏幕最后行

    0:(注意是数字零)光标移至当前行首

    $:光标移至当前行尾

    5、屏幕滚动命令

    Ctrl+u:向文件首翻半屏

    Ctrl+d:向文件尾翻半屏

    Ctrl+f:向文件尾翻一屏

    Ctrl+b;向文件首翻一屏

    nz:将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。

    6、插入文本命令

    i :在光标前

    I :在当前行首

    a:光标后

    A:在当前行尾

    o:在当前行之下新开一行

    O:在当前行之上新开一行

    r:替换当前字符

    R:替换当前字符及其后的字符,直至按ESC键

    s:从当前光标位置处开始,以输入的文本替代指定数目的字符

    S:删除指定数目的行,并以所输入文本代替之

    ncw或nCW:修改指定数目的字

    nCC:修改指定数目的行

    7、删除命令

     ndw或ndW:删除光标处开始及其后的n-1个字

     do:删至行首

     d$:删至行尾

     ndd:删除当前行及其后n-1行

     x或X:删除一个字符,x删除光标后的,而X删除光标前的

     Ctrl+u:删除输入方式下所输入的文本

    8、搜索及替换命令

    /pattern:从光标开始处向文件尾搜索pattern

    ?pattern:从光标开始处向文件首搜索pattern

    n:在同一方向重复上一次搜索命令

    N:在反方向上重复上一次搜索命令

    :s/p1/p2/g:将当前行中所有p1均用p2替代

    :n1,n2s/p1/p2/g:将第n1至n2行中所有p1均用p2替代

    :g/p1/s//p2/g:将文件中所有p1均用p2替换

    9、结束

    esc退出编辑

    :wq+回车 退出vi

     10、lsof 命令        lsof [options] filename

    COMMAND:进程的名称

    PID:进程标识符

    USER:进程所有者

    FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等

    TYPE:文件类型,如DIR、REG等

    DEVICE:指定磁盘的名称

    SIZE:文件的大小

    NODE:索引节点(文件在磁盘上的标识)

    NAME:打开文件的确切名称

    lsof  filename 显示打开指定文件的所有进程

    lsof -a 表示两个参数都必须满足时才显示结果

    lsof -c string   显示COMMAND列中包含指定字符的进程所有打开的文件

    lsof -u username  显示所属user进程打开的文件

    lsof -g gid 显示归属gid的进程情况

    lsof +d /DIR/ 显示目录下被进程打开的文件

    lsof +D /DIR/ 同上,但是会搜索目录下的所有目录,时间相对较长

    lsof -d FD 显示指定文件描述符的进程

    lsof -n 不将IP转换为hostname,缺省是不加上-n参数

    lsof -i 用以显示符合条件的进程情况

    lsof -i[46] [protocol][@hostname|hostaddr][:service|port]

                46 --> IPv4 or IPv6

                protocol --> TCP or UDP

                hostname --> Internet host name

                hostaddr --> IPv4地址

                service --> /etc/service中的 service name (可以不只一个)

                port --> 端口号 (可以不只一个)

    例一: 查看22端口现在运行的情况

    lsof -i :22

    例二:查看所属root用户进程所打开的文件类型为txt的文件:

    lsof -a -u root -d txt

    例三:查找谁在使用文件系统

    lsof  /GTES11/

    恢复删除的文件

    当Linux计算机受到入侵时,常见的情况是日志文件被删除,以掩盖攻击者的踪迹。管理错误也可能导致意外删除重要的文件,比如在清理旧日志时,意外地删除了数据库的活动事务日志。有时可以通过lsof来恢复这些文件。

    当进程打开了某个文件时,只要该进程保持打开该文件,即使将其删除,它依然存在于磁盘中。这意味着,进程并不知道文件已经被删除,它仍然可以向打开该文件时提供给它的文件描述符进行读取和写入。除了该进程之外,这个文件是不可见的,因为已经删除了其相应的目录索引节点。

    在/proc 目录下,其中包含了反映内核和进程树的各种文件。/proc目录挂载的是在内存中所映射的一块区域,所以这些文件和目录并不存在于磁盘中,因此当我们对这些文件进行读取和写入时,实际上是在从内存中获取相关信息。大多数与 lsof 相关的信息都存储于以进程的 PID 命名的目录中,即 /proc/1234 中包含的是 PID 为 1234 的进程的信息。每个进程目录中存在着各种文件,它们可以使得应用程序简单地了解进程的内存空间、文件描述符列表、指向磁盘上的文件的符号链接和其他系统信息。lsof 程序使用该信息和其他关于内核内部状态的信息来产生其输出。所以lsof 可以显示进程的文件描述符和相关的文件名等信息。也就是我们通过访问进程的文件描述符可以找到该文件的相关信息。

    当系统中的某个文件被意外地删除了,只要这个时候系统中还有进程正在访问该文件,那么我们就可以通过lsof从/proc目录下恢复该文件的内容。 假如由于误操作将/var/log/messages文件删除掉了,那么这时要将/var/log/messages文件恢复的方法如下:

    首先使用lsof来查看当前是否有进程打开/var/logmessages文件,如下:

    # lsof |grep /var/log/messages

    syslogd   1283      root    2w      REG        3,3  5381017    1773647 /var/log/messages (deleted)

    从上面的信息可以看到 PID 1283(syslogd)打开文件的文件描述符为 2。同时还可以看到/var/log/messages已经标记被删除了。因此我们可以在 /proc/1283/fd/2 (fd下的每个以数字命名的文件表示进程对应的文件描述符)中查看相应的信息,如下:

    # head -n 10 /proc/1283/fd/2

    Aug  4 13:50:15 holmes86 syslogd 1.4.1: restart.

    Aug  4 13:50:15 holmes86 kernel: klogd 1.4.1, log source = /proc/kmsg started.

    Aug  4 13:50:15 holmes86 kernel: Linux version 2.6.22.1-8 (root@everestbuilder.linux-ren.org) (gcc version 4.2.0) #1 SMP Wed Jul 18 11:18:32 EDT 2007

    Aug  4 13:50:15 holmes86 kernel: BIOS-provided physical RAM map:

    Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 0000000000000000 - 000000000009f000 (usable)

    Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 000000000009f000 - 00000000000a0000 (reserved)

    Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 0000000000100000 - 000000001f7d3800 (usable)

    Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 000000001f7d3800 - 0000000020000000 (reserved)

    Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 00000000e0000000 - 00000000f0007000 (reserved)

    Aug  4 13:50:15 holmes86 kernel:  BIOS-e820: 00000000f0008000 - 00000000f000c000 (reserved)

    从上面的信息可以看出,查看 /proc/8663/fd/15 就可以得到所要恢复的数据。如果可以通过文件描述符查看相应的数据,那么就可以使用 I/O 重定向将其复制到文件中,如:

    cat /proc/1283/fd/2 > /var/log/messages

    对于许多应用程序,尤其是日志文件和数据库,这种恢复删除文件的方法非常有用

    习惯了Linux下的ll命令,Mac终端没有这个命令很不舒服。

    可以将ll别名解决这个问题:

    打开终端

    cd到home路径

    cd ~

    •              1

    •              1

    编辑.bash_profile文件

    vim .bash_profile

                1

                1

    添加以下代码

    alias ll='ls -alF'

    alias la='ls -A'

    alias l='ls -CF'

                1

                2

                3

                1

                2

                3

    source文件

    source .bash_profile

                1

                1

  • 相关阅读:
    我爱Java系列之---【SpringBoot打成war包部署】
    279. Perfect Squares
    矩阵dfs--走回路
    112. Path Sum
    542. 01 Matrix
    106. Construct Binary Tree from Inorder and Postorder Traversal
    105. Construct Binary Tree from Preorder and Inorder Traversal
    Invert Binary Tree
    563 Binary Tree Tilt
    145 Binary Tree Postorder Traversal
  • 原文地址:https://www.cnblogs.com/zhangshuda/p/7640213.html
Copyright © 2011-2022 走看看