zoukankan      html  css  js  c++  java
  • Linux下的命令总结笔记(一)

    说在前面的话:

    本文是以笔记的形式呈现,那么其内容也将会有一个更新的过程。其命令也为亲测内容,大家可以放心使用(蓝色字体部分除外,蓝色部分为未测试或测试后未验证)。如果有一些什么问题,可以给我留言。


    1.查看历史记录:

    history 查看最近使用过的命令记录


    2.网络 - (以太网和WIFI无线)

    ifconfig eth0 显示一个以太网卡的配置


    ifconfig eth0 显示一个以太网卡的配置 
    ifup eth0 启用一个 'eth0' 网络设备
    ifdown eth0 禁用一个 'eth0' 网络设备

    ifconfig eth0 192.168.1.1 netmask 255.255.255.0 控制IP地址


    ifconfig eth0 promisc 设置 'eth0' 成混杂模式以嗅探数据包 (sniffing)

    dhclient eth0 以dhcp模式启用 'eth0'

    route -n show routing table 
    route add -net 0/0 gw IP_Gateway configura default gateway 
    route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 configure static route to reach network '192.168.0.0/16' 
    route del 0/0 gw IP_gateway remove static route 
    echo "1" > /proc/sys/net/ipv4/ip_forward activate ip routing 
    hostname show hostname of system 
    host www.example.com lookup hostname to resolve name to ip address and viceversa(1) 
    nslookup www.example.com lookup hostname to resolve name to ip address and viceversa(2) 
    ip link show show link status of all interfaces 
    mii-tool eth0 show link status of 'eth0' 
    ethtool eth0 show statistics of network card 'eth0' 
    netstat -tup show all active network connections and their PID 
    netstat -tupl show all network services listening on the system and their PID 
    tcpdump tcp port 80 show all HTTP traffic 
    iwlist scan show wireless networks 
    iwconfig eth1 show configuration of a wireless network card 
    hostname show hostname 
    host www.example.com lookup hostname to resolve name to ip address and viceversa 
    nslookup www.example.com lookup hostname to resolve name to ip address and viceversa 
    whois www.example.com lookup on Whois database 


    3.APT 软件工具 (Debian, Ubuntu 以及类似系统)

    sudo apt-get install package_name 安装/更新一个 deb 包

    apt-cdrom install package_name 从光盘安装/更新一个 deb 包

    sudo apt-get update 升级列表中的软件包

    apt-get upgrade 升级所有已安装的软件

    apt-get remove package_name 从系统删除一个deb包

    apt-get check 确认依赖的软件仓库正确
    apt-get clean 从下载的软件包中清理缓存
    apt-cache search searched-package 返回包含所要搜索字符串的软件包名称


    4.关机:

    注:这里如果你是ubuntu的系统,那么请在命令前面加上一个sudo

    shutdown -h now 立即关机

    shutdown -r now 立即重启

    shutdown -r +3 三分钟后重启

    shutdown -h +3 "The System will shutdown after 3 minutes" 提示使用者将在三分钟后关机

    shutdown -r +3 "The System will restart after 3 minutes" 提示使用者将在三分钟后重启

    shutdown -r 20:23 在20:23时将重启计算机

    shutdown -r 20:23 & 系统返回系统编码 可以将在20:23时重启的任务放到后台去,用户可以继续操作终端

    kill 系统返回系统编码 对于设置了上面的重启或是关机的指令后,使用这个可以中止重启或关机指令

    logout 注销

    reboot 重启(此命令也同样需要root权限的)



    5.查看网络系统启动信息

    dmesg|grep eth


    6.查看日历相关

    cal 查看当前月份的日历

    cal [month] [year] 查看year年month月的日历

    cal [year] 查看year年一年的日历


    7.查看日期相关


    date 查看当前日期和时间

    date +%Y-%m-%d 查看当前日期

    date +%H-%M 查看当前时间

    date mmddHHMMYYYY.ss 设置日期和时间 - 月日时分年.秒



    8.查看磁盘空间

    查看文件系统磁盘使用情况 df -h


    查看当前文件夹下的磁盘使用情况 du --max-depth=1 -h


    查看某一指定文件夹的大小


    du -sk * | sort -rn 以容量大小为依据依次显示文件和目录的大小


    ls -lSr |more 以尺寸大小排列文件和目录
    du -sh dirName 查看目录 'dirName' 已经使用的磁盘空间
    dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n 以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统)
    rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n 以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统)


    9.查看所有的进程和端口使用情况

    netstat -apn


    10.查看系统相关信息

    arch 显示机器的处理器架构
    uname -m 显示机器的处理器架构
    uname -r 显示正在使用的内核版本 
    dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) 


    cat /proc/cpuinfo


    cat /proc/swaps 显示哪些swap被使用

    cat /proc/version 显示内核的版本

    cat /proc/net/dev 显示网络适配器及统计


    cat /proc/interrupts 显示中断
    cat /proc/meminfo 校验内存使用
    cat /proc/mounts 显示已加载的文件系统
    lspci -tv 罗列 PCI 设备
    lsusb -tv 显示 USB 设备


    11.文件与目录操作系列

    cd /home 进入 '/home' 目录'
    cd .. 返回上一级目录
    cd ../.. 返回上两级目录
    cd 进入个人的主目录
    cd ~username 进入个人的主目录
    cd - 返回上次所在的目录
    pwd 显示工作路径

    ls:
    显示目录内容
    最常用参数:
      -a:显示指定目录所有文件,包括文件名以 . 开头的文件
      -l:显示文件详细信息(包括文件类型,权限,修改时间,访问时间,大小,文件名…)
      -h:将文件大小以方便阅读的形式表示出来,配合 -l 参数使用,常有奇效
    ls 查看目录中的文件

    ls -f 查看目录中的文件

    同是查看目录中的文件,这里我们可以看一下ls和ls -f的区别


    通过上的图片,可以看到ls -f列的更全一些,它还罗列了一些隐藏文件

    ls -l 显示文件和目录的详细资料

    ll 显示文件和目录的详细资料

    再有显示文件和目录的详细资料中,ls -l和ll的区别是一样的,不过这里与上面的刚好相反

    ls -a 显示隐藏文件
    ls *[0-9]* 显示包含数字的文件名和目录名
    tree 显示文件和目录由根目录开始的树形结构

    mkdir [dirname] 创建一个叫做 'dirname' 的目录'
    mkdir [dir1] [dir2] 同时创建两个目录

    mkdir -p dir0/dir1/dir2 创建一个目录树


    文件复制命令:cp
        命令格式:cp [-adfilprsu] 源文件(source) 目标文件(destination)
                  cp [option] source1 source2 source3 ...  directory
        参数说明:
        -a:是指archive的意思,也说是指复制所有的目录
        -d:若源文件为连接文件(link file),则复制连接文件属性而非文件本身
        -f:强制(force),若有重复或其它疑问时,不会询问用户,而强制复制
        -i:若目标文件(destination)已存在,在覆盖时会先询问是否真的操作
        -l:建立硬连接(hard link)的连接文件,而非复制文件本身
        -p:与文件的属性一起复制,而非使用默认属性
        -r:递归复制,用于目录的复制操作
        -s:复制成符号连接文件(symbolic link),即“快捷方式”文件
        -u:若目标文件比源文件旧,更新目标文件
        如将/test1目录下的file1复制到/test3目录,并将文件名改为file2,可输入以下命令:
        cp /test1/file1 /test3/file2
    cp dir/file1 file2 复制一个文件
    cp dir/* . 复制一个目录下的所有文件到当前工作目录
    cp -a /tmp/dir1 . 复制一个目录到当前工作目录
    cp -a dir1 dir2 复制一个目录


    文件移动命令:mv
        命令格式:mv [-fiv] source destination
        参数说明:
        -f:force,强制直接移动而不询问
        -i:若目标文件(destination)已经存在,就会询问是否覆盖
        -u:若目标文件已经存在,且源文件比较新,才会更新
        如将/test1目录下的file1复制到/test3目录,并将文件名改为file2,可输入以下命令:
        mv /test1/file1 /test3/file2

    mv dir1 new_dir 重命名/移动 一个目录


    文件删除命令:rm
        命令格式:rm [fir] 文件或目录
        参数说明:
        -f:强制删除
        -i:交互模式,在删除前询问用户是否操作
        -r:递归删除,常用在目录的删除
        如删除/test目录下的file1文件,可以输入以下命令:
        rm -i /test/file1

    rm -f file1或rm -f file1 删除一个叫做 'file1' 的文件'
    rmdir dir1 删除一个叫做 'dir1' 的目录'
    rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容
    rm -rf dir1 dir2 同时删除两个目录及它们的内容

    ln -s file1 lnk1 创建一个指向文件或目录的软链接


    ln file1 lnk1 创建一个指向文件或目录的物理链接


    touch -t 1403021719 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)


    touch fileName 创建一个名为fileName的文件

    iconv -l 列出已知的编码

    这个命令有点强啊,执行之后,我天。原来有这么多的程序编码啊~


    12.查看文件内容

    直接查看文件内容

    gedit fileName或是vim fileName(vim 需要下载安装 $sudo apt-get install vim) 打开一个文件

    cat file1 从第一个字节开始正向查看文件的内容
    tac file1 从最后一行开始反向查看一个文件的内容


    翻页查看

    more file1 查看一个长文件的内容

    如果你的文件够长,就会出现下面的情况:

    此时的状态是表示正在等待你的指令。主要有以下指令操作:

    空格键:向下翻一页

    Enter:向下滚动一行

    /string:代表在这个显示的内容当中,向下查询“string”这个关键字

    :f:立刻显示出文件名及目前显示的行数

    q:立刻离开more

    b或[ctrl]-b:往回翻页,不过个操作只对文件有用,对管道无用


    less file1 一页一页翻动

    空格键:向下翻一页

    [PageDown]:向下翻动一页

    [PageUp]:向上翻动一页

    /string:向下查询"string"的功能

    ?string:向上查询"string"的功能

    n:重复前一个查询(与/或?有关)

    N:反向重复前一个查询(与/或?有关)

    q:立刻离开less


    数据选取

    head -2 file1 查看一个文件的前两行
    tail -2 file1 查看一个文件的最后两行

    tail -f /var/log/messages 实时查看被添加到一个文件中的内容


    13.打开一个软件

    例如打开火狐:firefox -search "linux.cn"


    14.文件搜索相关

    文件搜索 
    find / -name fileName 从 '/' 开始进入根文件系统搜索文件和目录
    find / -user userName 搜索属于用户 'user1' 的文件和目录
    find /home/userName -name *.bin 在目录 '/ home/userName' 中搜索带有'.bin' 结尾的文件
    find /usr/bin -type f -atime +100 搜索在过去100天内未被使用过的执行文件
    find /usr/bin -type f -mtime -10 搜索在10天内被创建或者修改过的文件
    find / -name *.rpm -exec chmod 755 '{}' ; 搜索以 '.rpm' 结尾的文件并定义其权限
    find / -xdev -name *.rpm 搜索以 '.rpm' 结尾的文件,忽略光驱、捷盘等可移动设备
    locate *.ps 寻找以 '.ps' 结尾的文件 - 先运行 'updatedb' 命令
    whereis halt 显示一个二进制文件、源码或man的位置
    which halt 显示一个二进制文件或可执行文件的完整路径


    15.挂载一个文件系统

    此点中的命令没有经过测试
    mount /dev/hda2 /mnt/hda2 挂载一个叫做hda2的盘 - 确定目录 '/ mnt/hda2' 已经存在
    umount /dev/hda2 卸载一个叫做hda2的盘 - 先从挂载点 '/ mnt/hda2' 退出
    fuser -km /mnt/hda2 当设备繁忙时强制卸载
    umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用
    mount /dev/fd0 /mnt/floppy 挂载一个软盘
    mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom
    mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom
    mount /dev/hdb /mnt/cdrecorder 挂载一个cdrw或dvdrom
    mount -o loop file.iso /mnt/cdrom 挂载一个文件或ISO镜像文件
    mount -t vfat /dev/hda5 /mnt/hda5 挂载一个Windows FAT32文件系统
    mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备
    mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share 挂载一个windows网络共享


    16.用户和群组

    groupadd group_name 创建一个新用户组

    groups 查看当前登录用户的组内成员(需要root权限)

    whoami 查看当前登录的用户名

    useradd userName 创建一个新用户

    cat /etc/passwd |cut -f 1 -d : 查看当前所有用户

    groupdel group_name 删除一个用户组 
    groupmod -n new_group_name old_group_name 重命名一个用户组
    useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 "admin" 用户组的用户

    userdel -r user1 删除一个用户 ( '-r' 排除主目录)

    passwd user1 修改一个用户的口令 (只允许root执行)


    passwd 修改当前用户口令

    usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
    chage -E 2005-12-31 user1 设置用户口令的失效期限
    pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户
    grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组
    newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组


    17.文件的特殊属性

    使用 "+" 设置权限,使用 "-" 用于取消
    chattr +a file1 只允许以追加方式读写文件
    chattr +c file1 允许这个文件能被内核自动压缩/解压
    chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件
    chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接


    chattr +s file1 允许一个文件被安全地删除
    chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
    chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件

    lsattr 显示特殊的属性


    18.字符设置和文件格式转换

    dos2unix filedos.txt fileunix.txt 将一个文本文件的格式从MSDOS转换成UNIX
    unix2dos fileunix.txt filedos.txt 将一个文本文件的格式从UNIX转换成MSDOS
    recode ..HTML < page.txt > page.html 将一个文本文件转换成html
    recode -l | more 显示所有允许的转换格式


    19.文本处理

    cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT
    cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 合并一个文件的详细说明文本,并将简介写入一个新文件中
    cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合并一个文件的详细说明文本,并将简介写入一个已有的文件中
    grep Aug /var/log/messages 在文件 '/var/log/messages'中查找关键词"Aug"
    grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"开始的词汇
    grep [0-9] /var/log/messages 选择 '/var/log/messages' 文件中所有包含数字的行
    grep Aug -R /var/log/* 在目录 '/var/log' 及随后的目录中搜索字符串"Aug"
    sed 's/stringa1/stringa2/g' example.txt 将example.txt文件中的 "string1" 替换成 "string2"
    sed '/^$/d' example.txt 从example.txt文件中删除所有空白行
    sed '/ *#/d; /^$/d' example.txt 从example.txt文件中删除所有注释和空白行
    echo 'esempio' | tr '[:lower:]' '[:upper:]' 合并上下单元格内容
    sed -e '1d' example.txt 从文件example.txt 中排除第一行
    sed -n '/stringa1/p' 查看只包含词汇 "string1"的行
    sed -e 's/ *$//' example.txt 删除每一行最后的空白字符
    sed -e 's/stringa1//g' example.txt 从文档中只删除词汇 "string1" 并保留剩余全部
    sed -n '1,5p;5q' example.txt 查看从第一行到第5行内容
    sed -n '5p;5q' example.txt 查看第5行
    sed -e 's/00*/0/g' example.txt 用单个零替换多个零
    cat -n file1 标示文件的行数
    cat example.txt | awk 'NR%2==1' 删除example.txt文件中的所有偶数行
    echo a b c | awk '{print $1}' 查看一行第一栏
    echo a b c | awk '{print $1,$3}' 查看一行的第一和第三栏
    paste file1 file2 合并两个文件或两栏的内容
    paste -d '+' file1 file2 合并两个文件或两栏的内容,中间用"+"区分
    sort file1 file2 排序两个文件的内容
    sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份)
    sort file1 file2 | uniq -u 删除交集,留下其他的行文本处理

    sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件)
    cat file1 file2 ... | command <> file1_in.txt_or_file1_out.txt general syntax for text manipulation using PIPE, STDIN and STDOUT
    cat file1 | command( sed, grep, awk, grep, etc...) > result.txt 合并一个文件的详细说明文本,并将简介写入一个新文件中
    cat file1 | command( sed, grep, awk, grep, etc...) >> result.txt 合并一个文件的详细说明文本,并将简介写入一个已有的文件中
    grep Aug /var/log/messages 在文件 '/var/log/messages'中查找关键词"Aug"
    grep ^Aug /var/log/messages 在文件 '/var/log/messages'中查找以"Aug"开始的词汇
    grep [0-9] /var/log/messages 选择 '/var/log/messages' 文件中所有包含数字的行
    grep Aug -R /var/log/* 在目录 '/var/log' 及随后的目录中搜索字符串"Aug"
    sed 's/stringa1/stringa2/g' example.txt 将example.txt文件中的 "string1" 替换成 "string2"
    sed '/^$/d' example.txt 从example.txt文件中删除所有空白行
    sed '/ *#/d; /^$/d' example.txt 从example.txt文件中删除所有注释和空白行
    echo 'esempio' | tr '[:lower:]' '[:upper:]' 合并上下单元格内容
    sed -e '1d' result.txt 从文件example.txt 中排除第一行
    sed -n '/stringa1/p' 查看只包含词汇 "string1"的行
    sed -e 's/ *$//' example.txt 删除每一行最后的空白字符
    sed -e 's/stringa1//g' example.txt 从文档中只删除词汇 "string1" 并保留剩余全部
    sed -n '1,5p;5q' example.txt 查看从第一行到第5行内容
    sed -n '5p;5q' example.txt 查看第5行
    sed -e 's/00*/0/g' example.txt 用单个零替换多个零
    cat -n file1 标示文件的行数
    cat example.txt | awk 'NR%2==1' 删除example.txt文件中的所有偶数行
    echo a b c | awk '{print $1}' 查看一行第一栏
    echo a b c | awk '{print $1,$3}' 查看一行的第一和第三栏
    paste file1 file2 合并两个文件或两栏的内容
    paste -d '+' file1 file2 合并两个文件或两栏的内容,中间用"+"区分
    sort file1 file2 排序两个文件的内容
    sort file1 file2 | uniq 取出两个文件的并集(重复的行只保留一份)
    sort file1 file2 | uniq -u 删除交集,留下其他的行
    sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件)
    comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容
    comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容
    comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分
    sort file1 file2 | uniq -d 取出两个文件的交集(只留下同时存在于两个文件中的文件)
    comm -1 file1 file2 比较两个文件的内容只删除 'file1' 所包含的内容
    comm -2 file1 file2 比较两个文件的内容只删除 'file2' 所包含的内容
    comm -3 file1 file2 比较两个文件的内容只删除两个文件共有的部分


    20.其他命令集

    clear 清屏

    su 进入管理者模式(ubuntu下不适用)

    uname -r 查看内核版本

  • 相关阅读:
    设计工具
    makefile介绍1.0
    cpp命名空间
    第二课 生活智慧
    第一课 我想找到好工作,我想挣钱
    php CURL
    apache 改变文档根目录www的位置
    yii2 模块的创建及使用
    yii2 源码分析Action类分析 (六)
    yii2 源码分析 model类分析 (五)
  • 原文地址:https://www.cnblogs.com/fengju/p/6336109.html
Copyright © 2011-2022 走看看