zoukankan      html  css  js  c++  java
  • ###Linux基础命令

    点击查看Evernote原文

    #@author:       gr
    #@date:         2014-07-20
    #@email:        forgerui@gmail.com
    

    记录Linux常用命令。

    1. tree
    2. 文件目录通配符 * ? [ ]
    3. 链接
    • 硬链接 增加节点数,删除一个,节点减1
    • 软连接 新建一个链接文件,删除原文件,连接文件找不到文件
    1. ls 相关查询
      ls -lt 最后修改时间 mtime
      ls -lc 状态改变时间 ctime
      ls -lu 最后访问时间 atime

    2. 解压缩
      gzip .gz zxvf
      compress .Z Zxvf
      bzip2 .bz2 jxvf

    3. pidof

    4. iptables -A INPUT -m tcp -p tcp --dprot 10006 -j ACCEPT

    5. iostat,vmstat,mpstat

    6. 电源管理
      sudo pm-hibernate : 休眠
      sudo pm-suspend: 挂起
      sudo pm-powersave :省电模式

    7. 系统发行版本
      lsb_release -a
      cat /etc/issue

    8. 源管理
      #添加lauchpad软件源
      sudo add-apt-repository ppa:ailurus
      sudo apt-get update
      sudo apt-get dist-upgrade
      sudo apt-get install ailurus

    9. vi 中可以使用!使用shell系统命令,用r导入 :!r date

    10. vi 最后保存时发现没有权限,可以使用%! sudo tee %命令保存

    11. vi Ctrl+W:  = 窗口大小相等; _ 窗口最大; + 增大窗口; - 减小窗口.

    12. vi 行内移动:由于窗口太小,一行未显示全,通过 gj可以移动同一行显示中的第二行

    13. live cd 修复grub

      sudo -i
      mount /dev/sda9 /mnt
      mount /dev/sda6 /mnt/boot (如果没 /boot 单独分区这步跳过)
      grub-install --root-directory=/mnt/ /dev/sda
      reboot
      #重建grub列表
      sudo update-grub
      #重新写入第一分区mbr           
      sudo grub-install /dev/sda
      reboot
      
    14. grub2命令修复

      grub>find /boot/grub/core.img (有/boot分区的用find /grub/core.img)
      (hdx,y) (显示查找到的分区号)
      grub>root (hdx,y)
      grub>kernel /boot/grub/core.img (/boot分区的用 kernel /grub/core.img)
      grub>boot
      
    15. find

       find / -name 'helloworld'
      
    16. daily log
      1. 杀任务: jobs kill %1
      2. 踢除用户: pkill -kill -t pts/2
      3. sudo apt-get -f install
      4. split vspl
      5. ufw enable/disable
      ufw:uncomplicted firewall
      6. python -m SimpleHTTPServer
      7. sudo !!
      8. chkconfig --list mysql
      9. chkconfig --level 235 mysql on
      10. crontab Minute Hour Day Month DayOfWeek Command
      11. ^M可以先打Ctrl+v,再按Enter键实现
      12. 将^M去掉: %s/^M//g

    17. 使用命令行打开pdf
      evince hdfs_design.pdf

    18. man -7 可以查看相关文档
      man -7 fstab

    19. fstab
      fs_spec fs_file fs_type fs_mntops fs_dump(备份) fs_fsck(检查)
      /dev/sda1 /mnt vfat defaults 0 0

    20. mount
      mount -t [msdos | vfat | ntfs | iso9660]
      #mount -o用来描述设备或档案的挂接方式。 后面接loop是用来把一个文件当成硬盘分区挂接上系统。
      mount -t iso9660 -o loop a.iso /mnt

    21. sudo fdisk -l结果如下图,其中W95 Ext'd(LBA)是扩展分区的意思。
      Alt text

    22. 今天遇到一个难受的问题,使用ifstream流处理数据时,总是无法读取全部数据,最后发现是终端显示的问题,直接读取输出的时候用的是cout<< val <<" ";,导致终端一行显示不下所有数据,修改为cout<< val <<endl;,发现实际上已经读取了全部数据。浪费了好多时间找答案...

    23. man页

      Mandatory arguments to long options are mandatory for short options too.长选项的强制参数对短选项也是必须的。

    24. >问题

      下面这段代码希望对文件进行排序,如下

      cat $FILE | sort -n | uniq > $FILE
      

      但运行的结果却是将$FILE文件清空了,因为先执行了>导致$FILE文件被清空,然后的操作 都是针对空文件。建议使用tee避免这种情况,即:

      cat $FILE | sort -n | uniq | tee $FILE
      
    25. linux中的常用变量

      $?      #上个语句执行的状况
      $#      #参数个数
      $@      #每个参数,可以用for遍历
      $*      #每个参数,字符串
      
      !!      #上一条命令,sudo !!
      !$      #上一条命令的最后一个参数
      

      注意:
      linux shell中,$#的参数个数是不计算命令的,$0代表命令,$1是第一个参数,如果只是 一个命令没有参数的话,$# 为0。可以通过这个判断是否输入参数。

    26. date

      //时间戳转换为时间
      date -d@1234567890
      //时间转为时间戳,%s表示转化为时间戳
      date -d20140815 +%s
      
    27. 命令替换

      //把上个命令中的a替换成b并重新执行一次
      ^a^b
      //同样的命令
      !!:gs/a/b
      

      注意: ^a^b只会替换第一处,不会替换所有,使用!!:gs/a/b将替换所有出现a的地方,其中的g表示global,去掉g之后,与上面的命令等价。

    28. the device is busy

      使用fuser /mount查看占用进程,或者使用fuser -k /mount直接杀死进程。有时候可能是终端cd到挂载目录导致占用。也可以使用lsof查看。

    29. 挂载Windows共享文件夹

      使用命令挂载Windows共享文件
      sudo mount.cifs <共享文件位置> <挂载点> <-o username=用户名>
      sudo mount.cifs //10.10.64.159/public /mount -o username=public

    30. history相关

      # `!-:` 上个命令除去最后一个参数以外的命令,下面的命令由a.txt换成b.txt
      $ ls -lt a.txt
      $ !-: b.txt
      # `!×` 上个命令所有参数
      # `!num`执行第num个命令
      $ !789      #执行history中第789个命令
      # `!cmd` 执行上个histroy中最近的命令
      $ !cat      #执行最上次执行的cat命令
      

      使用Ctrl+R搜索相关命令,使用!cmd执行上个命令,都可以极大帮助你。

  • 相关阅读:
    对NumPy中dot()函数的理解
    使用Boostrap框架写一个登录注册界面
    两种方法实现asp.net方案的前后端数据交互(aspx文件、html+ashx+ajax)
    将包含经纬度点位信息的Excel表格数据导入到ArcMap中并输出成shapefile
    [ArcGIS API for JavaScript 4.8] Sample Code-Popups-1-popupTemplate的概念和popup中属性字段值的多种表现形式
    [python爬虫]Requests-BeautifulSoup-Re库方案--robots协议与Requests库实战
    [python爬虫]Requests-BeautifulSoup-Re库方案--Requests库介绍
    [ArcGIS API for JavaScript 4.8] Sample Code-Get Started-widgets简介
    [ArcGIS API for JavaScript 4.8] Sample Code-Get Started-popups简介
    [ArcGIS API for JavaScript 4.8] Sample Code-Get Started-layers简介
  • 原文地址:https://www.cnblogs.com/gr-nick/p/4000912.html
Copyright © 2011-2022 走看看