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

    • 文件: Everything is file
    • 进程: 文件的运行时态
    • 网络: 特殊的文件

    文件

    在Linux中所有的内容都是以文件的形式来进行抽象的,如进程、网络、硬件等,都可以抽象成文件,对其进行IO操作

    相关命令

    查看命令的详细信息,可以使用 man 或者 --help
    例如: man ls or ls --help
    man的信息更全, --help显示的是主要信息

    处理目录常见命令

    • ls(英文全拼:list files): 列出目录及文件名 (以"."开头的文件为隐藏档案, 不会列出)
      语法 ls [-alrtAFR] [name...]
      • -a 显示所有文件及目录
      • -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
      • -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
      • -r 反序列出
      • -t 按文档建立时间列出, 最新文件在前
      • -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
      • -R 列出目录及子目录下所有文件
      • -i, --inode 打印索引节点(inode --> index node)信息
      • 硬链接: ln 原始档 链接档 (inode一样, 删除原始档后,链接档独立存在)
      • 软链接: ln -s 原始档 链接档 (相当于快捷方式, inode 不一样,删除原始档后,链接档 No such file or directory)
        • 修改原始档,硬链接档,软链接档 中任何一个的内容, 其他文件跟着改变 (软链接指向的原始档的路径, 硬链接和原始档的索引节点相同)
    • cd(英文全拼:change directory):切换目录
    • pwd(英文全拼:print work direcytory):显示目前的目录
    • mkdir(英文全拼:make directory):创建一个新的目录
    • rmdir(英文全拼:remove directory):删除一个空的目录 (删除非空目录使用 rm -r)
    • cp(英文全拼:copy file): 复制文件或目录
    • rm(英文全拼:remove): 移除文件或目录 (-f 强制 , -i 询问 , -r 递归删除目录及其内容)
    • mv(英文全拼:move file): 移动文件与目录,或修改文件与目录的名称

    1. df

    (英文全拼 disk free)
    显示文件系统磁盘的使用情况统计 第二列为 1K-blocks

    • df -h 大小显示为 G M K ,第二列为 size , 更易阅读

    2. pwd

    (英文全拼:print work directory)
    显示当前工作目录的绝对路径

    3. chmod

    (英文全拼:change mode)
    控制用户对文件的权限
    Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。

    只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。

    语法

    chmod [-cfvR] [--help] [--version] mode file...
    
    • -c : 若该文件权限确实已经更改,才显示其更改动作
    • -f : 若该文件权限无法被更改也不要显示错误讯息
    • -v : 显示权限变更的详细资料
    • -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递归的方式逐个变更)
    • --help : 显示辅助说明
    • --version : 显示版本

    mode 为权限设定字符串 格式如下

    [ugoa...][[+-=][rwxX]...][,...]
    
    • u (user)文件所有者,g (group) 文件所有者所在组,o (others) 所有其他用户,a (all) 所有用户, 相当于 ugo
    • +表示增加权限、- 表示去除权限、= 表示唯一设定权限。
    • r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。
      chmod 777 filename #修改filename文件权限为 rwxrwxrwx 所有用户可写可读可执行
      等效 chmod a+rwx filename / chmod ugo+rwx
      chmod ugo+w filename #将filename文件设置为所有人都可写入

    文件内容查看

    Linux系统中使用以下命令来查看文件的内容:

    • cat 由第一行开始显示文件内容
    • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
    • nl 显示的时候,顺道输出行号!
    • more 一页一页的显示文件内容
    • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
    • head 只看头几行
    • tail 只看尾巴几行
      tail -f filename 循环读取filename最后几行,动态查看 (使用vim,sed等编辑后无法追踪)
      tail -F filename 根据文件名追踪

    查找文件内容

    grep

    查找文件里符合条件的字符串 (可用正则表达式)
    grep "被查找的字符串" 文件名

    以递归的方式查找符合条件的文件(在指定目录及其子目录下查找符合条件的文件,并打印内容)
    grep -r "被查找的字符串" "目录/文件"

    反向查找

    grep -v test *test*
    查找文件名中包含 test 的文件中不包含test 的行

    参数

    -a 或 --text : 不要忽略二进制的数据。
    -A<显示行数> 或 --after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
    -b 或 --byte-offset : 在显示符合样式的那一行之前,标示出该行第一个字符的编号。
    -B<显示行数> 或 --before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
    -c 或 --count : 计算符合样式的列数。
    -C<显示行数> 或 --context=<显示行数>或-<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前后的内容。
    -d <动作> 或 --directories=<动作> : 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
    -e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式。
    -E 或 --extended-regexp : 将样式为延伸的正则表达式来使用。
    -f<规则文件> 或 --file=<规则文件> : 指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
    -F 或 --fixed-regexp : 将样式视为固定字符串的列表。
    -G 或 --basic-regexp : 将样式视为普通的表示法来使用。
    -h 或 --no-filename : 在显示符合样式的那一行之前,不标示该行所属的文件名称。
    -H 或 --with-filename : 在显示符合样式的那一行之前,表示该行所属的文件名称。
    -i 或 --ignore-case : 忽略字符大小写的差别。
    -l 或 --file-with-matches : 列出文件内容符合指定的样式的文件名称。
    -L 或 --files-without-match : 列出文件内容不符合指定的样式的文件名称。
    -n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号。
    -o 或 --only-matching : 只显示匹配PATTERN 部分。
    -q 或 --quiet或--silent : 不显示任何信息。
    -r 或 --recursive : 此参数的效果和指定"-d recurse"参数相同。
    -s 或 --no-messages : 不显示错误信息。
    -v 或 --invert-match : 显示不包含匹配文本的所有行。
    -V 或 --version : 显示版本信息。
    -w 或 --word-regexp : 只显示全字符合的列。
    -x --line-regexp : 只显示全列符合的列。
    -y : 此参数的效果和指定"-i"参数相同。
    

    查找文件

    find

    在指定目录下查找文件
    find *.py
    查找当前路径下拓展名为py的文件 也可用 ls *.py

    将目前目录及其子目录下所有延伸档名是 c 的文件列出来。
    
    # find . -name "*.c"
    将目前目录其其下子目录中所有一般文件列出
    
    # find . -type f
    将目前目录及其子目录下所有最近 20 天内更新过的文件列出
    
    # find . -ctime -20
    查找/var/log目录中更改时间在7日以前的普通文件,并在删除之前询问它们:
    
    # find /var/log -type f -mtime +7 -ok rm {} ;
    查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件:
    
    # find . -type f -perm 644 -exec ls -l {} ;
    为了查找系统中所有文件长度为0的普通文件,并列出它们的完整路径:
    
    # find / -type f -size 0 -exec ls -l {} ;
    

    awk

    sed

    创建新文件

    1. cat>>newfile (输入内容,按Ctrl D 保存退出)
    2. touch newfile (创建一个新的空文件)
    3. vi/vim newfile (保存退出 :wq; 或者:w newfile :q)

    进程

    linux进程的5种基本状态:

    1. R (Running) 运行(正在运行或在运行队列中等待)
    2. S (Sleeping) 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
    3. D (TASK_UNINTERRUPTIBLE) 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
    4. Z (TASK_DEAD - EXIT_ZOMBIE) 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
    5. T (Stopped) 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

    相关命令:

    ps

     ps -ef 查看进程

     ps aux 显示所有进程详细信息

     ps -ef --sort=pid 使用--sort=xxx 排序 ; --sort=-xxx 逆序

     ps aux|grep init 查找进程

    参数

    top

    实时显示 process 的动态
    top -p 139 实时显示进程号pid为139的进程信息,CPU、内存占用率等

    网络

    netstat

    显示网络状态

    usage: netstat [-vWeenNcCF] [<Af>] -r         netstat {-V|--version|-h|--help}
           netstat [-vWnNcaeol] [<Socket> ...]
           netstat { [-vWeenNac] -i | [-cnNe] -M | -s [-6tuw] }
    
            -r, --route              display routing table
            -i, --interfaces         display interface table
            -g, --groups             display multicast group memberships
            -s, --statistics         display networking statistics (like SNMP)
            -M, --masquerade         display masqueraded connections
    
            -v, --verbose            be verbose
            -W, --wide               don't truncate IP addresses
            -n, --numeric            don't resolve names
            --numeric-hosts          don't resolve host names
            --numeric-ports          don't resolve port names
            --numeric-users          don't resolve user names
            -N, --symbolic           resolve hardware names
            -e, --extend             display other/more information
            -p, --programs           display PID/Program name for sockets
            -o, --timers             display timers
            -c, --continuous         continuous listing
    
            -l, --listening          display listening server sockets
            -a, --all                display all sockets (default: connected)
            -F, --fib                display Forwarding Information Base (default)
            -C, --cache              display routing cache instead of FIB
            -Z, --context            display SELinux security context for sockets
    
      <Socket>={-t|--tcp} {-u|--udp} {-U|--udplite} {-S|--sctp} {-w|--raw}
               {-x|--unix} --ax25 --ipx --netrom
      <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: inet
      List of possible address families (which support routing):
        inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
        netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP)
        x25 (CCITT X.25)
    

    netstat -a 显示详细的网络状况
    netstat -tlnp 查看 TCP 协议进程端口,-t 指的是 TCP 协议; -l (listening)显示监听服务器套接字;-n 指不需要解析远程服务器的名字,加快速度;-p 显示进程名

    netstat -tln | grep 8080 查看端口8080的使用情况

    lsof -i :8080 查看端口属于哪个程序

    ifconfig

    显示或设置网络

    远程命令

    ssh
    scp

    tar 压缩解压

    touch 1.txt    
    # 新建空白文件 1.txt
    
    tar -czvf 1.tar.gz 1.txt
    # 压缩 1.txt 文件为 1.txt
    # 参数说明 
    -c或--create 建立新的备份文件
    -z或--gzip或--ungzip 通过gzip指令处理备份文件
    -v或--verbose 显示指令执行过程
    -f<备份文件>或--file=<备份文件> 指定备份文件
    
    tar -tzvf 1.tar.gz
    # 列出 1.tar.gz 里的文件
    # 参数说明 
    -t或--list 列出备份文件的内容
    -z或--gzip或--ungzip 通过gzip指令处理备份文件
    -v或--verbose 显示指令执行过程
    -f<备份文件>或--file=<备份文件> 指定备份文件
    
    tar -xzvf 1.tar.gz
    # 解压文件 1.tar.gz 中的文件到当前路径  
    # 参数说明 
    -x或--extract或--get 从备份文件中还原文件
    -z或--gzip或--ungzip 通过gzip指令处理备份文件
    -v或--verbose 显示指令执行过程
    -f<备份文件>或--file=<备份文件> 指定备份文件
    
    
  • 相关阅读:
    Something about the "BSTR" and "SysStringLen"
    关于 i = i ++ 的问题
    duilib写个三国杀?
    关于WM_GETTEXT的应用
    hoops暂时用过的一些方法
    Hoops随便记的
    C++ win32线程数上限
    windows系统时间(SYSTEMTIME)
    Form表单提交的那些事
    多行文字溢出...
  • 原文地址:https://www.cnblogs.com/jyang/p/13680633.html
Copyright © 2011-2022 走看看