Linux常用命令合集

发布于:2024-12-19 ⋅ 阅读:(14) ⋅ 点赞:(0)

Linux 命令手册

如需看原文请移步至:https://blog.csdn.net/l1028386804/article/details/117917710
本文只是加入目录方便查找使用

1. 基本命令

  • 显示机器信息

    • 显示机器的处理器架构: uname -march
    • 显示正在使用的内核版本: uname -r
    • 显示硬件系统部件 (SMBIOS / DMI): dmidecode -q
    • 罗列一个磁盘的架构特性: hdparm -i /dev/hda
    • 在磁盘上执行测试性读取操作: hdparm -tT /dev/sda
  • 显示系统信息

    • 显示CPU info的信息: cat /proc/cpuinfo
    • 显示中断: cat /proc/interrupts
    • 校验内存使用: cat /proc/meminfo
    • 显示哪些swap被使用: cat /proc/swaps
    • 显示内核的版本: cat /proc/version
    • 显示网络适配器及统计: cat /proc/net/dev
    • 显示已加载的文件系统: cat /proc/mounts
  • 罗列设备

    • 罗列 PCI 设备: lspci -tv
    • 显示 USB 设备: lsusb -tv
  • 时间和日期

    • 显示系统日期: date
    • 显示2007年的日历表: cal 2007
    • 设置日期和时间: date MMDDhhmmYYYY.ss
    • 将时间修改保存到 BIOS: clock -w

2. 关机命令

  • 关闭系统:

    • shutdown -h now
    • init 0
    • telinit 0
    • 按预定时间关闭系统: shutdown -h hours:minutes &
    • 取消按预定时间关闭系统: shutdown -c
  • 重启系统:

    • shutdown -r now
    • reboot
  • 注销: logout

3. 文件和目录管理

  • 目录导航

    • 进入 ‘/home’ 目录: cd /home
    • 返回上一级目录: cd ..
    • 返回上次所在的目录: cd -
  • 查看路径

    • 显示工作路径: pwd
  • 文件和目录操作

    • 查看目录中的文件: ls, ls -F, ls -l, ls -a
    • 创建目录: mkdir dir1
    • 删除文件或目录: rm -f file1, rmdir dir1, rm -rf dir1
    • 移动/重命名目录: mv dir1 new_dir
    • 复制文件或目录: cp file1 file2, cp -a dir1 dir2
    • 创建软链接或物理链接: ln -s file1 lnk1, ln file1 lnk1
  • 文件属性修改

    • 修改文件时间戳: touch -t 0712250000 file1
    • 输出文件的MIME类型: file file1
    • 列出已知编码: iconv -l
    • 文件编码转换: iconv -f fromEncoding -t toEncoding inputFile > outputFile
    • 批量调整图片大小: find . -maxdepth 1 -name "*.jpg" -print -exec convert "{}" -resize 80x60 "thumbs/{}" \;

4. 文件搜索

  • 搜索文件和目录:

    • 从根文件系统开始: find / -name file1
    • 搜索特定用户的文件: find / -user user1
    • 搜索特定类型的文件: find /home/user1 -name "*.bin"
    • 搜索未使用过的文件: find /usr/bin -type f -atime +100
    • 搜索新创建或修改的文件: find /usr/bin -type f -mtime -10
    • 定义权限: find / -name "*.rpm" -exec chmod 755 '{}' \;
    • 忽略可移动设备: find / -xdev -name "*.rpm"
  • 快速查找:

    • 寻找文件: locate "*.ps" (先运行 updatedb)
    • 显示二进制文件位置: whereis halt
    • 显示可执行文件路径: which halt

5. 文件系统挂载

  • 挂载和卸载:
    • 挂载分区: mount /dev/hda2 /mnt/hda2
    • 卸载分区: umount /dev/hda2
    • 强制卸载: fuser -km /mnt/hda2
    • 不写入/etc/mtab卸载: umount -n /mnt/hda2
    • 挂载软盘、光驱等: mount /dev/fd0 /mnt/floppy, mount /dev/cdrom /mnt/cdrom
    • 挂载ISO镜像文件: mount -o loop file.iso /mnt/cdrom
    • 挂载Windows文件系统: mount -t vfat /dev/hda5 /mnt/hda5
    • 挂载USB设备: mount /dev/sda1 /mnt/usbdisk
    • 挂载Windows网络共享: mount -t smbfs -o username=user,password=pass //WinClient/share /mnt/share

6. 磁盘空间管理

  • 显示已挂载的分区列表: df -h
  • 以尺寸大小排列文件和目录: ls -lSr |more
  • 估算目录使用的磁盘空间: du -sh dir1
  • 显示文件和目录的大小排序: du -sk * | sort -rn
  • 显示已安装包使用的空间:
    • RPM包: rpm -q -a --qf '%10{SIZE}t%{NAME}n' | sort -k1,1n
    • DEB包: dpkg-query -W -f='${Installed-Size;10}t${Package}n' | sort -k1,1n

7. 用户和群组管理

  • 创建、删除、重命名用户组: groupadd group_name, groupdel group_name, groupmod -n new_group_name old_group_name
  • 创建、删除、修改用户: useradd ..., userdel -r user1, usermod ...
  • 修改密码: passwd, passwd user1
  • 设置口令失效期限: chage -E YYYY-MM-DD user1
  • 检查用户和群组: pwck, grpck
  • 登陆新的群组: newgrp group_name

8. 文件权限设置

  • 显示权限: ls -lh
  • 设置权限: chmod ugo+rwx directory1, chmod go-rwx directory1, chmod u+s /bin/file1, …
  • 更改文件所有者: chown user1 file1, chown -R user1 directory1
  • 更改文件群组: chgrp group1 file1, chown user1:group1 file1

9. 文件特殊属性

  • 设置文件属性: chattr +a file1, chattr +c file1, …
  • 显示特殊属性: lsattr

10. 打包和压缩文件

  • 解压和压缩: bunzip2 file1.bz2, bzip2 file1, gunzip file1.gz, gzip file1, …
  • 创建和解压rar包: rar a file1.rar test_file, rar x file1.rar, …
  • 创建和解压tarball: tar -cvf archive.tar file1, tar -xvf archive.tar, …
  • 创建和解压bz2格式压缩包: tar -cvfj archive.tar.bz2 dir1, tar -xvfj archive.tar.bz2
  • 创建和解压gz格式压缩包: tar -cvfz archive.tar.gz dir1, tar -xvfz archive.tar.gz
  • 创建和解压zip格式压缩包: zip file1.zip file1, unzip file1.zip

11. RPM 包管理

  • 安装、更新、删除rpm包: rpm -ivh package.rpm, rpm -U package.rpm, rpm -e package_name.rpm
  • 查询已安装的rpm包: rpm -qa
  • 获取rpm包信息: rpm -qi package_name
  • 显示rpm包提供的文件列表: rpm -ql package_name
  • 显示配置文件列表: rpm -qc package_name
  • 确认文件由哪个rpm包提供: rpm -qf /etc/httpd/conf/httpd.conf
  • 导入公钥数字证书: rpm --import /media/cdrom/RPM-GPG-KEY
  • 确认rpm包完整性: rpm --checksig package.rpm
  • 检查已安装的rpm包: rpm -Va

12. YUM 软件包升级器 (Fedora, RedHat及类似系统)

  • 安装RPM包: yum install package_name
  • 使用本地文件安装并解决依赖关系: yum localinstall package_name.rpm
  • 更新所有已安装的RPM包: yum update
  • 更新特定的RPM包: yum update package_name
  • 删除RPM包: yum remove package_name
  • 列出当前系统中安装的所有包: yum list
  • 在RPM仓库中搜索软件包: yum search package_name
  • 清理缓存删除下载的包: yum clean packages
  • 删除所有头文件: yum clean headers
  • 删除所有缓存的包和头文件: yum clean all

13. DEB 包管理 (Debian, Ubuntu 及类似系统)

  • 安装/更新一个deb包: dpkg -i package.deb
  • 删除一个deb包: dpkg -r package_name
  • 显示系统中所有已经安装的deb包: dpkg -l
  • 显示包含特定字符串的deb包: dpkg -l | grep httpd
  • 获取已安装包的信息: dpkg -s package_name
  • 显示已安装deb包所提供的文件列表: dpkg -L package_name
  • 显示尚未安装的包所提供的文件列表: dpkg --contents package.deb
  • 确认文件由哪个deb包提供: dpkg -S /bin/ping

APT 工具 (Debian, Ubuntu 及类似系统)

  • 安装/更新一个deb包: apt-get install package_name
  • 从光盘安装/更新deb包: apt-cdrom install package_name
  • 升级列表中的软件包: apt-get update
  • 升级所有已安装的软件: apt-get upgrade
  • 删除一个deb包: apt-get remove package_name
  • 确认依赖的软件仓库正确: apt-get check
  • 从下载的软件包中清理缓存: apt-get clean
  • 搜索包含特定字符串的软件包名称: apt-cache search searched-package

14. 查看文件内容

  • 正向查看文件内容: cat file1
  • 反向查看文件内容: tac file1
  • 查看长文件的内容: more file1
  • 类似more但支持反向操作: less file1
  • 查看文件前几行: head -n file1
  • 查看文件最后几行: tail -n file1
  • 实时查看文件新增内容: tail -f /var/log/messages

15. 文本处理

  • 管道、标准输入输出文本操作: cat file1 | command > result.txt
  • 追加文本到已有文件: cat file1 | command >> result.txt
  • 文件中查找关键词: grep pattern file
  • 查找以特定字符开始的行: grep '^pattern' file
  • 查找包含数字的行: grep '[0-9]' file
  • 目录中递归查找字符串: grep -R string directory
  • 替换文本: sed 's/old/new/g' file
  • 删除空白行: sed '/^$/d' file
  • 删除注释和空白行: sed '/ *#/d; /^$/d' file
  • 删除末尾空白字符: sed -e 's/ *$//' file
  • 删除特定单词: sed -e 's/string//g' file
  • 显示特定行数内容: sed -n 'start,endp' file
  • 显示某一行: sed -n 'linep' file
  • 标示文件的行数: cat -n file
  • 删除偶数行: awk 'NR%2==1' file
  • 查看一行的第一栏: 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
  • 比较两个文件只删除第二个文件内容: comm -2 file1 file2
  • 比较两个文件只删除共有的部分: comm -3 file1 file2

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

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

17. 文件系统分析

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

18. 初始化文件系统

  • 创建文件系统: mkfs /dev/hda1
  • 创建ext2文件系统: mke2fs /dev/hda1
  • 创建ext3文件系统: mke2fs -j /dev/hda1
  • 创建FAT32文件系统: mkfs -t vfat 32 -F /dev/hda1
  • 格式化软盘: fdformat -n /dev/fd0
  • 创建swap文件系统: mkswap /dev/hda3

19. SWAP 文件系统

  • 创建swap文件系统: mkswap /dev/hda3
  • 启用swap文件系统: swapon /dev/hda3
  • 同时启用多个swap分区: swapon /dev/hda2 /dev/hdb3

20. 备份

  • 完整备份目录: dump -0aj -f /tmp/home0.bak /home
  • 交互式备份目录: dump -1aj -f /tmp/home0.bak /home
  • 还原交互式备份: restore -if /tmp/home0.bak
  • 同步两边的目录: rsync -rogpav --delete /home /tmp
  • 通过SSH通道同步目录: rsync -rogpav -e ssh --delete /home ip_address:/tmp
  • 通过SSH和压缩同步远程目录到本地: 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'
  • 备份磁盘内容到文件: dd if=/dev/sda of=/tmp/file1
  • 交互式备份目录: tar -Puf backup.tar /home/user
  • 通过SSH复制目录内容到远程目录: ( 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'
  • 本地复制目录并保留原有权限及链接: tar cf - . | (cd /tmp/backup ; tar xf -)
  • 查找并复制特定后缀文件到另一目录: find /home/user1 -name '*.txt' | xargs cp -av --target-directory=/home/backup/ --parents
  • 查找所有.log结尾文件并打包压缩: find /var/log -name '*.log' | tar cv --files-from=- | bzip2 > log.tar.bz2
  • 复制MBR内容到软盘: dd if=/dev/hda of=/dev/fd0 bs=512 count=1
  • 从软盘恢复MBR内容: dd if=/dev/fd0 of=/dev/hda bs=512 count=1

21. 光盘操作

  • 清空可复写光盘: cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force
  • 创建光盘ISO镜像文件: 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
  • 从CD光盘转录音轨到wav文件: cd-paranoia -B
  • 从CD光盘转录音轨到wav文件(参数-3): cd-paranoia -- "-3"
  • 扫描总线识别SCSI通道: cdrecord --scanbus
  • 校验设备MD5SUM编码: dd if=/dev/hdc | md5sum

22. 网络配置

  • 显示网卡配置: ifconfig eth0
  • 启用网络设备: ifup eth0
  • 禁用网络设备: ifdown eth0
  • 控制IP地址: ifconfig eth0 192.168.1.1 netmask 255.255.255.0
  • 设置混杂模式: ifconfig eth0 promisc
  • DHCP模式启用网卡: dhclient eth0
  • 显示路由表: route -n
  • 配置默认网关: route add -net 0/0 gw IP_Gateway
  • 配置静态路由: route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1
  • 移除静态路由: route del 0/0 gw IP_gateway
  • 激活IP路由: echo "1" > /proc/sys/net/ipv4/ip_forward
  • 显示主机名: hostname
  • 解析主机名到IP地址: host www.example.com, nslookup www.example.com
  • 显示所有接口链路状态: ip link show
  • 显示网卡链路状态: mii-tool eth0, ethtool eth0
  • 显示所有活动网络连接及其PID: netstat -tup
  • 显示所有监听服务及其PID: netstat -tupl
  • 显示HTTP流量: tcpdump tcp port 80
  • 显示无线网络: iwlist scan
  • 显示无线网卡配置: iwconfig eth1
  • 查询Whois数据库: whois www.example.com

23. 列出目录内容

  • 显示所有文件(包括隐藏文件): ls -a
  • 显示详细信息: ls -l
  • 递归显示子目录结构: ls -R
  • 显示目录和链接信息: ls -ld
  • 搜索历史命令: ctrl+r
  • 显示当前目录: pwd

24. 查看文件类型

  • 使用 file 命令查看文件的类型: file filename

25. 文件和目录操作

文件复制

  • 复制文件或目录: cp source destination
  • 递归复制整个目录树: cp -r source_directory destination_directory
  • 显示详细信息: cp -v source destination

文件时间戳修改

  • 创建空文件或更新文件的时间戳: touch filename
  • 修改文件时间为特定日期: touch -d "20040210" test

文件移动与重命名

  • 移动或重命名文件: mv source destination
  • 将文件移至上层目录: mv a.txt ../
  • 重命名文件: mv a.txt b.txt
  • 移动目录: mv dir2 ../

文件删除

  • 删除文件: rm filename
  • 强制删除文件: rm -f *.txt
  • 交互式删除文件: rm -i *
  • 递归删除目录及内容: rm -r directory
  • 强制且不询问地递归删除: rm -rf directory

目录创建与删除

  • 创建新目录: mkdir directory_name
  • 连续创建多级目录: mkdir -p dir1/dir2
  • 删除空目录: rmdir directory_name
  • 递归删除目录及其子目录: rmdir -p dir1/dir2

链接创建

  • 创建软链接: ln -s /source/path link_name
  • 创建硬链接: ln /source/file hard_link

26. 系统常用命令

时间与日历

  • 查看或设置系统时间: date
  • 设置系统时间为指定格式: date +%Y-%m-%d
  • 设置当前系统时间: date -s "new_time"
  • 查看硬件时钟时间: hwclockclock
  • 查看日历: cal
  • 查看指定月份的日历: cal 4 2004
  • 查看整年日历: cal -y 2003
  • 查看系统运行时间: uptime

输出与查看命令

  • 显示文本: echo "text"
  • 追加文本到文件末尾: echo "text" >> file.txt
  • 显示文件内容: cat file.txt
  • 合并文件内容: cat file1.txt file2.txt > combined.txt
  • 显示文件头部内容: head -n number file.txt
  • 显示文件尾部内容: tail -n number file.txt
  • 实时追踪文件更新: tail -f /var/log/messages
  • 分页显示文件内容(仅向下翻页): more file.txt
  • 分页显示文件内容(支持上下翻页): less file.txt

硬件信息

  • 查看PCI设备: lspci
  • 查看USB设备: lsusb
  • 查看加载的模块: lsmod

归档与压缩

  • 压缩文件为zip: zip archive.zip file
  • 解压zip文件: unzip archive.zip
  • 使用gzip压缩文件: gzip file
  • 打包文件为tar归档: tar -cvf archive.tar files...
  • 解包tar归档: tar -xvf archive.tar
  • 打包并压缩为gzipped tarball: tar -czvf archive.tar.gz files...
  • 查看tar归档内容: tar -tf archive.tar
  • 解压gzipped tarball: tar -xzvf archive.tar.gz

文件查找

  • 快速查找文件或目录: locate keyword
  • 更新查找数据库: updatedb
  • 搜索文件或目录: find path [expression]
  • 查找根目录下所有.conf文件: find / -name "*.conf"
  • 查找权限为777的文件: find / -perm 777
  • 查找并执行命令: find . -name "a*" -exec ls -l {} \;

其他有用命令

  • 终止当前命令: Ctrl + C
  • 查看登录用户: whow
  • 显示系统诊断信息: dmesg
  • 查看文件系统占用情况: df
  • 查看目录使用空间: du [options] directory
  • 查看内存使用情况: free