zoukankan      html  css  js  c++  java
  • 〖Linux〗不知谁写的,很实用的Linux命令

    第一部分
    1. sudo 运行上一条命令
        sudo !!
    2. HTTP方式共享当前目录
        python -m SimpleHTTPServer 80
    3. vim保存一个root用户文件
        :w !sudo tee %
    4. 快速切换至旧的目录
        cd -
    5. 替换上一条命令中的一个短语
        ^foo^bar^
    6. 快速备份一个文件
        cp filename{,.bak}
        filename{,.bak} 会被展开为filename filename.bak
    7. 排列,大括号在bash中是排列的意义
        echo {a,b,c}{a,b,c}{a,b,c} 得到一个全排列
    8. 免密码ssh登录主机
        ssh-copy-id remote-machine
    9. 抓取Linux桌面的视频
        ffmpeg -f x11grab -s wxga -r 25 -i :0.0 -sameq /tmp/out.mpg
        ffmpeg 可以直接解码X11的图形,并转换输出格式
        -f x11grab 指定输入类型
        -s wxga 设置抓取区域的大小,wxga是1366*768的大小,也可以是-s 800x600
        -r 25 设置帧频率,每秒抓取的画面数
        -i :0.0 设置输入源,本地X默认在0.0
        -sameq 保持与输入流一样的图像质量
    
    第二部分
    1. 用你最喜欢的编辑器来敲命令
        command <C-X C-E>
    2. 清空或创建一个文件
        > file.txt
    3. 用ssh创建端口转发通道
        ssh -N -L2001:remotehost:80 user@somemachine
        在本机打开了2001端口,
        对本机2001端口的请求,
        通过somemachine作为跳板,
        转到remotehost的80端口上。
        举例:
        ssh -f -N -L 0.0.0.0:443:twitter.com:443 shell.cjb.net
        ssh -f -N -L 0.0.0.0:80:twitter.com:80 shell.cjb.net
        然后在/etc/hosts里边添加
        127.0.0.1 twitter.com
    4. 重置终端
        reset
        对于终端显示有乱码,不能正常显示时很有用。
    5. 在午夜时候执行某命令
        echo "cmd" | at midnight
        at 调用定时任务
    6. 远程传送麦克风语音
        dd if=/dev/dsp | ssh user@host dd of=/dev/dsp #新系统上可能已失效
        arecord | ssh user@host aplay   #本地录音,远程播放
        arecord | aplay                 #本地直接回放
    7. 映射一个内存目录
        mount -t tmpfs -o size=1024m tmpfs /mnt/ram
        开了一1G内存当目录使用
        /dev/shm 也是内存目录,可直接使用
    8. 使用diff对比远程文件与本地文件
        ssh user@host cat /path/to/remotefile | diff /path/to/localfile -
        学会善用ssh,可减少开发工作量,比如
        sshfs [user@]host:[dir] mountpoint [options]
        可以挂载远程的目录至本地(卸载fusermount -u mountpoint)
    9. 查看系统中占用端口的进程
        netstat -tulnp
        -t 显示tcp连接
        -u 显示udp连接
        -l 显示监听状态
        -n 显示ip,不作名称转换
        -p 显示相应的pid以及名称(root)
    
    第三部分
    1. 以友好的方式显示当前挂载的文件系统
        mount | column -t
        column 用于格式化输出的信息
    2. !!:gs/foo/bar
        !!表示上一条命令
        gs/foo/bar 用bar替换foo再执行
    3. 实时查看某目录最新变化
        watch -d -n 1 ls -l
    4. 通过ssh挂载远程主机上文件夹
        sshfs user@host:remotedir localdir
        卸载使用fusermount或是umount
    5. 通过DNS读取Wikipedia的词条
        dig +short txt <keyword>.wp.dg.cx
        dig +short txt hacker.wp.dg.cx  #可能已失效
    6. 使用wget递归下载整个网站
        wget --random-wait -r -p -e robots=off -U Mozilla www.example.com
        --random-wait 等待0.5~1.5秒的时间进行下一次请求
        -r 递归下载
        -e robots=off 忽略robots.txt
        -U Mozilla 设置User-Agent头为Mozilla
    
        其他实用的参数:
        --limit-rate=20k 限定下载速度为20k
        -o logfile.txt 记录下载日志
        -l 0 删除深度(默认为5)
        -wait=1h 每下载一个文件后等待1小时
    7. 复制最后使用的命令的参数
        <Alt +.>
    8. 执行一条命令但不保存至history中
        <space> command
    9. 显示当前子目录下所有子目录下的大小
        du -h --max-depth=1
    10. 以使用内存量排序查看进程
        ps aux | sork -nk +4 | tail
        sork -nk +4 用sort排序列出4栏
        此外可以使用htop或是top
    11. 用python快速开启一个SMTP服务
        python -m smtpd -n -c DebuggingServer localhost:1025
        -m smtpd 指定smtp服务
        localhost:1025运行1025端口
        -n 不用setuid为nobody,而直接使用你的uid运行
        -c DebuggingServer 在屏幕上输出信息
    
    第四部分
    1. 查看ASCII码表
        man ascii 或 man 7 ascii
    
        man 1 intro - Linux简明教程
        man 2 syscalls - 内核提供的系统调用
        man 2 select_tut - 关于select()系统调用的教程
        man 3 string - 在头文件内的所有函数
        man 3 stdio - 关于头文件的使用,标准输入输出的库说明
        man 3 errno - 所有errorno取值及说明
        man 4 console_codes - Linux终端控制码及使用解释
        man 4 full - 介绍总是处理“满”状态的/dev/full(对应有/dev/nullman 5 proc - 介绍/proc下文件系统
        man 5 filesystems - 各种Linux文件系统
        man 7 bootparam - 详细解释内核启动参数
        man 7 charsets - 解释各种语言的编码集
        man 7 glob - 解释glob文件名管理机制的工作过程
        man 7 hier - 解释Linux文件系统结构各个部分的作用
        man 7 operator - C语言运行符的列表 
        man 7 regex - 介绍正则表达式
        man 7 suffixes - 常见文件后缀名的列表跟解释
        man 7 time - Linux的时钟机制解释
        man 7 units - 数值单位及其数值的解释
        man 7 utf8 - 描述UTF-8编码
        man 7 url - 解释URL、URI、URN等的标准
    2. 简易计时器
        time real
    3. 远程关掉一台Windows机器
        net rpc shutdown -I IP_ADDRESS -U user%passwd
    4. 在一个子Shell中运行一个命令
        (cd /tmp && ls)
        其中的好处是不会修改当前shell目录
    5. 利用中间管道嵌套使用SSH
        ssh -t host_A ssh host_B
        使用情况:
        host_B 网络繁忙,本机不可直达
        host_A 网络空闲,本机可直达
    6. 清空屏幕
       <C-L> 或是 clear 或是 tput clear
    7. 得知一台机器什么时间重启完毕
        ping -a IP
        一但ping通,发出警报声音
    8. 列出你最常用的10行命令
        history | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head
    9. 使用Telnet查看《星球大战》
        telnet towel.blinkenlights.nl

    From: http://wenku.baidu.com/view/4724041fa8114431b90dd82b.html

  • 相关阅读:
    Redis系列(三)-Redis replication 实现主从复制(读写分离)
    Redis系列(二)-Redis的RDB和AOF两种持久化机制
    Redis系列(一)-CentOS7下Redis单机安装+自启动
    vmware安装centos 7,没有ifconfig命令,无法访问网络
    本博客停更
    「杂文」昨日之纯真,明日之坚毅
    OkHttpClient跳过证书验证
    java 获取十个工作日之前或之后的日期(算当天)
    java pdfBox给PDF添加图片水印
    docker pull 提示timeout
  • 原文地址:https://www.cnblogs.com/scue/p/3216193.html
Copyright © 2011-2022 走看看