Linux常用命令汇总(持续更新)


随手就来的命令

$ lsof           列出系统所有打开的文件
$ lsof /etc/     查看那些程序在使用某个目录
$ lsof -i [46] [protocol][@hostname|hostaddr][:service|port]      显示符合条件的进程情况
$ lsof -i :22    查看某个端口在运行什么程序

$ netstat -tupnl    查看当前系统监听端口和对应的程序,只针对 udp 和 tcp 协议
$ runlevel 查看当前运行级别
$ update-rc.d 设置某个服务是否启动在那个启动级别
$ date -s     修改时间加 -s 参数
$ cal     日历
$ uptime 系统运行时间
$ hwclock     查看系统时钟
$ less 代上下翻页功能,与 more 类似,more 只能向下翻页
$ head     查看文件头部,默认显示 10 行
$ tail -f     查看文件尾部,默认显示 10 行,-f, 滚动输出
$ lspci -v     查看硬件信息,-v 查询详细信息
$ lsmod     查看加载的模块(驱动)
$ lsusb     查看 usb 信息
$ poweroff     立即关机
$ reboot     立即重启计算机

$ zip xxx.zip myfile    压缩文件为 xxx.zip
$ unzip xxx.zip     解压文件

$ tar -cvf     归档文件命令,只归档不压缩
$ tar -xvf     解归档文件
$ tar -cvzf     在进行归档的同时,也进行压缩 -- 最常用的命令

$ locate keyword    查找文件,包含 keyword 关键字的文件, 查找的是默认的数据库
$ updatedb     手动立即更新 locate 查找的数据库

$ find 查找位置 参数 如 find . -name *xxx* 当前目录查找
$ find / -name *.conf 根目录下查找
$ find / -perm 777 所有权限是 777 的文件
$ find / -type d     文件类型来查找 d 代表是目录 l 代表是链接
$ find . -name "a*" -exec ls -l {} \;

$ grep keyword < /etc/xxx (some file) 从某个路径的文件中查找关键字
$ find / -user yang 2> /dev/null | grep keyword 将错误信息丢弃掉,/dev/null代表丢弃信息

$ grep 'keyword' /etc/passwd 查找关键字,在某个文件中
    -i 忽略大小写
    -n 显示结果所在行数
    -v 输出不带关键字的行

$ cut -d: -f1 /etc/passwd 基于分隔符冒号来以列的方式显示文本
    -d 指定分隔符 默认是 tab 分隔符
    -f 指定显示第几列
    -c 基于字符进行切割 cut -c2-6 /etc/passwd 只显示第二到第六个字符

$ wc     -lwcm     统计文本信息,结果包括行数 单词数 字节数 字符数
$ sort - 不要称自己为程序员     对文本内容进行排序
$ diff -ibu     比较 2 个文本文件
$ tr -d 'TMD' < file     删除或者转换大小写,将 file 文件中 'TMD' 关键字删除
$ tr 'a-z' 'A-Z' < file     转换为大写
$ sed 's/linux/unix/g' file     文本查找并替换关键字,将 file 文件中的 linux 关键字替换为 unix,/g 参数代表同时替换多个
$ sed '1,50s/linux/unix/g' file 从第一行到第 50 行查找并替换
$ sed -e 's/linux/unix/g' -e 's/xxx/ooo/g' file -e 参数代表可以同时指定多个关键字进行查找和替换

$ service 服务名 [start/stop/status] 
$ chkconfig 服务名 [on/off/--list]     设置服务在起动级别下是否启动

$ dpkg -L 安装的软件名称 列出安装的软件所有文件在系统中目录的分布情况
$ dpkg -l 列出系统中所有安装的包
$ dpkg -l | wc -l     统计所有安装的包
$ dpkg -r --purge xxx     删除某软件包,xxx 代表已经安装到系统中软件包名称,不是源文件名称,--purge 代表配置文件同时删除
$ dpkg -i xxx.deb     安装某软件包

$ scp local_file remote_username@remote_host_ip: remote_file_path    复制本地文件到远程
$ scp remote_username@remote_host_ip: remote_file_path  local_file_path    复制远程文件到本地

$ ln -s    源文件位置 目标文件位置     建立链接,-s 代表建立软链接,软连接和硬链接都是同步更新的
$ df -h     统计磁盘容量命令,-h 代表使用 m、g 等单位显示磁盘容量
$ du -ahs 目录     统计目录下所有文件占用空间大小 -h 易读方式显示,-s 只统计目录所占总的大小,-a 显示目录及其所有子目录
$ du / 目录 | sort -nr | more     对目录中每个文件占用空间按照从大到小进行排序显示
$ cp /dev/cdrom/home/sunky/mydisk.iso 将光盘中的所有文件制作光盘镜像 iso 文件 (mydisk.iso)
$ mkisofs -r -J -V mydisk xxx.iso xxx 目录     可以将 xxx 目录制作为镜像文件 xxx.iso,同时指定卷标为 mydisk
$ mount xxx.iso / 目录     挂接某个 iso 文件到某个挂接点(就是一个目录),然后在这个目录中就可以访问镜像中文件
$ mount –o iocharset=utf8 /dev/hda5/mnt/hda5 挂载 windows 下分区,到 /mnt/hda5 目录,-o iocharset=utf8 参数设定中文目录和文件
$ sudo fdisk -l     查看硬盘信息

Bash

ctrl+w      删除最后一个单词
ctrl+u      删除一行
xargs
pgrep pkill 
nohup disown
ctrl + z     将前台作业放至后台运行 -- 暂停状态,那么你就可以继续获取 shell 的控制权了
ctrl + c     中断作业
bg           将前台作业放至后台运行,处于运行状态
fg           将后台作业放至前台继续运行
jobs -rs     查看所有的后台运行作业以及其状态,r - 正在运行的作业,s - 正在暂停的作业
xxx &        某某任务后加上 & 命令,在后台运行任务,你可以继续操作终端 shell
ctrl + a,ctrl + e     在 命令行输入命令是,直接跳到命令行开头,直接跳到命令行结尾