Linux基础编程(二) 常用指令大全 客官°小女子只卖身不卖艺 2022-05-09 02:50 214阅读 0赞 ### 文章目录 ### * 系统信息 * 关机 (系统的关机、重启以及登出 ) * 文件和目录 * 文件搜索 * 挂载一个文件系统 * 磁盘空间 * 用户和群组 * 文件的权限 * 文件的特殊属性 * 打包和压缩文件 * RPM 包 - (Fedora, Redhat及类似系统) * YUM 软件包升级器 - (Fedora, RedHat及类似系统) * DEB 包 (Debian, Ubuntu 以及类似系统) * APT 软件工具 (Debian, Ubuntu 以及类似系统) * 查看文件内容 * 文本处理 * 字符设置和文件格式转换 * 文件系统分析 * 初始化一个文件系统 * SWAP文件系统 * 备份 * 光盘 * 网络 - (以太网和WIFI无线) * JPS工具 # 系统信息 # <table> <thead> <tr> <th align="center">指令</th> <th align="center">用途</th> </tr> </thead> <tbody> <tr> <td align="center">arch</td> <td align="center">显示机器的处理器架构,相当于uname -m</td> </tr> <tr> <td align="center">uname -a</td> <td align="center">打印当前系统所有相关信息</td> </tr> <tr> <td align="center">dmidecode -q</td> <td align="center">显示硬件系统部件</td> </tr> <tr> <td align="center">hdparm -i /dev/hda</td> <td align="center">罗列一个磁盘的架构特性</td> </tr> <tr> <td align="center">hdparm -tT /dev/sda</td> <td align="center">在磁盘上执行测试性读取操作</td> </tr> <tr> <td align="center">cat /proc/cpuinfo</td> <td align="center">显示CPU info的信息</td> </tr> <tr> <td align="center">cat /proc/interrupts</td> <td align="center">显示中断</td> </tr> <tr> <td align="center">cat /proc/meminfo</td> <td align="center">校验内存使用</td> </tr> <tr> <td align="center">cat /proc/swaps</td> <td align="center">显示哪些swap被使用</td> </tr> <tr> <td align="center">cat /proc/version</td> <td align="center">显示内核的版本</td> </tr> <tr> <td align="center">cat /proc/net/dev</td> <td align="center">显示网络适配器及统计</td> </tr> <tr> <td align="center">cat /proc/mounts</td> <td align="center">显示已加载的文件系统</td> </tr> <tr> <td align="center">lspci -tv</td> <td align="center">罗列 PCI 设备</td> </tr> <tr> <td align="center">lsusb -tv</td> <td align="center">显示 USB 设备</td> </tr> <tr> <td align="center">date</td> <td align="center">显示系统日期</td> </tr> <tr> <td align="center">cal 2007</td> <td align="center">显示2007年的日历表</td> </tr> <tr> <td align="center">date 041217002007.00</td> <td align="center">设置日期和时间 - 月日时分年.秒</td> </tr> <tr> <td align="center">clock -w</td> <td align="center">将时间修改保存到 BIOS</td> </tr> </tbody> </table> # 关机 (系统的关机、重启以及登出 ) # <table> <thead> <tr> <th>指令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>shutdown -h now</td> <td>关闭系统(1)</td> </tr> <tr> <td>init 0</td> <td>关闭系统(2)</td> </tr> <tr> <td>telinit 0</td> <td>关闭系统(3)</td> </tr> <tr> <td>shutdown -h hours:minutes &</td> <td>按预定时间关闭系统</td> </tr> <tr> <td>shutdown -c</td> <td>取消按预定时间关闭系统</td> </tr> <tr> <td>shutdown -r now</td> <td>重启(1)</td> </tr> <tr> <td>reboot</td> <td>重启(2)</td> </tr> <tr> <td>logout</td> <td>注销</td> </tr> </tbody> </table> # 文件和目录 # <table> <thead> <tr> <th>指令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>cd /home</td> <td>进入 ‘/ home’ 目录’</td> </tr> <tr> <td>cd …</td> <td>返回上一级目录</td> </tr> <tr> <td>cd …/…</td> <td>返回上两级目录</td> </tr> <tr> <td>cd</td> <td>进入个人的主目录</td> </tr> <tr> <td>cd ~user1</td> <td>进入个人的主目录</td> </tr> <tr> <td>cd -</td> <td>返回上次所在的目录</td> </tr> <tr> <td>pwd</td> <td>显示工作路径</td> </tr> <tr> <td>ls</td> <td>查看目录中的文件</td> </tr> <tr> <td>ls -F</td> <td>查看目录中的文件</td> </tr> <tr> <td>ls -l</td> <td>显示文件和目录的详细资料</td> </tr> <tr> <td>ls -a</td> <td>显示隐藏文件</td> </tr> <tr> <td>ls <em>[0-9]</em></td> <td>显示包含数字的文件名和目录名</td> </tr> <tr> <td>tree</td> <td>显示文件和目录由根目录开始的树形结构(1)</td> </tr> <tr> <td>lstree</td> <td>显示文件和目录由根目录开始的树形结构(2)</td> </tr> <tr> <td>mkdir dir1</td> <td>创建一个叫做 ‘dir1’ 的目录’</td> </tr> <tr> <td>mkdir dir1 dir2</td> <td>同时创建两个目录</td> </tr> <tr> <td>mkdir -p /tmp/dir1/dir2</td> <td>创建一个目录树</td> </tr> <tr> <td>rm -f file1</td> <td>删除一个叫做 ‘file1’ 的文件’</td> </tr> <tr> <td>rmdir dir1</td> <td>删除一个叫做 ‘dir1’ 的目录’</td> </tr> <tr> <td>rm -rf dir1</td> <td>删除一个叫做 ‘dir1’ 的目录并同时删除其内容</td> </tr> <tr> <td>rm -rf dir1 dir2</td> <td>同时删除两个目录及它们的内容</td> </tr> <tr> <td>mv dir1 new_dir</td> <td>重命名/移动 一个目录</td> </tr> <tr> <td>cp file1 file2</td> <td>复制一个文件</td> </tr> <tr> <td>cp dir/* .</td> <td>复制一个目录下的所有文件到当前工作目录</td> </tr> <tr> <td>cp -a /tmp/dir1 .</td> <td>复制一个目录到当前工作目录</td> </tr> <tr> <td>cp -a dir1 dir2</td> <td>复制一个目录</td> </tr> <tr> <td>ln -s file1 lnk1</td> <td>创建一个指向文件或目录的软链接</td> </tr> <tr> <td>ln file1 lnk1</td> <td>创建一个指向文件或目录的物理链接</td> </tr> <tr> <td>touch -t 0712250000 file1</td> <td>修改一个文件或目录的时间戳 - (YYMMDDhhmm)</td> </tr> </tbody> </table> # 文件搜索 # <table> <thead> <tr> <th>命令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>find / -name “file1”</td> <td>从 ‘/’ 开始进入根文件系统搜索文件和目录</td> </tr> <tr> <td>find / -user user1</td> <td>搜索属于用户 ‘user1’ 的文件和目录</td> </tr> <tr> <td>find /home/user1 -name *.bin</td> <td>在目录 ‘/ home/user1’ 中搜索带有’.bin’ 结尾的文件</td> </tr> <tr> <td>find /usr/bin -type s -ctime -2 -size +100k -size -10M</td> <td>搜索大小打渔100k小于10M且创建时间小于两天的套接口文件</td> </tr> <tr> <td>find /usr/bin -type f -mtime -10</td> <td>搜索在10天内被修改过的普通文件</td> </tr> <tr> <td>find /usr/bin -type l -atime +100</td> <td>搜索超过100天未被使用过的快捷方式</td> </tr> <tr> <td>find / -name *.rpm -exec chmod 755 ‘{}’ ;</td> <td>搜索以 ‘.rpm’ 结尾的文件并定义其权限</td> </tr> <tr> <td>find / -xdev -name *.rpm</td> <td>搜索以 ‘.rpm’ 结尾的文件,忽略光驱、捷盘等可移动设备</td> </tr> <tr> <td>locate *.ps</td> <td>寻找以 ‘.ps’ 结尾的文件 - 先运行 ‘updatedb’ 命令</td> </tr> <tr> <td>whereis halt</td> <td>显示一个二进制文件、源码或man的位置</td> </tr> <tr> <td>which halt</td> <td>显示一个二进制文件或可执行文件的完整路径</td> </tr> </tbody> </table> # 挂载一个文件系统 # <table> <thead> <tr> <th>指令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>mount /dev/hda2 /mnt/hda2</td> <td>挂载一个叫做hda2的盘 - 确定目录 ‘/ mnt/hda2’ 已经存在</td> </tr> <tr> <td>umount /dev/hda2</td> <td>卸载一个叫做hda2的盘 - 先从挂载点 ‘/ mnt/hda2’ 退出</td> </tr> <tr> <td>fuser -km /mnt/hda2</td> <td>当设备繁忙时强制卸载</td> </tr> <tr> <td>umount -n /mnt/hda2</td> <td>运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用</td> </tr> <tr> <td>mount /dev/fd0 /mnt/floppy</td> <td>挂载一个软盘</td> </tr> <tr> <td>mount /dev/cdrom /mnt/cdrom</td> <td>挂载一个cdrom或dvdrom</td> </tr> <tr> <td>mount /dev/hdc /mnt/cdrecorder</td> <td>挂载一个cdrw或dvdrom</td> </tr> <tr> <td>mount /dev/hdb /mnt/cdrecorder</td> <td>挂载一个cdrw或dvdrom</td> </tr> <tr> <td>mount -o loop file.iso /mnt/cdrom</td> <td>挂载一个文件或ISO镜像文件</td> </tr> <tr> <td>mount -t vfat /dev/hda5 /mnt/hda5</td> <td>挂载一个Windows FAT32文件系统</td> </tr> <tr> <td>mount /dev/sda1 /mnt/usbdisk</td> <td>挂载一个usb 捷盘或闪存设备</td> </tr> <tr> <td>mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share</td> <td>挂载一个windows网络共享</td> </tr> </tbody> </table> # 磁盘空间 # <table> <thead> <tr> <th>指令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>df -h</td> <td>显示已经挂载的分区列表</td> </tr> <tr> <td>ls -lSr</td> <td>more</td> </tr> <tr> <td>du -sh dir1</td> <td>估算目录 ‘dir1’ 已经使用的磁盘空间’</td> </tr> <tr> <td>du -sk * | sort -rn</td> <td>以容量大小为依据依次显示文件和目录的大小</td> </tr> <tr> <td>rpm -q -a --qf ‘%10{SIZE}t%{NAME}n’ | sort -k1,1n</td> <td>以大小为依据依次显示已安装的rpm包所使用的空间 (fedora, redhat类系统)</td> </tr> <tr> <td>dpkg-query -W -f=’<span><span><span> I n s t a l l e d − S i z e ; 10 t {Installed-Size;10}t </span><span><span><span style="height: 0.88888em; vertical-align: -0.19444em;"></span><span><span style="margin-right: 0.07847em;">I</span><span>n</span><span>s</span><span>t</span><span>a</span><span style="margin-right: 0.01968em;">l</span><span style="margin-right: 0.01968em;">l</span><span>e</span><span>d</span><span style="margin-right: 0.222222em;"></span><span>−</span><span style="margin-right: 0.222222em;"></span><span style="margin-right: 0.05764em;">S</span><span>i</span><span style="margin-right: 0.04398em;">z</span><span>e</span><span>;</span><span style="margin-right: 0.166667em;"></span><span>1</span><span>0</span></span><span>t</span></span></span></span></span>{Package}n’ | sort -k1,1n</td> <td>以大小为依据显示已安装的deb包所使用的空间 (ubuntu, debian类系统)</td> </tr> </tbody> </table> # 用户和群组 # <table> <thead> <tr> <th>命令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>groupadd group_name</td> <td>创建一个新用户组</td> </tr> <tr> <td>groupdel group_name</td> <td>删除一个用户组</td> </tr> <tr> <td>groupmod -n new_group_name old_group_name</td> <td>重命名一个用户组</td> </tr> <tr> <td>useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1</td> <td>创建一个属于 “admin” 用户组的用户</td> </tr> <tr> <td>useradd user1</td> <td>创建一个新用户</td> </tr> <tr> <td>userdel -r user1</td> <td>删除一个用户 ( ‘-r’ 排除主目录)</td> </tr> <tr> <td>usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1</td> <td>修改用户属性</td> </tr> <tr> <td>passwd</td> <td>修改口令</td> </tr> <tr> <td>passwd user1</td> <td>修改一个用户的口令 (只允许root执行)</td> </tr> <tr> <td>chage -E 2005-12-31 user1</td> <td>设置用户口令的失效期限</td> </tr> <tr> <td>pwck</td> <td>检查 '/etc/passwd’的文件格式和语法修正以及存在的用户</td> </tr> <tr> <td>grpck</td> <td>检查 ‘/etc/passwd’ 的文件格式和语法修正以及存在的群组</td> </tr> <tr> <td>newgrp group_name</td> <td>登陆进一个新的群组以改变新创建文件的预设群组</td> </tr> </tbody> </table> # 文件的权限 # <table> <thead> <tr> <th>命令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>ls -lh</td> <td>显示权限</td> </tr> <tr> <td>ls /tmp | pr -T5 -W$COLUMNS</td> <td>将终端划分成5栏显示</td> </tr> <tr> <td>chmod ugo+rwx directory1</td> <td>设置目录的所有人(u)、群组(g)以及其他人(o)以读(r )、写(w)和执行(x)的权限</td> </tr> <tr> <td>chmod go-rwx directory1</td> <td>删除群组(g)与其他人(o)对目录的读写执行权限</td> </tr> <tr> <td>chown user1 file1</td> <td>改变一个文件的所有人属性</td> </tr> <tr> <td>chown -R user1 directory1</td> <td>改变一个目录的所有人属性并同时改变改目录下所有文件的属性</td> </tr> <tr> <td>chgrp group1 file1</td> <td>改变文件的群组</td> </tr> <tr> <td>chown user1:group1 file1</td> <td>改变一个文件的所有人和群组属性</td> </tr> <tr> <td>find / -perm -u+s</td> <td>罗列一个系统中所有使用了SUID控制的文件</td> </tr> <tr> <td>chmod u+s /bin/file1</td> <td>设置一个二进制文件的 SUID 位 - 运行该文件的用户也被赋予和所有者同样的权限</td> </tr> <tr> <td>chmod u-s /bin/file1</td> <td>禁用一个二进制文件的 SUID位</td> </tr> <tr> <td>chmod g+s /home/public</td> <td>设置一个目录的SGID 位 - 类似SUID ,不过这是针对目录的</td> </tr> <tr> <td>chmod g-s /home/public</td> <td>禁用一个目录的 SGID 位</td> </tr> <tr> <td>chmod o+t /home/public</td> <td>设置一个文件的 STIKY 位 - 只允许合法所有人删除文件</td> </tr> <tr> <td>chmod o-t /home/public</td> <td>禁用一个目录的 STIKY 位</td> </tr> </tbody> </table> # 文件的特殊属性 # <table> <thead> <tr> <th>命令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>chattr +a file1</td> <td>只允许以追加方式读写文件</td> </tr> <tr> <td>chattr +c file1</td> <td>允许这个文件能被内核自动压缩/解压</td> </tr> <tr> <td>chattr +d file1</td> <td>在进行文件系统备份时,dump程序将忽略这个文件</td> </tr> <tr> <td>chattr +i file1</td> <td>设置成不可变的文件,不能被删除、修改、重命名或者链接</td> </tr> <tr> <td>chattr +s file1</td> <td>允许一个文件被安全地删除</td> </tr> <tr> <td>chattr +S file1</td> <td>一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘</td> </tr> <tr> <td>chattr +u file1</td> <td>若文件被删除,系统会允许你在以后恢复这个被删除的文件</td> </tr> <tr> <td>lsattr</td> <td>显示特殊的属性</td> </tr> </tbody> </table> # 打包和压缩文件 # <table> <thead> <tr> <th>命令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>bunzip2 file1.bz2</td> <td>解压一个叫做 'file1.bz2’的文件</td> </tr> <tr> <td>bzip2 file1</td> <td>压缩一个叫做 ‘file1’ 的文件</td> </tr> <tr> <td>gunzip file1.gz</td> <td>解压一个叫做 'file1.gz’的文件</td> </tr> <tr> <td>gzip file1</td> <td>压缩一个叫做 'file1’的文件</td> </tr> <tr> <td>gzip -9 file1</td> <td>最大程度压缩</td> </tr> <tr> <td>rar a file1.rar test_file</td> <td>创建一个叫做 ‘file1.rar’ 的包</td> </tr> <tr> <td>rar a file1.rar file1 file2 dir1</td> <td>同时压缩 ‘file1’, ‘file2’ 以及目录 ‘dir1’</td> </tr> <tr> <td>rar x file1.rar</td> <td>解压rar包</td> </tr> <tr> <td>unrar x file1.rar</td> <td>解压rar包</td> </tr> <tr> <td>tar -cvf archive.tar file1</td> <td>创建一个非压缩的 tarball</td> </tr> <tr> <td>tar -cvf archive.tar file1 file2 dir1</td> <td>创建一个包含了 ‘file1’, ‘file2’ 以及 'dir1’的档案文件</td> </tr> <tr> <td>tar -tf archive.tar</td> <td>显示一个包中的内容</td> </tr> <tr> <td>tar -xvf archive.tar</td> <td>释放一个包</td> </tr> <tr> <td>tar -xvf archive.tar -C /tmp</td> <td>将压缩包释放到 /tmp目录下</td> </tr> <tr> <td>tar -cvfj archive.tar.bz2 dir1</td> <td>创建一个bzip2格式的压缩包</td> </tr> <tr> <td>tar -xvfj archive.tar.bz2</td> <td>解压一个bzip2格式的压缩包</td> </tr> <tr> <td>tar -cvfz archive.tar.gz dir1</td> <td>创建一个gzip格式的压缩包</td> </tr> <tr> <td>tar -xvfz archive.tar.gz</td> <td>解压一个gzip格式的压缩包</td> </tr> <tr> <td>zip file1.zip file1</td> <td>创建一个zip格式的压缩包</td> </tr> <tr> <td>zip -r file1.zip file1 file2 dir1</td> <td>将几个文件和目录同时压缩成一个zip格式的压缩包</td> </tr> <tr> <td>unzip file1.zip</td> <td>解压一个zip格式压缩包</td> </tr> </tbody> </table> # RPM 包 - (Fedora, Redhat及类似系统) # <table> <thead> <tr> <th>命令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>rpm -ivh package.rpm</td> <td>安装一个rpm包</td> </tr> <tr> <td>rpm -ivh --nodeeps package.rpm</td> <td>安装一个rpm包而忽略依赖关系警告</td> </tr> <tr> <td>rpm -U package.rpm</td> <td>更新一个rpm包但不改变其配置文件</td> </tr> <tr> <td>rpm -F package.rpm</td> <td>更新一个确定已经安装的rpm包</td> </tr> <tr> <td>rpm -e package_name.rpm</td> <td>删除一个rpm包</td> </tr> <tr> <td>rpm -qa</td> <td>显示系统中所有已经安装的rpm包</td> </tr> <tr> <td>rpm -qa</td> <td>grep httpd</td> </tr> <tr> <td>rpm -qi package_name</td> <td>获取一个已安装包的特殊信息</td> </tr> <tr> <td>rpm -qg “System Environment/Daemons”</td> <td>显示一个组件的rpm包</td> </tr> <tr> <td>rpm -ql package_name</td> <td>显示一个已经安装的rpm包提供的文件列表</td> </tr> <tr> <td>rpm -qc package_name</td> <td>显示一个已经安装的rpm包提供的配置文件列表</td> </tr> <tr> <td>rpm -q package_name --whatrequires</td> <td>显示与一个rpm包存在依赖关系的列表</td> </tr> <tr> <td>rpm -q package_name --scripts</td> <td>显示在安装/删除期间所执行的脚本l</td> </tr> <tr> <td>rpm -q package_name --changelog</td> <td>显示一个rpm包的修改历史</td> </tr> <tr> <td>rpm -qf /etc/httpd/conf/httpd.conf</td> <td>确认所给的文件由哪个rpm包所提供</td> </tr> <tr> <td>rpm -qp package.rpm -l</td> <td>显示由一个尚未安装的rpm包提供的文件列表</td> </tr> <tr> <td>rpm --import /media/cdrom/RPM-GPG-KEY</td> <td>导入公钥数字证书</td> </tr> <tr> <td>rpm --checksig package.rpm</td> <td>确认一个rpm包的完整性</td> </tr> <tr> <td>rpm -qa gpg-pubkey</td> <td>确认已安装的所有rpm包的完整性</td> </tr> <tr> <td>rpm -V package_name</td> <td>检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间</td> </tr> <tr> <td>rpm -Va</td> <td>检查系统中所有已安装的rpm包- 小心使用</td> </tr> <tr> <td>rpm -Vp package.rpm</td> <td>确认一个rpm包还未安装</td> </tr> <tr> <td>rpm2cpio package.rpm | cpio --extract --make-directories <em>bin</em></td> <td>从一个rpm包运行可执行文件</td> </tr> <tr> <td>rpm -ivh /usr/src/redhat/RPMS/<code>arch</code>/package.rpm</td> <td>从一个rpm源码安装一个构建好的包</td> </tr> <tr> <td>rpmbuild --rebuild package_name.src.rpm</td> <td>从一个rpm源码构建一个 rpm 包</td> </tr> </tbody> </table> # YUM 软件包升级器 - (Fedora, RedHat及类似系统) # <table> <thead> <tr> <th>命令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>yum install package_name</td> <td>下载并安装一个rpm包</td> </tr> <tr> <td>yum localinstall package_name.rpm</td> <td>将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系</td> </tr> <tr> <td>yum update package_name.rpm</td> <td>更新当前系统中所有安装的rpm包</td> </tr> <tr> <td>yum update package_name</td> <td>更新一个rpm包</td> </tr> <tr> <td>yum remove package_name</td> <td>删除一个rpm包</td> </tr> <tr> <td>yum list</td> <td>列出当前系统中安装的所有包</td> </tr> <tr> <td>yum search package_name</td> <td>在rpm仓库中搜寻软件包</td> </tr> <tr> <td>yum clean packages</td> <td>清理rpm缓存删除下载的包</td> </tr> <tr> <td>yum clean headers</td> <td>删除所有头文件</td> </tr> <tr> <td>yum clean all</td> <td>删除所有缓存的包和头文件</td> </tr> </tbody> </table> # DEB 包 (Debian, Ubuntu 以及类似系统) # <table> <thead> <tr> <th>命令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>dpkg -i package.deb</td> <td>安装/更新一个 deb 包</td> </tr> <tr> <td>dpkg -r package_name</td> <td>从系统删除一个 deb 包</td> </tr> <tr> <td>dpkg -l</td> <td>显示系统中所有已经安装的 deb 包</td> </tr> <tr> <td>dpkg -l</td> <td>grep httpd</td> </tr> <tr> <td>dpkg -s package_name</td> <td>获得已经安装在系统中一个特殊包的信息</td> </tr> <tr> <td>dpkg -L package_name</td> <td>显示系统中已经安装的一个deb包所提供的文件列表</td> </tr> <tr> <td>dpkg --contents package.deb</td> <td>显示尚未安装的一个包所提供的文件列表</td> </tr> <tr> <td>dpkg -S /bin/ping</td> <td>确认所给的文件由哪个deb包提供</td> </tr> </tbody> </table> # APT 软件工具 (Debian, Ubuntu 以及类似系统) # <table> <thead> <tr> <th>命令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>apt-get install package_name</td> <td>安装/更新一个 deb 包</td> </tr> <tr> <td>apt-cdrom install package_name</td> <td>从光盘安装/更新一个 deb 包</td> </tr> <tr> <td>apt-get update</td> <td>升级列表中的软件包</td> </tr> <tr> <td>apt-get upgrade</td> <td>升级所有已安装的软件</td> </tr> <tr> <td>apt-get remove package_name</td> <td>从系统删除一个deb包</td> </tr> <tr> <td>apt-get check</td> <td>确认依赖的软件仓库正确</td> </tr> <tr> <td>apt-get clean</td> <td>从下载的软件包中清理缓存</td> </tr> <tr> <td>apt-cache search searched-package</td> <td>返回包含所要搜索字符串的软件包名称</td> </tr> </tbody> </table> # 查看文件内容 # <table> <thead> <tr> <th>命令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>cat file1</td> <td>从第一个字节开始正向查看文件的内容</td> </tr> <tr> <td>tac file1</td> <td>从最后一行开始反向查看一个文件的内容</td> </tr> <tr> <td>more file1</td> <td>查看一个长文件的内容</td> </tr> <tr> <td>less file1</td> <td>类似于 ‘more’ 命令,但是它允许在文件中和正向操作一样的反向操作</td> </tr> <tr> <td>head -2 file1</td> <td>查看一个文件的前两行</td> </tr> <tr> <td>tail -2 file1</td> <td>查看一个文件的最后两行</td> </tr> <tr> <td>tail -f /var/log/messages</td> <td>实时查看被添加到一个文件中的内容</td> </tr> </tbody> </table> # 文本处理 # <table> <thead> <tr> <th>命令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>cat file1 file2 … | command <> file1_in.txt_or_file1_out.txt</td> <td>general syntax for text manipulation using PIPE, STDIN and STDOUT</td> </tr> <tr> <td>cat file1 | command( sed, grep, awk, grep, etc…) > result.txt</td> <td>合并一个文件的详细说明文本,并将简介写入一个新文件中</td> </tr> <tr> <td>cat file1</td> <td>command( sed, grep, awk, grep, etc…) >> result.txt</td> </tr> <tr> <td>grep Aug /var/log/messages</td> <td>在文件 '/var/log/messages’中查找关键词"Aug"</td> </tr> <tr> <td>grep ^Aug /var/log/messages</td> <td>在文件 '/var/log/messages’中查找以"Aug"开始的词汇</td> </tr> <tr> <td>grep [0-9] /var/log/messages</td> <td>选择 ‘/var/log/messages’ 文件中所有包含数字的行</td> </tr> <tr> <td>grep Aug -R /var/log/*</td> <td>在目录 ‘/var/log’ 及随后的目录中搜索字符串"Aug"</td> </tr> <tr> <td>sed ‘s/stringa1/stringa2/g’ example.txt</td> <td>将example.txt文件中的 “string1” 替换成 “string2”</td> </tr> <tr> <td>sed ‘/^$/d’ example.txt 从example.txt</td> <td>文件中删除所有空白行</td> </tr> <tr> <td>sed ‘/ *#/d; /^$/d’ example.txt 从example.txt</td> <td>文件中删除所有注释和空白行</td> </tr> <tr> <td>echo ‘esempio’</td> <td>tr ‘[:lower:]’ ‘[:upper:]’</td> </tr> <tr> <td>sed -e ‘1d’ result.txt</td> <td>从文件example.txt 中排除第一行</td> </tr> <tr> <td>sed -n ‘/stringa1/p’</td> <td>查看只包含词汇 "string1"的行</td> </tr> <tr> <td>sed -e ‘s/ *$//’ example.txt</td> <td>删除每一行最后的空白字符</td> </tr> <tr> <td>sed -e ‘s/stringa1//g’ example.txt</td> <td>从文档中只删除词汇 “string1” 并保留剩余全部</td> </tr> <tr> <td>sed -n ‘1,5p;5q’ example.txt</td> <td>查看从第一行到第5行内容</td> </tr> <tr> <td>sed -n ‘5p;5q’ example.txt</td> <td>查看第5行</td> </tr> <tr> <td>sed -e ‘s/00*/0/g’ example.txt</td> <td>用单个零替换多个零</td> </tr> <tr> <td>cat -n file1</td> <td>标示文件的行数</td> </tr> <tr> <td>cat example.txt</td> <td>awk ‘NR%2==1’</td> </tr> <tr> <td>echo a b c</td> <td>awk ‘{print $1}’</td> </tr> <tr> <td>echo a b c</td> <td>awk ‘{print $1,$3}’</td> </tr> <tr> <td>paste file1 file2</td> <td>合并两个文件或两栏的内容</td> </tr> <tr> <td>paste -d ‘+’ file1 file2</td> <td>合并两个文件或两栏的内容,中间用"+"区分</td> </tr> <tr> <td>sort file1 file2</td> <td>排序两个文件的内容</td> </tr> <tr> <td>sort file1 file2</td> <td>uniq</td> </tr> <tr> <td>sort file1 file2</td> <td>uniq -u</td> </tr> <tr> <td>sort file1 file2</td> <td>uniq -d</td> </tr> <tr> <td>comm -1 file1 file2</td> <td>比较两个文件的内容只删除 ‘file1’ 所包含的内容</td> </tr> <tr> <td>comm -2 file1 file2</td> <td>比较两个文件的内容只删除 ‘file2’ 所包含的内容</td> </tr> <tr> <td>comm -3 file1 file2</td> <td>比较两个文件的内容只删除两个文件共有的部分</td> </tr> </tbody> </table> # 字符设置和文件格式转换 # <table> <thead> <tr> <th>命令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>dos2unix filedos.txt fileunix.txt</td> <td>将一个文本文件的格式从MSDOS转换成UNIX</td> </tr> <tr> <td>unix2dos fileunix.txt filedos.txt</td> <td>将一个文本文件的格式从UNIX转换成MSDOS</td> </tr> <tr> <td>recode …HTML < page.txt > page.html</td> <td>将一个文本文件转换成html</td> </tr> <tr> <td>recode -l</td> <td>more</td> </tr> </tbody> </table> # 文件系统分析 # <table> <thead> <tr> <th>命令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>badblocks -v /dev/hda1</td> <td>检查磁盘hda1上的坏磁块</td> </tr> <tr> <td>fsck /dev/hda1</td> <td>修复/检查hda1磁盘上linux文件系统的完整性</td> </tr> <tr> <td>fsck.ext2 /dev/hda1</td> <td>修复/检查hda1磁盘上ext2文件系统的完整性</td> </tr> <tr> <td>e2fsck /dev/hda1</td> <td>修复/检查hda1磁盘上ext2文件系统的完整性</td> </tr> <tr> <td>e2fsck -j /dev/hda1</td> <td>修复/检查hda1磁盘上ext3文件系统的</td> </tr> <tr> <td>fsck.ext3 /dev/hda1</td> <td>修复/检查hda1磁盘上ext3文件系统的完整性</td> </tr> <tr> <td>fsck.vfat /dev/hda1</td> <td>修复/检查hda1磁盘上fat文件系统的完整性</td> </tr> <tr> <td>fsck.msdos /dev/hda1</td> <td>修复/检查hda1磁盘上dos文件系统的完整性</td> </tr> <tr> <td>dosfsck /dev/hda1</td> <td>修复/检查hda1磁盘上dos文件系统的完整性</td> </tr> </tbody> </table> # 初始化一个文件系统 # <table> <thead> <tr> <th>命令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>mkfs /dev/hda1</td> <td>在hda1分区创建一个文件系统</td> </tr> <tr> <td>mke2fs /dev/hda1</td> <td>在hda1分区创建一个linux ext2的文件系统</td> </tr> <tr> <td>mke2fs -j /dev/hda1</td> <td>在hda1分区创建一个linux ext3(日志型)的文件系统</td> </tr> <tr> <td>mkfs -t vfat 32 -F /dev/hda1</td> <td>创建一个 FAT32 文件系统</td> </tr> <tr> <td>fdformat -n /dev/fd0</td> <td>格式化一个软盘</td> </tr> <tr> <td>mkswap /dev/hda3</td> <td>创建一个swap文件系统</td> </tr> </tbody> </table> # SWAP文件系统 # <table> <thead> <tr> <th>命令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>mkswap /dev/hda3</td> <td>创建一个swap文件系统</td> </tr> <tr> <td>swapon /dev/hda3</td> <td>启用一个新的swap文件系统</td> </tr> <tr> <td>swapon /dev/hda2 /dev/hdb3</td> <td>启用两个swap分区</td> </tr> </tbody> </table> # 备份 # <table> <thead> <tr> <th>命令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>dump -0aj -f /tmp/home0.bak /home</td> <td>制作一个 ‘/home’ 目录的完整备份</td> </tr> <tr> <td>dump -1aj -f /tmp/home0.bak /home</td> <td>制作一个 ‘/home’ 目录的交互式备份</td> </tr> <tr> <td>restore -if /tmp/home0.bak</td> <td>还原一个交互式备份</td> </tr> <tr> <td>rsync -rogpav --delete /home /tmp</td> <td>同步两边的目录</td> </tr> <tr> <td>rsync -rogpav -e ssh --delete /home ip_address:/tmp</td> <td>通过SSH通道rsync</td> </tr> <tr> <td>rsync -az -e ssh --delete ip_addr:/home/public /home/local</td> <td>通过ssh和压缩将一个远程目录同步到本地目录</td> </tr> <tr> <td>rsync -az -e ssh --delete /home/local ip_addr:/home/public</td> <td>通过ssh和压缩将本地目录同步到远程目录</td> </tr> <tr> <td>dd bs=1M if=/dev/hda</td> <td>gzip</td> </tr> <tr> <td>dd if=/dev/sda of=/tmp/file1</td> <td>备份磁盘内容到一个文件</td> </tr> <tr> <td>tar -Puf backup.tar /home/user</td> <td>执行一次对 ‘/home/user’ 目录的交互式备份操作</td> </tr> <tr> <td>( cd /tmp/local/ && tar c . ) | ssh -C user@ip_addr ‘cd /home/share/ && tar x -p’</td> <td>通过ssh在远程目录中复制一个目录内容</td> </tr> <tr> <td>( tar c /home ) | ssh -C user@ip_addr ‘cd /home/backup-home && tar x -p’</td> <td>通过ssh在远程目录中复制一个本地目录</td> </tr> <tr> <td>tar cf - .</td> <td>(cd /tmp/backup ; tar xf - )</td> </tr> <tr> <td>find /home/user1 -name ‘*.txt’ | xargs cp -av --target-directory=/home/backup/ --parents</td> <td>从一个目录查找并复制所有以 ‘.txt’ 结尾的文件到另一个目录</td> </tr> <tr> <td>find /var/log -name ‘*.log’ | tar cv --files-from=- | bzip2 > log.tar.bz2</td> <td>查找所有以 ‘.log’ 结尾的文件并做成一个bzip包</td> </tr> <tr> <td>dd if=/dev/hda of=/dev/fd0 bs=512 count=1</td> <td>做一个将 MBR (Master Boot Record)内容复制到软盘的动作</td> </tr> <tr> <td>dd if=/dev/fd0 of=/dev/hda bs=512 count=1</td> <td>从已经保存到软盘的备份中恢复MBR内容</td> </tr> </tbody> </table> # 光盘 # <table> <thead> <tr> <th>命令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force</td> <td>清空一个可复写的光盘内容</td> </tr> <tr> <td>mkisofs /dev/cdrom > cd.iso</td> <td>在磁盘上创建一个光盘的iso镜像文件</td> </tr> <tr> <td>mkisofs /dev/cdrom | gzip > cd_iso.gz</td> <td>在磁盘上创建一个压缩了的光盘iso镜像文件</td> </tr> <tr> <td>mkisofs -J -allow-leading-dots -R -V “Label CD” -iso-level 4 -o ./cd.iso data_cd</td> <td>创建一个目录的iso镜像文件</td> </tr> <tr> <td>cdrecord -v dev=/dev/cdrom cd.iso</td> <td>刻录一个ISO镜像文件</td> </tr> <tr> <td>gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom</td> <td>刻录一个压缩了的ISO镜像文件</td> </tr> <tr> <td>mount -o loop cd.iso /mnt/iso</td> <td>挂载一个ISO镜像文件</td> </tr> <tr> <td>cd-paranoia -B</td> <td>从一个CD光盘转录音轨到 wav 文件中</td> </tr> <tr> <td>cd-paranoia – “-3”</td> <td>从一个CD光盘转录音轨到 wav 文件中(参数-3)</td> </tr> <tr> <td>cdrecord --scanbus</td> <td>扫描总线以识别scsi通道</td> </tr> <tr> <td>dd if=/dev/hdc | md5sum</td> <td>校验一个设备的md5sum编码,例如一张 CD</td> </tr> </tbody> </table> # 网络 - (以太网和WIFI无线) # <table> <thead> <tr> <th>命令</th> <th>用途</th> </tr> </thead> <tbody> <tr> <td>ifconfig eth0</td> <td>显示一个以太网卡的配置</td> </tr> <tr> <td>ifup eth0</td> <td>启用一个 ‘eth0’ 网络设备</td> </tr> <tr> <td>ifdown eth0</td> <td>禁用一个 ‘eth0’ 网络设备</td> </tr> <tr> <td>ifconfig eth0 192.168.1.1 netmask 255.255.255.0</td> <td>控制IP地址</td> </tr> <tr> <td>ifconfig eth0 promisc</td> <td>设置 ‘eth0’ 成混杂模式以嗅探数据包 (sniffing)</td> </tr> <tr> <td>dhclient eth0</td> <td>以dhcp模式启用 ‘eth0’</td> </tr> <tr> <td>route -n</td> <td>show routing table</td> </tr> <tr> <td>route add -net 0/0 gw IP_Gateway</td> <td>configura default gateway</td> </tr> <tr> <td>route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1</td> <td>configure static route to reach network ‘192.168.0.0/16’</td> </tr> <tr> <td>route del 0/0 gw IP_gateway</td> <td>remove static route</td> </tr> <tr> <td>echo “1” > /proc/sys/net/ipv4/ip_forward</td> <td>activate ip routing</td> </tr> <tr> <td>hostname</td> <td>show hostname of system</td> </tr> <tr> <td>host <a href="http://www.example.com" rel="nofollow">www.example.com</a></td> <td>lookup hostname to resolve name to ip address and viceversa(1)</td> </tr> <tr> <td>nslookup <a href="http://www.example.com" rel="nofollow">www.example.com</a></td> <td>lookup hostname to resolve name to ip address and viceversa(2)</td> </tr> <tr> <td>ip link</td> <td>show show link status of all interfaces</td> </tr> <tr> <td>mii-tool eth0</td> <td>show link status of ‘eth0’</td> </tr> <tr> <td>ethtool eth0</td> <td>show statistics of network card ‘eth0’</td> </tr> <tr> <td>netstat -tup</td> <td>show all active network connections and their PID</td> </tr> <tr> <td>netstat -tup</td> <td>l show all network services listening on the system and their PID</td> </tr> <tr> <td>tcpdump tcp port 80</td> <td>show all HTTP traffic</td> </tr> <tr> <td>iwlist scan</td> <td>show wireless networks</td> </tr> <tr> <td>iwconfig eth1</td> <td>show configuration of a wireless network card</td> </tr> <tr> <td>hostname</td> <td>show hostname</td> </tr> <tr> <td>host <a href="http://www.example.com" rel="nofollow">www.example.com</a></td> <td>lookup hostname to resolve name to ip address and viceversa</td> </tr> <tr> <td>nslookup <a href="http://www.example.com" rel="nofollow">www.example.com</a></td> <td>lookup hostname to resolve name to ip address and viceversa</td> </tr> <tr> <td>whois <a href="http://www.example.com" rel="nofollow">www.example.com</a></td> <td>lookup on Whois database</td> </tr> </tbody> </table> # JPS工具 # jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。 我想很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程,及其 id。 jps 也是一样,它的作用是显示当前系统的java进程情况,及其id号。我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实例),和他们的进程号(为下面几个程序做准备),并可通过opt来查看这些进程的详细启动参数。 **使用方法:在当前命令行下打 jps(需要JAVA\_HOME,没有的话,到改程序的目录下打) 。** **jps存放在JAVA\_HOME/bin/jps,使用时为了方便请将JAVA\_HOME/bin/加入到Path.** $> **jps** 23991 Jps 23789 BossMain 23651 Resin 比较常用的参数: **-q 只显示pid,不显示class名称,jar文件名和传递给main 方法的参数** $> **jps -q** 28680 23789 23651 **-m 输出传递给main 方法的参数,在嵌入式jvm上可能是null** $> **jps -m** 28715 Jps -m 23789 BossMain 23651 Resin -socketwait 32768 -stdout /data/aoxj/resin/log/stdout.log -stderr /data/aoxj/resin/log/stderr.log **-l 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名** $> **jps -l** 28729 sun.tools.jps.Jps 23789 com.asiainfo.aimc.bossbi.BossMain 23651 com.caucho.server.resin.Resin **-v 输出传递给JVM的参数** $> **jps -v** 23789 BossMain 28802 Jps -Denv.class.path=/data/aoxj/bossbi/twsecurity/java/trustwork140.jar:/data/aoxj/bossbi/twsecurity/java/:/data/aoxj/bossbi/twsecurity/java/twcmcc.jar:/data/aoxj/jdk15/lib/rt.jar:/data/aoxj/jd k15/lib/tools.jar -Dapplication.home=/data/aoxj/jdk15 -Xms8m 23651 Resin -Xss1m -Dresin.home=/data/aoxj/resin -Dserver.root=/data/aoxj/resin -Djava.util.logging.manager=com.caucho.log.LogManagerImpl - Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImpl **sudo jps看到的进程数量最全** **jps 192.168.0.77** **列出远程服务器192.168.0.77机器所有的jvm实例,采用rmi协议,默认连接端口为1099** **(前提是远程服务器提供jstatd服务)** **注:jps命令有个地方很不好,似乎只能显示当前用户的java进程,要显示其他用户的还是只能用unix/linux的ps命令。** 转自:[https://www.cnblogs.com/yjd\_hycf\_space/p/7730690.html][https_www.cnblogs.com_yjd_hycf_space_p_7730690.html] [https_www.cnblogs.com_yjd_hycf_space_p_7730690.html]: https://www.cnblogs.com/yjd_hycf_space/p/7730690.html
还没有评论,来说两句吧...