Linux 命令

source

执行某个文件

bash

以bash执行某个文件

  • 参数

    -x 查看调试信息
    

gdb

调试C程序

打开

    gdb a.out

调试命令

    break 16       #断点行
    break func    #断点函数
    info break     #打印断点

    r             #run
    n            #next
    c            #continue
    p i          #print i
    bt          #函数堆栈
    finish     #退出函数
    q           #退出GDB

${}

    ${str%.txt}    最短匹配末尾.txt并删除
    ${str%%.txt}   最长匹配末尾.txt并删除
    ${str#str}     最短匹配开始.txt并删除
    ${str##str}    最长匹配开始.txt并删除
  • note: 支持通配符

awk

    awk 'pattern {action}'
    pattern(all by default BEGIN, END
    action(print by default)
    builtin variables
    NR:       已输入记录的条数。
    NF:       当前记录中域的个数。记录中最后一个域可以以$NF的方式引用。
    FILENAME: 当前输入文件的文件名。
    FS:      “域分隔符”,用于将输入记录分割成域。其默认值为“空白字符”,即空格和制表符。FS可以替换为其它字符,从而改变域分隔符。
    RS:       当前的“记录分隔符”。默认状态下,输入的每行都被作为一个记录,因此默认记录分隔符是换行符。
    OFS:     “输出域分隔符”,即分隔print命令的参数的符号。其默认值为空格。
    ORS:     “输出记录分隔符”,即每个print命令之间的符号。其默认值为换行符。
    OFMT:    “输出数字格式”(Format for numeric output),其默认值为"%.6g"。
    %0:       整个记录
    %n:       第n个记录

sed

  • syntax

    /模式/p           打印
    /模式/d           删除
    s/模式/替换文字/  替换
    s/模式/替换文字/g 替换所有
    np                匹配第n行
    
  • option

    -f   指定sed脚本
    -i   直接修改文件
    -e   正则表达式
    -n   不输出模式空间
    

压缩

    file.tar : tar xvf file.tar
    file.tgz : tar xvzf file.tgz
    file.tar.gz : tar xvzf file.tar.gz
    file.bz : bzip -cd file.bz | tar xvf -
    file.bz2 : tar xvjf file.tar.bz2
    file.zip : unzip file.zip
    file.rar : unrar x file.rar
    file.xz  :xz -d file.xz && tar xvf file.tar
    file.rpm : rpm2cpio file.rpm | cpio -div 
    file.deb : ark -bae file.deb (-o .)

cp

    cp -r /opt/usr/20070723/.  /backup/latest/
    #用“.”可以保证拷贝到隐藏文件

chmod

更改文件权限

  • 语法

    chmod [-cfvR] [--help] [--version] mode file... 
    指定用户:u 所有者,g 与拥有者同一群,o 其他,a 皆是
    操作权限:+ 增加,- 取消,= 设定 
    指定权限:,r 读,w 写,x 执行,X 只有当该档案是个子目录或者该档案已经被设定过为可执行
    
  • 参数

    -c : 若该档案权限确实已经更改,才显示其更改动作 
    -f : 若该档案权限无法被更改也不要显示错误讯息 
    -v : 显示权限变更的详细资料 
    -R : 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更) 
    
  • 举例

    chmod -R ug+w,o-w file1.txt file2.txt
    chmod abc file a,b,c各表示User、Group、及Other,r=4,w=2,x=1 ,即chmod a=rwx file 与 chmod 777 file 相同 
    chmod 4755 file 总是作为文件的所有者而执行,只要它不是SHELL脚本就行
    

chown

更改文件所有者

    chown username:groupname file

内核模块

  • 查看

    lsmod 即读取/proc/modules/
    
  • 载入

    modprobe +模块名、通用识别符( 模块名 在/etc/modprobe.conf的alias)
    #系统会从/lib/moudles/(uname -r)/modules.dep查找依赖模块,再用insmod从/lib/modules/(uname -r)/kernel/加载
    
    • note:
      insmod /lib/modules/(uname -r)/kernel/fat/fat.o
      必须写全部的路径
  • 卸载

    rmmod sysdog
    

系统信息

    cat /proc/cpuinfo    #CPU
    cat /proc/pci(或lspci)    #PCI板卡    eg. lspci |grep Ethernet 查看网卡型号
    cat /proc/meminfo    #内存
    cat /proc/bus/usb/devices    #USB
    cat /proc/bus/input/devices    #键盘鼠标
    cat /proc/interrupts    #设备的中断请求(IRQ)
    uname -a     #体系结构
    cat /etc/issue    #查看发行版

    #硬盘
    fdisk             #磁盘分区 
    disk - l          #磁盘列表
    df -h   fdisk  #查看文件系统使用情况
    lsblk             #查看分区使用情况    

主机名

/etc/hosts中加入

    127.0.1.1    [现在的主机名]

    cp /etc/hosts.bak /etc/hosts

dd

    dd if=/dev/sda1 of=/tmp/boot.disk    #备份分区
    mount -o loop /tmp/boot.disk  /mnt  #挂载分区文件
    dd if=/tmp/boot.disk of=/dev/sda1    #恢复分区
    dd if=/dev/sda of=/tmp/mbr.disk  bs=512 count=1    #备份磁盘(前512字节为MBR+分区表)
    dd if=/tmp/mbr.disk of=/dev/sda bs=512 count=1    #恢复磁盘
    dd if=/tmp/mbr.disk of=/dev/sda bs=512 skip=446 count=66    #恢复分区表
    kill -USR1 {dd-pid}    #查看dd进度

find

  • 语法

    find [起始目录] 寻找条件 操作 \;
    
  • 寻找条件

    -a(and,default),-o(or),!(not),括号('\(') 
    
  • 属性判断

    -name ’文件名; -lname 符号链接文件;
    -gid n ID为 n 的用户组(+n表示大于n,-n表示小于n);-uid n ID为 n 的用户
    -group 用户组名;-user 用户名
    -empty 查找大小为 0的目录或文件。
    -path 路径;-perm 权限(如711)
    -size n[bckw] 查找指定文件大小的文件,n 后面的字符表示单位,缺省为 b,代表512字节的块。
    -type x,x可以是 b 块设备;c 字符设备;d 目录;p 命名管道;f 普通文件;l 符号链接;s socket
    -xtype 只查找符号链接文件
    
    -amin n 查找n分钟以前被访问过的所有文件
    -cmin n 查找n分钟以前文件状态被修改过的所有文件
    -mmin n 查找n分钟以前文件内容被修改过的所有文件
    
    -mtime n n天
    
  • 操作

    -exec 命令名称 {}: 对符合条件的文件执行指定的命令,不询问,{}表示命令的参数即为所找到的文件
    -ok 命令名称 {}:对符合条件的文件执行指定的命令,询问用户是否执行
    -ls:详细列出所找到的所有文件。
    -print:标准输出;-printf 格式:格式输出; -fprintf 文件名:写入文件。
    eg:删除当前目录下所有一周之内没有被访问过的a .out或*.o文件。(当命令太长时,输入\换行)
    >find . \(- name a.out - o - name ‘*.o’\) \
    > - atime +7 - exec rm {} \;
    

你可能感兴趣的:(linux,命令)