精华内容
下载资源
问答
  • linux下启动停止命令脚本dc.sh
  • linux下常用命令

    千次阅读 2014-12-02 16:06:00
    linux下查看线程方法 1、cat /proc/${pid}/status 2、pstree -p ${pid} 3、top -p ${pid}再按H,显示线程 4、ps -mp ${pid}

    linux下查看线程方法

    1、cat /proc/${pid}/status

    2、pstree -p ${pid}

    3、top -p ${pid}再按H,显示线程

    4、ps -mp ${pid}



    linux下查看端口

    netstat这个命令常用在网络监控方面。利用这个命令,可以查看当前系统监听的服务和已经建立的服务,以及相应的端口、协议等信息。

    netstat参数说明

    netstat参数虽然很多,但是常用的不多,主要是下面几个参数:

    netstat -[atunlp]
    
    • -a :all,表示列出所有的连接,服务监听,Socket资料
    • -t :tcp,列出tcp协议的服务
    • -u :udp,列出udp协议的服务
    • -n :port number, 用端口号来显示
    • -l :listening,列出当前监听服务
    • -p :program,列出服务程序的PID

    如果你需要深入了解,可以用man netstat查看netstat命令的详细说明。

    netstat -atunlp

    展开全文
  • windows可以使用linux命令的工具, 如zip\awk\cat\cp\curl\chown\chomd\date\cut\dd\dc\df\find\join\ll\patch\rm\printf\wc等等基础linux 使用命令,方便windows开发人员使用,提升开发效率。
  • Linux sndconfig命令 Linux sndconfig命令用于设置声卡。 sndconfig为声卡设置程序,支持PnP设置,可自动检测并设置PnP声卡。 语法sndconfig [--help][--noautoconfig][--noprobe] 参数: –help 显示帮助。 –...
  • Linux kbdconfig命令 Linux kbdconfig命令用于设置键盘类型。 kbdconfig(Red Hat Linux才有的指令)是一个用来设置键盘的程序,提供图形化的操作界面。kbdconfig实际上是修改/etc/sysconfig/keyboard的键盘配置文件。...
  • Linux常用命令全集

    千次阅读 多人点赞 2013-01-22 13:40:35
    Linux常用命令全集 http://www.jb51.net/linux/ 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 -

    引言:最近被要求写shell备份数据库,个人觉得Linux的操作还是极为重要的,所以转载了别人比较好的文章,留作后用!

    Linux常用命令全集 http://www.jb51.net/linux/

    系统信息
    arch 显示机器的处理器架构(1)
    uname -m 显示机器的处理器架构(2)
    uname -r 显示正在使用的内核版本
    dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
    hdparm -i /dev/hda 罗列一个磁盘的架构特性
    hdparm -tT /dev/sda 在磁盘上执行测试性读取操作
    cat /proc/cpuinfo 显示CPU info的信息
    cat /proc/interrupts 显示中断
    cat /proc/meminfo 校验内存使用
    cat /proc/swaps 显示哪些swap被使用
    cat /proc/version 显示内核的版本
    cat /proc/net/dev 显示网络适配器及统计
    cat /proc/mounts 显示已加载的文件系统
    lspci -tv 罗列 PCI 设备
    lsusb -tv 显示 USB 设备
    date 显示系统日期
    cal 2007 显示2007年的日历表
    date 041217002007.00 设置日期和时间 - 月日时分年.秒
    clock -w 将时间修改保存到 BIOS

    关机 (系统的关机、重启以及登出 )
    shutdown -h now 关闭系统(1)
    init 0 关闭系统(2)
    telinit 0 关闭系统(3)
    shutdown -h hours:minutes & 按预定时间关闭系统
    shutdown -c 取消按预定时间关闭系统
    shutdown -r now 重启(1)
    reboot 重启(2)
    logout 注销

    文件和目录
    cd /home 进入 '/ home' 目录'
    cd .. 返回上一级目录
    cd ../.. 返回上两级目录
    cd 进入个人的主目录
    cd ~user1 进入个人的主目录
    cd - 返回上次所在的目录
    pwd 显示工作路径
    ls 查看目录中的文件
    ls -F 查看目录中的文件
    ls -l 显示文件和目录的详细资料
    ls -a 显示隐藏文件
    ls *[0-9]* 显示包含数字的文件名和目录名
    tree 显示文件和目录由根目录开始的树形结构(1)
    lstree 显示文件和目录由根目录开始的树形结构(2)
    mkdir dir1 创建一个叫做 'dir1' 的目录'
    mkdir dir1 dir2 同时创建两个目录
    mkdir -p /tmp/dir1/dir2 创建一个目录树
    rm -f file1 删除一个叫做 'file1' 的文件'
    rmdir dir1 删除一个叫做 'dir1' 的目录'
    rm -rf dir1 删除一个叫做 'dir1' 的目录并同时删除其内容
    rm -rf dir1 dir2 同时删除两个目录及它们的内容
    mv dir1 new_dir 重命名/移动 一个目录
    cp file1 file2 复制一个文件
    cp dir/* . 复制一个目录下的所有文件到当前工作目录
    cp -a /tmp/dir1 . 复制一个目录到当前工作目录
    cp -a dir1 dir2 复制一个目录
    ln -s file1 lnk1 创建一个指向文件或目录的软链接
    ln file1 lnk1 创建一个指向文件或目录的物理链接
    touch -t 0712250000 file1 修改一个文件或目录的时间戳 - (YYMMDDhhmm)
    file file1 outputs the mime type of the file as text
    iconv -l 列出已知的编码
    iconv -f fromEncoding -t toEncoding inputFile > outputFile creates a new from the given input file by assuming it is encoded in fromEncoding and converting it to toEncoding.
    find . -maxdepth 1 -name *.jpg -print -exec convert "{}" -resize 80x60 "thumbs/{}" \; batch resize files in the current directory and send them to a thumbnails directory (requires convert from Imagemagick)

    文件搜索
    find / -name file1 从 '/' 开始进入根文件系统搜索文件和目录
    find / -user user1 搜索属于用户 'user1' 的文件和目录
    find /home/user1 -name \*.bin 在目录 '/ home/user1' 中搜索带有'.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 显示一个二进制文件或可执行文件的完整路径

    挂载一个文件系统
    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网络共享

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

    用户和群组
    groupadd group_name 创建一个新用户组
    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" 用户组的用户
    useradd user1 创建一个新用户
    userdel -r user1 删除一个用户 ( '-r' 排除主目录)
    usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
    passwd 修改口令
    passwd user1 修改一个用户的口令 (只允许root执行)
    chage -E 2005-12-31 user1 设置用户口令的失效期限
    pwck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的用户
    grpck 检查 '/etc/passwd' 的文件格式和语法修正以及存在的群组
    newgrp group_name 登陆进一个新的群组以改变新创建文件的预设群组

    文件的权限 - 使用 "+" 设置权限,使用 "-" 用于取消
    ls -lh 显示权限
    ls /tmp | pr -T5 -W$COLUMNS 将终端划分成5栏显示
    chmod ugo+rwx directory1 设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限
    chmod go-rwx directory1 删除群组(g)与其他人(o)对目录的读写执行权限
    chown user1 file1 改变一个文件的所有人属性
    chown -R user1 directory1 改变一个目录的所有人属性并同时改变改目录下所有文件的属性
    chgrp group1 file1 改变文件的群组
    chown user1:group1 file1 改变一个文件的所有人和群组属性
    find / -perm -u+s 罗列一个系统中所有使用了SUID控制的文件
    chmod u+s /bin/file1 设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限
    chmod u-s /bin/file1 禁用一个二进制文件的 SUID位
    chmod g+s /home/public 设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的
    chmod g-s /home/public 禁用一个目录的 SGID 位
    chmod o+t /home/public 设置一个文件的 STIKY 位 - 只允许合法所有人删除文件
    chmod o-t /home/public 禁用一个目录的 STIKY 位

    文件的特殊属性 - 使用 "+" 设置权限,使用 "-" 用于取消
    chattr +a file1 只允许以追加方式读写文件
    chattr +c file1 允许这个文件能被内核自动压缩/解压
    chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件
    chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接
    chattr +s file1 允许一个文件被安全地删除
    chattr +S file1 一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘
    chattr +u file1 若文件被删除,系统会允许你在以后恢复这个被删除的文件
    lsattr 显示特殊的属性

    打包和压缩文件
    bunzip2 file1.bz2 解压一个叫做 'file1.bz2'的文件
    bzip2 file1 压缩一个叫做 'file1' 的文件
    gunzip file1.gz 解压一个叫做 'file1.gz'的文件
    gzip file1 压缩一个叫做 'file1'的文件
    gzip -9 file1 最大程度压缩
    rar a file1.rar test_file 创建一个叫做 'file1.rar' 的包
    rar a file1.rar file1 file2 dir1 同时压缩 'file1', 'file2' 以及目录 'dir1'
    rar x file1.rar 解压rar包
    unrar x file1.rar 解压rar包
    tar -cvf archive.tar file1 创建一个非压缩的 tarball
    tar -cvf archive.tar file1 file2 dir1 创建一个包含了 'file1', 'file2' 以及 'dir1'的档案文件
    tar -tf archive.tar 显示一个包中的内容
    tar -xvf archive.tar 释放一个包
    tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下
    tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包
    tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包
    tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包
    tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包
    zip file1.zip file1 创建一个zip格式的压缩包
    zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包
    unzip file1.zip 解压一个zip格式压缩包

    RPM 包 - (Fedora, Redhat及类似系统)
    rpm -ivh package.rpm 安装一个rpm包
    rpm -ivh --nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告
    rpm -U package.rpm 更新一个rpm包但不改变其配置文件
    rpm -F package.rpm 更新一个确定已经安装的rpm包
    rpm -e package_name.rpm 删除一个rpm包
    rpm -qa 显示系统中所有已经安装的rpm包
    rpm -qa | grep httpd 显示所有名称中包含 "httpd" 字样的rpm包
    rpm -qi package_name 获取一个已安装包的特殊信息
    rpm -qg "System Environment/Daemons" 显示一个组件的rpm包
    rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表
    rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表
    rpm -q package_name --whatrequires 显示与一个rpm包存在依赖关系的列表
    rpm -q package_name --whatprovides 显示一个rpm包所占的体积
    rpm -q package_name --scripts 显示在安装/删除期间所执行的脚本l
    rpm -q package_name --changelog 显示一个rpm包的修改历史
    rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供
    rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表
    rpm --import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书
    rpm --checksig package.rpm 确认一个rpm包的完整性
    rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性
    rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间
    rpm -Va 检查系统中所有已安装的rpm包- 小心使用
    rpm -Vp package.rpm 确认一个rpm包还未安装
    rpm2cpio package.rpm | cpio --extract --make-directories *bin* 从一个rpm包运行可执行文件
    rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm 从一个rpm源码安装一个构建好的包
    rpmbuild --rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包

    YUM 软件包升级器 - (Fedora, RedHat及类似系统)
    yum install package_name 下载并安装一个rpm包
    yum localinstall package_name.rpm 将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系
    yum update package_name.rpm 更新当前系统中所有安装的rpm包
    yum update package_name 更新一个rpm包
    yum remove package_name 删除一个rpm包
    yum list 列出当前系统中安装的所有包
    yum search package_name 在rpm仓库中搜寻软件包
    yum clean packages 清理rpm缓存删除下载的包
    yum clean headers 删除所有头文件
    yum clean all 删除所有缓存的包和头文件

    DEB 包 (Debian, Ubuntu 以及类似系统)
    dpkg -i package.deb 安装/更新一个 deb 包
    dpkg -r package_name 从系统删除一个 deb 包
    dpkg -l 显示系统中所有已经安装的 deb 包
    dpkg -l | grep httpd 显示所有名称中包含 "httpd" 字样的deb包
    dpkg -s package_name 获得已经安装在系统中一个特殊包的信息
    dpkg -L package_name 显示系统中已经安装的一个deb包所提供的文件列表
    dpkg --contents package.deb 显示尚未安装的一个包所提供的文件列表
    dpkg -S /bin/ping 确认所给的文件由哪个deb包提供

    APT 软件工具 (Debian, Ubuntu 以及类似系统)
    apt-get install package_name 安装/更新一个 deb 包
    apt-cdrom install package_name 从光盘安装/更新一个 deb 包
    apt-get update 升级列表中的软件包
    apt-get upgrade 升级所有已安装的软件
    apt-get remove package_name 从系统删除一个deb包
    apt-get check 确认依赖的软件仓库正确
    apt-get clean 从下载的软件包中清理缓存
    apt-cache search searched-package 返回包含所要搜索字符串的软件包名称

    查看文件内容
    cat file1 从第一个字节开始正向查看文件的内容
    tac file1 从最后一行开始反向查看一个文件的内容
    more file1 查看一个长文件的内容
    less file1 类似于 'more' 命令,但是它允许在文件中和正向操作一样的反向操作
    head -2 file1 查看一个文件的前两行
    tail -2 file1 查看一个文件的最后两行
    tail -f /var/log/messages 实时查看被添加到一个文件中的内容

    文本处理
    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 比较两个文件的内容只删除两个文件共有的部分

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

    文件系统分析
    badblocks -v /dev/hda1 检查磁盘hda1上的坏磁块
    fsck /dev/hda1 修复/检查hda1磁盘上linux文件系统的完整性
    fsck.ext2 /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性
    e2fsck /dev/hda1 修复/检查hda1磁盘上ext2文件系统的完整性
    e2fsck -j /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性
    fsck.ext3 /dev/hda1 修复/检查hda1磁盘上ext3文件系统的完整性
    fsck.vfat /dev/hda1 修复/检查hda1磁盘上fat文件系统的完整性
    fsck.msdos /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性
    dosfsck /dev/hda1 修复/检查hda1磁盘上dos文件系统的完整性

    初始化一个文件系统
    mkfs /dev/hda1 在hda1分区创建一个文件系统
    mke2fs /dev/hda1 在hda1分区创建一个linux ext2的文件系统
    mke2fs -j /dev/hda1 在hda1分区创建一个linux ext3(日志型)的文件系统
    mkfs -t vfat 32 -F /dev/hda1 创建一个 FAT32 文件系统
    fdformat -n /dev/fd0 格式化一个软盘
    mkswap /dev/hda3 创建一个swap文件系统

    SWAP文件系统
    mkswap /dev/hda3 创建一个swap文件系统
    swapon /dev/hda3 启用一个新的swap文件系统
    swapon /dev/hda2 /dev/hdb3 启用两个swap分区

    备份
    dump -0aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的完整备份
    dump -1aj -f /tmp/home0.bak /home 制作一个 '/home' 目录的交互式备份
    restore -if /tmp/home0.bak 还原一个交互式备份
    rsync -rogpav --delete /home /tmp 同步两边的目录
    rsync -rogpav -e ssh --delete /home ip_address:/tmp 通过SSH通道rsync
    rsync -az -e ssh --delete ip_addr:/home/public /home/local 通过ssh和压缩将一个远程目录同步到本地目录
    rsync -az -e ssh --delete /home/local ip_addr:/home/public 通过ssh和压缩将本地目录同步到远程目录
    dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr 'dd of=hda.gz' 通过ssh在远程主机上执行一次备份本地磁盘的操作
    dd if=/dev/sda of=/tmp/file1 备份磁盘内容到一个文件
    tar -Puf backup.tar /home/user 执行一次对 '/home/user' 目录的交互式备份操作
    ( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr 'cd /home/share/ && tar x -p' 通过ssh在远程目录中复制一个目录内容
    ( tar c /home ) | ssh -C user@ip_addr 'cd /home/backup-home && tar x -p' 通过ssh在远程目录中复制一个本地目录
    tar cf - . | (cd /tmp/backup ; tar xf - ) 本地将一个目录复制到另一个地方,保留原有权限及链接
    find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents 从一个目录查找并复制所有以 '.txt' 结尾的文件到另一个目录
    find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2 查找所有以 '.log' 结尾的文件并做成一个bzip包
    dd if=/dev/hda of=/dev/fd0 bs=512 count=1 做一个将 MBR (Master Boot Record)内容复制到软盘的动作
    dd if=/dev/fd0 of=/dev/hda bs=512 count=1 从已经保存到软盘的备份中恢复MBR内容

    光盘
    cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force 清空一个可复写的光盘内容
    mkisofs /dev/cdrom > cd.iso 在磁盘上创建一个光盘的iso镜像文件
    mkisofs /dev/cdrom | gzip > cd_iso.gz 在磁盘上创建一个压缩了的光盘iso镜像文件
    mkisofs -J -allow-leading-dots -R -V "Label CD" -iso-level 4 -o ./cd.iso data_cd 创建一个目录的iso镜像文件
    cdrecord -v dev=/dev/cdrom cd.iso 刻录一个ISO镜像文件
    gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - 刻录一个压缩了的ISO镜像文件
    mount -o loop cd.iso /mnt/iso 挂载一个ISO镜像文件
    cd-paranoia -B 从一个CD光盘转录音轨到 wav 文件中
    cd-paranoia -- "-3" 从一个CD光盘转录音轨到 wav 文件中(参数-3)
    cdrecord --scanbus 扫描总线以识别scsi通道
    dd if=/dev/hdc | md5sum 校验一个设备的md5sum编码,例如一张 CD

    网络 - (以太网和WIFI无线)
    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

    Microsoft Windows networks (SAMBA)
    nbtscan ip_addr netbios name resolution
    nmblookup -A ip_addr netbios name resolution
    smbclient -L ip_addr/hostname show remote shares of a windows host
    smbget -Rr smb://ip_addr/share like wget can download files from a host windows via smb
    mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share mount a windows network share

    转自:http://www.jb51.net/LINUXjishu/69938.html

    展开全文
  • linux下的一些常见命令学习

    万次阅读 多人点赞 2017-08-05 17:21:38
    Linux常用命令学习Linux常用命令学习 1 last命令 2 awk命令 3 cat命令 4 top命令 5 ps命令1、 last命令last命令用于显示用户最近登录信息。单独执行last命令,它会读取/var/log/wtmp的文件,并把该文件中记录的登入...

    Linux常用命令学习

    1、 显示用户最近登录信息: last命令

    last命令用于显示用户最近登录信息。单独执行last命令,它会读取/var/log/wtmp的文件,并把该文件中记录的登入系统的用户名单全部显示出来

    语法

    last (选项)(参数)

    选项

    -a : 把从何处登入系统的主机名称或IP地址,显示在最后一行
    -d : 将IP地址转换成主机名称
    -f <记录文件>:指定记录文件
    -n <显示列数>或-<显示列数> : 设置列出名单的显示列数
    -R :不显示登入系统的主机名称或IP地址
    -x :显示系统关机,重新开机,以及执行等级的改变等信息

    参数

    用户名 : 显示用户登录列表
    终端 : 显示从指定终端的登录列表

    实例
    这里写图片描述

    2、将文件按列显示: awk命令

    awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
    awk有3个不同的版本:awk、nawk和gawk,未做特殊说明,一般指gawk,这个是AWK的GNU版本

    语法:

    awk '{pattern + action}' {filenames}

    其中pattern表示AWK在数据中查找的内容,而action是在找到匹配内容时所执行的一系列命令,花括号{}不需要在程序中出现,但它们用于根据特定的模式对一系列指令进行分组。pattern就是要表示的正则表达式,用斜杠括起来。

    awk语言的最基本功能局势在文件或者字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作。完整的awk脚本通常用来格式化文本文件中的信息。

    通常,awk是以文件的一行为处理单位的。awk每接收文件的一行,然后执行相应的命令,来处理文本。

    入门例子:
    输入last -n -5后输出如下:

    root@yushan-virtual-machine:~# last -n 5
    yushan   pts/20       218.241.251.145  Sat Aug  5 16:38   still logged in   
    yushan   pts/20       218.241.251.145  Sat Aug  5 16:28 - 16:38  (00:09)    
    yushan   pts/11       218.241.251.145  Sat Aug  5 16:22   still logged in   
    yushan   pts/9        218.241.251.145  Sat Aug  5 15:49   still logged in   
    yushan   pts/9        114.255.40.54    Fri Aug  4 21:03 - 00:03  (02:59)    

    如果只是显示最近登录的5个账号

    root@yushan-virtual-machine:~# last -n 5 | awk '{print $1}'
    yushan
    yushan
    yushan
    yushan
    yushan

    awk工作流程是这样的:读入有’\n’换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域。默认域分隔符是“空白键”或“[tab]键”,所以$1表示登录用户,$3表示登录用户IP,以此类推。

    只显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割

    root@yushan-virtual-machine:~# cat /etc/passwd |awk -F':' '{print $1"\t"$7}'
    root    /bin/bash
    daemon  /usr/sbin/nologin
    bin /usr/sbin/nologin
    sys /usr/sbin/nologin
    sync    /bin/sync

    -F 指定域分隔符为’:’

    只显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以逗号分割,而且在所有行添加列名name, shell,在最后一行添加“blue, /bin/nosh”

    root@yushan-virtual-machine:~# cat /etc/passwd |awk -F':' 'BEGIN{print "name, shell"} {print $1","$7} END{print "blue, /bin/nosh"}'
    name, shell
    root,/bin/bash
    daemon,/usr/sbin/nologin
    bin,/usr/sbin/nologin
    sys,/usr/sbin/nologin
    ....
    blue, /bin/nosh

    awk工作流程是这样的:先执行BEGIN,然后读取文件,读入有\n换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的动作action。接着开始读入第二条记录……直到所有的记录都读完,最后执行END操作。

    搜索/etc/passwd有root关键字的所有行

    root@yushan-virtual-machine:~# awk -F: '/root/' /etc/passwd
    root:x:0:0:root:/root:/bin/bash

    这种是pattern的使用示例,匹配了pattern(这里是root)的行才会执行action(没有指定action,默认输出每行的内容)

    ….待补充…..

    3、 查看文件内容: cat命令

    cat命令主要用来查看文件内容,创建文件,文件合并,追加文件内容等功能。

    查看文件内容主要用法:
    1、cat f1.txt,查看f1.txt文件的内容。
    2、cat -n f1.txt,查看f1.txt文件的内容,并且由1开始对所有输出行进行编号。
    3、cat -b f1.txt,查看f1.txt文件的内容,用法与-n相似,只不过对于空白行不编号。
    4、cat -s f1.txt,当遇到有连续两行或两行以上的空白行,就代换为一行的空白行。
    5、cat -e f1.txt,在输出内容的每一行后面加一个$符号。
    6、cat f1.txt f2.txt,同时显示f1.txt和f2.txt文件内容,注意文件名之间以空格分隔,而不是逗号。
    7、cat -n f1.txt>f2.txt,对f1.txt文件中每一行加上行号后然后写入到f2.txt中,会覆盖原来的内容,文件不存在则创建它。
    8、cat -n f1.txt>>f2.txt,对f1.txt文件中每一行加上行号后然后追加到f2.txt中去,不会覆盖原来的内容,文件不存在则创建它。

    例子:

    root@yushan-virtual-machine:/home/jqw/workspace# cat hello.cpp
    #include<iostream>
    using namespace std;
    int main(){
        int *p = NULL;
        cout<<*p<<endl;
        return 0;
    }
    root@yushan-virtual-machine:/home/jqw/workspace# cat -n hello.cpp
         1  #include<iostream>
         2  using namespace std;
         3  int main(){
         4      int *p = NULL;
         5      cout<<*p<<endl;
         6      return 0;
         7  }
    root@yushan-virtual-machine:/home/jqw/workspace# 

    4、 实时显示进程资源占用情况: top命令

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。下面是top命令的部分截图:

    这里写图片描述

    分析:
    (1)第1行分别显示:系统当前时间、系统运行时间、当前用户登录数和系统负载。
    系统负载有3个数值,分别是系统最近1min、5min、15min的平均负载。一般对于单个处理器来说,负载在0~1.00是正常的,超过1.00就要引起注意了。在多核处理器中,系统均值不应该高于处理器核心的总数。
    (2)第2行分别显示:total(进程总数)、running(正在运行的进程数)、sleeping(睡眠的进程数)、stopped(停止的进程数)和zombie(僵尸进程数)
    (3)第3行分别显示:%us(用户空间占用CPU百分比)、%sy(内核空间占用CPU百分比)、%ni(用户进程空间内改变过优先级的进程占用CPU百分比)、%id(空闲CPU百分比)、%wa(等待输入输出(I/O)的CPU时间百分比)、%hi(CPU处理硬件中断的时间)、%si(CPU处理软中断的时间)、%st(用于有虚拟CPU的情况)。通常id%值可以反映一个系统CPU的闲忙程度。
    (4)第4行显示内存MEM的数据:total(物理内存总量)、used(使用的物理内存总量)、free(空闲内存总量)、buffers(用作内核缓存的内存量)。
    (5)第5行则显示交换器SWAP的数据:total(交换区总量)、used(使用的交换区总量)、free(空闲交换区总量)、cached(缓冲的交换区总量)。
    (6)第6行则显示PID(进程号)、USER(运行用户)、PR(优先级)、NI(任务nice值)、VIRT(虚拟内存用量)VITR=SWAP+RES、RES(物理内存用量)、SHR(共享内存用量)、S(进程状态)、%CPU(CPU占用比)、%MEM(物理内存占用比)、TIME+(累计CPU占用时间)、COMMAND命令名/命令行

    buffers和cached的区别:
    buffers指的是块设备的读写缓冲区,cached指的是文件系统本身的页面缓存。它们都是Linux操作系统底层的机制,目的就是为了加速对磁盘的访问。

    总结:
    top命令显示系统当前的进程和其他状况,top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如果在前台执行该命令,它将独占前台,直到用户终止该程序为止。
    top命令提供了实时地对系统处理器的状态监视。它将显示系统中CPU最“敏感”的任务列表。该命令可以按CPU使用、内存使用和执行时间对任务进行排序。输入“q”,则退出top命令。

    5、显示当前运行的进程快照: ps命令

    Linux中的ps(process status)命令列出的是当前在运行的进程的快照,就是执行ps命令的那个时刻的那些进程。ps命令提供进程的一次性的查看,它提供的查看结果并不动态连续,如果想要对进程时间监控,动态地显示进程信息,应该使用top命令。

    这里写图片描述

    (1)显示指定用户信息
    命令:ps -u username

    这里写图片描述

    (2)显示所有进程信息,连同命令行
    命令:ps -ef

    这里写图片描述

    (3)ps与grep常用组合用法,查找特定进程
    命令:ps -ef | grep yushan

    这里写图片描述

    (4)将目前登入的PID与相关信息列示出来
    命令:ps -l

    这里写图片描述

    各相关信息的意义如下所述:
    (1)F代表这个程序的旗标(flag),4代表使用者为super user
    (2)S代表这个程序的状态(STAT)
    (3)UID程序被该UID所拥有
    (4)PID就是这个程序的进程id
    (5)PPID则是其父进程的进程id
    (6)C是使用的CPU资源百分比
    (7)PRI是Priority(优先执行序)的缩写
    (8)NI是Nice值
    (9)ADDR是Kernel function,指出该程序在内存的那个部分。如果是running的程序,一般就是“-”
    (10)SZ使用掉的内存大小
    (11)WCHAN目前这个程序是否正在运行当中,若为-表示正在运作
    (12)TTY登入者的终端机位置
    (13)TIME使用掉的CPU时间
    (14)CMD所下达的指令内容。

    (5)列出目前所有的正在内存当中的程序

    这里写图片描述

    各参数含义说明:
    (1)USER:该进程属于哪个使用者账号
    (2)PID:进程id
    (3)%CPU:该进程使用掉的CPU资源百分比
    (4)%MEM:该进程所占用的物理内存百分比
    (5)VSZ:该进程使用掉的虚拟内存量(KBytes)
    (6)RSS:该进程占用的固定的内存量(KBytes)
    (7)TTY:该进程是在哪个终端机上面运作,若与终端机无关,则显示“?”,另外,tty1-tty6是本机上面的登入者程序,若为pts/0等,则表示为由网络连接进主机的程序。
    (8)STAT:该程序目前的状态。主要有以下几种
    R:该程序目前正在运行,或者是可被运行
    S:该程序目前正在睡眠当中(可说是idle状态),但可被某些信号(signal)唤醒。
    T:该程序目前正在侦测或者是停止了
    Z:该程序应该已经终止,但是其父程序却无法正常地终止它,造成zombie(僵死)程序的状态。

    6、 显示文件内容: more命令

    作用:显示文件内容,每次显示一屏
    格式:more [选项] 文件
    例子:more server.cpp
    说明:该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今已显示的该文件的百分比:–更多–(37%)

    下面是可以进行的一些操作:
    (1)按space键,显示文本的下一屏内容。
    (2)按enter键,只显示文本的下一行内容。
    (3)按斜线符(|),接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
    (4)按H键,显示帮助屏,该屏上有相关的帮助信息。
    (5)按B键,显示上一屏内容。
    (6)按Q键,退出more命令

    常用选项:
    -<数字>:这个选项指定每屏显示的行数,表示一屏显示多少行,例如:more -10 server.cpp。这样就会每屏只显示10行。
    -d:在每屏的底部显示更友好的提示信息:–更多–(34%)[按空格键继续,“q”键退出。]
    而且当用户按键时有错误,则显示[Press ’h’, for instructions.]信息,而不是简单的报警。
    -c或-p:不滚屏,在显示下一屏之前先清屏
    -s:将文件中连续的空白行压缩成一个空白行显示
    +/:将选项后的模式(Pattern)指定显示每个文件之前进行搜索的字符串
    +num,从行号num开始

    例子:
    (1)显示文件file的内容,但在显示之前先清屏,并且在屏幕的最下方显示完整的百分比

    # more -dc file

    (2)显示文件file的内容,每10行显示一次,而且在显示之前先清屏

    # more -c -10 file

    7、 显示文件内容: less命令

    more和less一般用于显示文件内容超过一屏的内容,并且提供翻页的功能。more比cat强大,提供分页显示的功能,less比more更强大,提供翻页,跳转,查找等命令。而且more和less都支持:用空格显示下一页,按键b显示上一页

    作用:
    less工具也是对文件或其他输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。less的用法比起more更加的有弹性。在more的时候,我们并没有办法向前面翻,只能往后面看,但若使用了less时,就可以使用[pageup] [pagedown]等按键的功能来往前往后翻看文件,更容易用来查看一个文件的内容。除此之外,在less里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。


    **格式:**less [参数] 文件
    命令参数:
    -b <缓冲区大小>:设置缓冲区的大小
    -e:当文件显示结束后,自动离开
    -f: 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
    -g:只标志最后搜索的关键词
    -i:忽略搜索时的大小写
    -m:显示类似more命令的百分比
    -n:显示每行的行号
    -o <文件名>:将less输出的内容在指定文件中保存起来
    -s:显示连续空行为一行
    操作:
    b:向前翻一页
    d:向后翻半页
    h:显示帮助界面
    q:退出less命令
    u:向前滚动半页
    y:向前滚动一行
    空格键:滚动一页
    回车键:滚动一行

    8、 查看分区可见空间: df命令

    面试题:Ubuntu系统常用的文件系统类型是什么?
    Linux常见的文件系统有:JFS、 ReiserFS、ext、ext2、ext3、ISO9660、XFS、Minx、MSDOS、UMSDOS、VFAT、NTFS、HPFS、NFS、 SMB、SysV、PROC等

    可以通过df进行查看

    root@yushan-virtual-machine:~# df -T -h
    文件系统       类型      容量  已用  可用 已用% 挂载点
    /dev/sda1      ext4       20G  8.5G   11G   46% /
    none           tmpfs     4.0K     0  4.0K    0% /sys/fs/cgroup
    udev           devtmpfs   15G  8.0K   15G    1% /dev
    tmpfs          tmpfs     3.0G  956K  3.0G    1% /run
    none           tmpfs     5.0M     0  5.0M    0% /run/lock
    none           tmpfs      15G  152K   15G    1% /run/shm
    none           tmpfs     100M   56K  100M    1% /run/user
    /dev/sda2      ext4       69G  8.8G   57G   14% /data

    查看分区可用空间的命令是df

    root@yushan-virtual-machine:~# df
    文件系统       1K-blocks    已用     可用 已用% 挂载点
    /dev/sda1       20511356 8834652 10611744   46% /
    none                   4       0        4    0% /sys/fs/cgroup
    udev            15431448       8 15431440    1% /dev
    tmpfs            3088448     956  3087492    1% /run
    none                5120       0     5120    0% /run/lock
    none            15442228     152 15442076    1% /run/shm
    none              102400      56   102344    1% /run/user
    /dev/sda2       72115528 9218004 59211228   14% /data

    下面是相关命令的解释:

    df -hl 查看磁盘剩余空间

    df -h 查看每个根路径的分区大小

    du -sh [目录名] 返回该目录的大小

    du -sm [文件夹] 返回该文件夹总M数

    Linux面试题

    1、 知道linux下哪些命令?如何找出当前进程中占用内存最大的进程?

    ps aux和ps -ef
    两者的输出结果差别不大,但展示风格不同。aux是BSD风格,-ef是System V风格。这是次要的区别,一个影响使用的区别是aux会截断command列,而-ef不会。当结合grep时这种区别会影响到结果。

    (1)命令行输入top回车,然后按下大写M按照memory排序,按下大写P按照CPU排序。
    (2)ps aux | head -N
    head:-N可以指定显示的行数,默认显示10行
    ps:参数a指代all—所有的进程,u指代userid——执行该进程的用户id,x指代显示所有程序,不以终端机来区分。

    ps aux | sort -k4nr | head -N
    sort -k4nr:k代表从根据哪一个关键词排序,后面的数字4表示按照第四列排序;n指代numberic sort根据其数值排序;r指代reverse,这里是指反向比较结果,输出时默认从小到大,反向后从大到小。

    root@yushan-virtual-machine:~# ps -aux | head -10
    USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
    root 1 0.0 0.0 33920 3176 ? Ss 8月25 0:04 /sbin/init
    root 2 0.0 0.0 0 0 ? S 8月25 0:00 [kthreadd]
    root 3 0.0 0.0 0 0 ? S 8月25 0:00 [ksoftirqd/0]
    root 4 0.0 0.0 0 0 ? S 8月25 0:00 [kworker/0:0]
    root 5 0.0 0.0 0 0 ? S< 8月25 0:00 [kworker/0:0H]
    root 7 0.0 0.0 0 0 ? S 8月25 0:28 [rcu_sched]
    root 8 0.0 0.0 0 0 ? S 8月25 0:04 [rcuos/0]
    root 9 0.0 0.0 0 0 ? S 8月25 0:12 [rcuos/1]
    root 10 0.0 0.0 0 0 ? S 8月25 0:06 [rcuos/2]

    本例中,可以看到%MEM在第4个位置,所以是根据%MEM的数值进行从大到小的排序。-k3表示按照CPU占用率排序

    列出所有端口:netstat -a
    列出所有的TCP端口:netstat -at
    列出所有的UDP端口:netstat -au
    列出所有处于监听状态的socket:netstat -l
    列出所有监听TCP端口的socket:netstat -lt
    列出所有监听UDP端口的socket:netstat -lu
    找出程序运行的端口:netstat -ap | grep ssh
    找出运行在指定端口的进程:netstat -an | grep ‘:80’

    2、 linux输出一个文件的最后一行

    linux如何显示一个文件的某几行(中间几行)
    (1)从第3000行开始,显示1000行,即显示3000~3999行
    cat filename | tail -n +3000 | head -n 1000
    (2)显示1000行到3000行
    cat filename | head -n 3000 | tail -n +1000

    tail -n 1000:显示最后1000行
    tail -n +1000:从1000行开始显示,显示1000行以后的
    head -n 1000:显示前面1000行

    展开全文
  • Linux下tr命令详解

    千次阅读 2017-03-01 16:30:32
    转自:  ... tr是translate的简写,通过这个单词,你大概也能...UNIX -> DOS:在这种情况,需要用awk,因为tr不能插入两个字符来替换一个字符。要使用的awk 命令为awk '{ print $0"\r" }'<unixfile > dosfile

    转自: http://www.2cto.com/os/201201/117822.html

    tr是translate的简写,通过这个单词,你大概也能猜到它是干什么的了吧!没错,它可以用一个字符串来替换另一个字符串,或者可以完全除去一些字符。您也可以用它来除去重复字符。
     
       tr用来从标准输入中通过替换或删除操作进行字符转换。tr主要用于删除文件中控制字符或进行字符转换。使用tr时要转换两个字符串:字符串1用于查询, 字符串2用于处理各种转换。即用字符串2替换掉字符串1。字符串1可以使正则表达式。如果字符串2为空或没有列出,则是进行删除操作,这个很好理解,用空字符串替换字符串1当然就相当于删除字符串1啦!
     
        补充一点,tr的功能都可以用sed 来完成。您可以将tr 看作为sed 的(极其)简化的变体。
     
    带有最常用选项的tr命令格式为:
    tr -c -d -s ["string1_to_translate_from"] ["string2_to_translate_to"]
    这里:
    -c 用字符串1中字符集的补集替换此字符集,要求字符集为ASCII。
    -d 删除字符串1中所有输入字符。
    -s 删除所有重复出现字符序列,只保留第一个;即将重复出现字符串压缩为一个字符串。
     
    2、字符范围
    指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。
    [a-z] a-z内的字符组成的字符串。
    [A-Z] A-Z内的字符组成的字符串。
    [0-9] 数字串。
    \octal 一个三位的八进制数,对应有效的ASCII字符。
    [O*n] 表示字符O重复出现指定次数n。因此[O*2]匹配OO的字符串。
    tr中特定控制字符的不同表达方式
    速记符含义八进制方式
    \a Ctrl-G  铃声\007
    \b Ctrl-H  退格符\010
    \f Ctrl-L  走行换页\014
    \n Ctrl-J  新行\012
    \r Ctrl-M  回车\015
    \t Ctrl-I  tab键\011
    \v Ctrl-X  \030
     
    3、应用例子
    (1)去除oops.txt里面的重复的小写字符
    tr -s "[a-z]"<oops.txt >result.txt
    (2)删除空行
    tr -s "[\012]" < plan.txt 或tr -s ["\n"] < plan.txt
    (3)有时需要删除文件中的^M,并代之以换行
    tr -s "[\015]" "[\n]" < file 或tr -s "[\r]" "[\n]" < file
    (4)大写到小写
    cat a.txt |tr "[a-z]" "[A-Z]" >b.txt
    (5)删除指定字符
        一个星期的日程表。任务是从其中删除所有数字,只保留日期。日期有大写,也有小写格式。因此需指定两个字符范围[a-z]和[A-Z],命令tr -cs "[a-z][A-Z]" "[\012*]" 将文件每行所有不包含在[a-z]或[A-Z](所有希腊字母)的字符串放在字符串1中并转换为一新行。-s选项表明压缩所有新行,-c表明保留所有字母不动。原文件如下,后跟tr命令:
    tr -cs "[a-z][A-Z]" "[\012*]" <diary.txt
    (6)转换控制字符
        tr的第一个功能就是转换控制字符,特别是从dos向UNIX下载文件时,忘记设置ftp关于回车换行转换的选项时更是如此。cat -v filename 显示控制字符。
        cat -v stat.txt
        box aa^^^^^12^M
        apple bbas^^^^23^M
        ^Z
    猜想‘^ ^ ^ ^ ^ ^’是tab键。每一行以Ctrl-M结尾,文件结尾Ctrl-Z,以下是改动方法。
    使用-s选项,查看ASCII表。^的八进制代码是136,^M是015,tab键是011,^Z是032 ,下面将按步骤完成最终功能。
    用tab键替换^ ^ ^ ^ ^ ^,命令为"\136" "[\011*]"。将结果重定向到临时工作文件stat.tmp
    tr -s "[\136]" "[\011*]" <stat.txt >stat.tmp
    用新行替换每行末尾的^M,并用\n去除^Z,输入要来自于临时工作文件stat.tmp。
    tr -s "[\015][\032]" "\n" <stat.tmp
    要删除所有的tab键,代之以空格,使用命令
    tr -s "[\011]" "[\040*]" <input.file
    (7)替换passwd文件中所有冒号,代之以tab键,可以增加可读性
    tr -s "[:]" "[\011]" < /etc/passwd 或tr -s "[:]" "[\t]" < /etc/passwd
    (8)使路径具有可读性
        如果用echo $PATH 或者echo $LD_LIBRARY_PATH 等类似的命令来显示路径信息的话,我们看到的将会是一大堆用冒号连接在一起的路径,tr命令可以把这些冒号转换为回车,这样,这些路径就具有很好的可读性了
    echo $PATH | tr ":" "\n"
    (9)可以在vi内使用所有这些命令!只要记住:在tr命令前要加上您希望处理的行范围和感叹号 (!),如1,$!tr -d '\t'(美元符号表示最后一行)。
    (10)另外,当有人给您发送了一个在Mac OS 或DOS/Windows 机器上创建的文本文件时,您会发现tr非常有用。
        如果没有将文件保存为使用  UNIX 换行符来表示行结束这种格式,则需要将这样的文件转换成本机UNIX 格式,否则一些命令实用程序不会正确地处理这些文件。Mac OS  的行尾以回车字符(\r)结束,许多文本处理工具将这样的文件作为一行来处理。为了纠正这个问题,可以用下列技巧:
    Mac -> UNIX:tr "\r" "\n"<macfile > unixfile
    UNIX -> Mac:tr "\n" "\r"<unixfile > macfile
    Microsoft DOS/Windows 约定,文本的每行以回车字符(\r)并后跟换行符(\n)结束。为了纠正这个问题,可以使用下列命令:
    DOS -> UNIX:tr -d "\r"<dosfile > unixfile
    UNIX -> DOS:在这种情况下,需要用awk,因为tr不能插入两个字符来替换一个字符。要使用的awk 命令为awk '{ print $0"\r" }'<unixfile > dosfile

    展开全文
  • Linux常用命令大全(非常全!!!)

    万次阅读 多人点赞 2019-07-25 16:40:12
    Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解...
  • LinuxLinux基础命令及英文全称

    千次阅读 多人点赞 2019-09-22 22:39:35
    文章目录一、系统启动一般流程1.1 Windows1.2 Linux1.2.1 Linux简单驱动程序矿建二、S3C2440内部资源三、命令入门3.1 终端Teminal3.2 Linux命令提示符3.3 Linux命令的格式3.4 常见命令含义3.5 rm -rf /*的含义3.6 ...
  • linux下dc计算器

    千次阅读 2013-04-15 21:21:48
    dc采用逆波兰式计算表达式,计算过程是对栈的手动维护。逆波兰式看起来很别扭,但跑起来当然是很有效率的。...打印类命令: p :打印栈顶元素并换行 n : 打印栈顶元素并将其弹出栈,完毕后不换行 P :
  • 为了获取积分需要,gzip -dc 日志文件名|grep -n 关键字
  • linux命令中cd使用Fatmawati Achmad Zaenuri/ShutterstockFatmawati Achmad Zaenuri / Shutterstock Some Linux commands are so familiar, we don’t even notice we’re using them. Thecd command for changing ...
  • Linux服务器命令

    千次阅读 2018-10-31 23:55:07
    date(命令)【可以在不退出vim的情况,执行相应的操作命令,date:系统时间命令】 :map ^P I#【定义快捷键:map,^P:按ctrl+v+p(快捷键按Ctrl+p),注释该行】 :map ^B 0x【定义快捷键:map,^B:按ctrl+v+b(快捷键按Ctrl+b...
  • Linux more命令

    千次阅读 2019-06-27 09:38:38
    more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向翻滚一行),空格(向滚动一屏),Q(退出命令)。 该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己...
  • (轉載)Linux中dd命令详解

    千次阅读 2018-12-29 10:33:40
    一、dd命令 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2 参数注释: if=文件名:输入文件名,缺省为标准...
  • linux下的EDA——DC使用

    万次阅读 2017-07-23 10:52:44
    这个是DC内部命令格式,启动DC时的路径,也就是DC工作时的路径, 下面显示"1"时执行完成 dc_shell> set target_library [ list /home/tshell/lib/TSMC90/fast.db] 指定target_library的路径和库,...
  • linux下怎么解后缀名是gzip的文件?  1.以.a为扩展名的文件:  #tar xv file.a  2.以.z为扩展名的文件:  #uncompress file.Z  3.以.gz为扩展名的文件:  #gunzip file.gz  4.以.bz2为扩展名的文件:  #...
  • kali Linux命令大全

    万次阅读 多人点赞 2019-10-15 17:32:21
    Kali Linux 命令集 系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘...
  • Linux系统终端常用指令命令汇总

    万次阅读 多人点赞 2018-07-20 17:37:39
    命令 功能说明 线上查询及帮助命令 man ... 查看命令帮助,命令... 查看Linux内置命令的帮助,比如cd命令。 文件和目录操作命令 ls 全拼list,功能...
  • Linux gunzip 命令实例讲解

    千次阅读 2018-04-24 07:58:31
    解压时,在 gzip 命令后添加 -d 选项即可,使用示例如下:gzip -d [compressed-file-name] 不过,在解压或扩展 gzip 创建的压缩文件时,有另一款完全不同的工具可供使用。谈及的这款工具就是gunzip。在本文中,我们...
  • Linux安装nslookup命令

    2019-05-02 16:04:00
    但是linux系统是不自带这个命令的,需要人手动安装。如果您不记得这是哪个软件包提供这个命令的话,那您还真会有些麻烦了。下面教您如何找到这个命令的软件包。 命令yum provides */nslookup 就可以找到提供...
  • linux uniq命令

    千次阅读 2018-08-24 08:48:03
    (2)uniq结合sort命令,对排序文件去重。 #cat testfile | sort | uniq friend hello world (3)排序之后删除了重复行,同时在行首位置输出该行重复的次数。 #sort testfile | uniq -c 1 friend 3 ...
  • 198dc :一个任意精度的计算器 语 法 dc[选择参数][文件]功 能dc 命令:是一个reverse-polish 桌面计算器...通常情况dc命令从标准输入读取数据,如果指定了文件名的命令行谙熟,那么命令将从指定的文件中读取
  • Linux 命令(65)—— ld 命令

    万次阅读 2019-04-08 14:38:31
    -d,-dc,-dp 即使指定了可重定位的输出文件(使用-r),也会为公共符号分配空间。脚本命令“FORCE_COMMON_ALLOCATION”具有相同的效果 -defsym 在输出文件中创建指定的全局符号 -demangle 在错误消息中还原符号名称 -...
  • Linux中dd命令详解

    万次阅读 多人点赞 2016-11-23 16:56:17
    一、dd命令dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2参数注释:if=文件名:输入文件名,缺省为标准输入。...
  • Linux 的dd命令使用详解(摘录)

    千次阅读 2018-07-22 10:45:30
    Linux 的dd命令使用详解(摘录) 一、dd命令的解释 dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。 注意:指定数字的地方若以下列字符结尾,则乘以相应的数字:b=512;c=1;k=1024;w=2 参数...
  • Linux常用命令大全

    千次阅读 2019-02-24 20:19:05
    我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短小但却功能强大。我将我了解到的命令列举一下,仅供大家参考: 系统信息 arch 显示机器的处理器架构...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,405
精华内容 20,162
关键字:

linux下dc命令

linux 订阅