Ubuntu小技巧16--常见命令使用方法2

Ubuntu小技巧16--常见命令使用方法

笔者之前已经在博文 Ubuntu小技巧16–常见命令使用方法 中记录了ubuntu上大量常见实用命令和常见异常错误的处理方法,但是内容较多、排版不太和谐,因此后续会在此处续更。老版本上的软件安装和常见问题再次出现时,将会同步更新到此处。

1 系统命令

  1. 磁盘相关命令

    以下为磁盘初始化流程和涉及的命令:
    parted -s /dev/sde mklabel gpt
    parted -a opt /dev/sde mkpart primary ext4 1 100%
    mkfs.ext4 -F /dev/sde1
    tune2fs -r 5242880 /dev/sde1
    #blkid确定sde UUID,更新到fstab后可以
    mount -a
    
    若想确定有哪些进程占用磁盘,然后kill掉异常经常,那么可以使用lsof 磁盘位置
    lsof /dev/sde
    
  2. 更改系统时区方法

    ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
    设置 ubuntu 和 windows 双系统时间同步方法(避免windows和ubuntu 8小时时差)
    timedatectl set-local-rtc 1
    
  3. 查看系统硬件信息

    dmidecode 可以查看系统硬件详细信息,若想查看指定硬件信息,那么可以通过 grep -A10 Memory 或 CPU 的方式来查看
    dmidecode | grep -A10 "Memory Device" 
    

    linux如何查看内存频率,Linux查看内存信息

  4. find 命令

    在/ l o g s目录中查找更改时间在7日以前的文件并删除它们:
    $ find logs/ -type f -mtime +7 -exec rm -f {} \;
    在/ l o g s目录中查找更改时间在7日以内的文件并删除它们:
    $ find logs/ -type f -mtime -7 -exec rm -f {} \;
    
  5. top 命令

    top 命令后,输入大写P对cpu排序,输入大写M对内存排序
    若需交互性能更好的工具,可以使用htop
    
  6. 查看 inode 使用情况

    df -i 查看磁盘是有分区inode使用情况,
    du --inodes 可以查看指定目录inode使用情况
    du  --inodes /var/*
    du --max-depth=1 --inodes /var/lib/docker/overlay2/*
    

    linux查看inode使用情况,Linux Inode信息及inode使用率是指什么? - 新手站长网

  7. linux下常见的关机重启操作

    poweroff 关机
    reboot 重启
    shutdown -r now  关机后重启
    shutdown -h now  关机后不重启
    shutdown -r +10 10分钟后重启
    shutdown -r 10:00 10点钟重启
    shutdown -h +10 10分钟后关机
    shutdown -h 10:00 10点钟关机
    
  8. bash profile介绍

    .bash_profile 类似于编程中的构造函数,当登录shell时,shell会寻找该文件做环境初始化。
    .bashrc 是在bash环境时.bash_profile的替补。
    .bash_logout 类似于编程中的析构函数,当登录shell退出时,shell会寻找该文件,并按其指示办事。 
    /etc/profile是系统文件,对系统下全体用户起作用
    
  9. 常用文本查看方法

    tail -10 fname
    head -10 fname
    sed -n '5,10p' fname 输出5-10行内容
    tac逆序输出文本内容
    rev逆序输出字符串
    
  10. 系统属性查看

    (a)lsb_release -a 查看系统版本
    (b)cat /etc/issue 系统版本
    (c)cat /proc/version 系统相关信息
    (d)uname -a
    
  11. 文件大小数量相关操作

    ls -l filename | awk '{print $5}'
    du -b filename | awk '{print $1}'
    wc -c filename | awk '{print $1}'
    wc -c < filename
    stat -c "%s" filename
    以上方法都可以查看filename的大小,单位为bit
    ls -Rl|grep '^-'|wc -l 统计当前目录下文件数量
    ls -Rl|grep '^d'|wc -l 统计当前目录下文件夹数量
    
  12. 下载系统常见命令源码方法

    	步骤:whereis '命令' -> dpkg -S '命令绝对路径' -> apt-get source '上一步中命令的包'
    	下载ls命令源码流程如下:
    	$ whereis ls
    	ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
    	$ dpkg -S /usr/bin/ls
    	coreutils: /usr/bin/ls
    	$ apt source coreutils
    	Reading package lists... Done
    	Need to get 6,022 kB of source archives.
    	Get:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main coreutils 9.4-3ubuntu6 (dsc) [2,022 B]
    	Get:2 https://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main coreutils 9.4-3ubuntu6 (tar) [5,979 kB]
    	Get:3 https://mirrors.tuna.tsinghua.edu.cn/ubuntu noble/main coreutils 9.4-3ubuntu6 (diff) [40.5 kB]
    	Fetched 6,022 kB in 5s (1,259 kB/s)  
    	dpkg-source: info: extracting coreutils in coreutils-9.4
    	dpkg-source: info: unpacking coreutils_9.4.orig.tar.xz
    	......
    	dpkg-source: info: applying tail-fix-tailing-sysfs-files-where-PAGE_SIZE-BUFSIZ.patch
    	dpkg-source: info: applying CVE-2024-0684.patch
    	
    	若出现报错: E: You must put some 'deb-src' URIs in your sources.list
    	解决方法: 去掉 /etc/apt/sources.list 中对deb-src的注释,然后重新apt update即可
    	```
    

2 专业软件命令

  1. iftop 查看网卡流量
    apt-get install iftop
    iftop -i wlp4s0(ifconfig 查看的网络接口名称)
    
  2. sar 命令
    apt install sysstat
    sar 是一个功能齐全的系统工具,可以用来收集查看 CPU、内存、IO 、磁盘、网络等信息
    sar -A 可以查看所有的信息
    
  3. Linux常见压缩命令
    01-.tar格式
    解包:$ tar xvf FileName.tar
    打包:$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)
    02-.gz格式
    解压1:$ gunzip FileName.gz
    解压2:$ gzip -d FileName.gz
    压 缩:$ gzip FileName
    03-.tar.gz格式
    解压:$ tar zxvf FileName.tar.gz
    压缩:$ tar zcvf FileName.tar.gz DirName
    04-.bz2格式
    解压1:$ bzip2 -d FileName.bz2
    解压2:$ bunzip2 FileName.bz2
    压 缩: $ bzip2 -z FileName
    05-.tar.bz2格式
    解压:$ tar jxvf FileName.tar.bz2
    压缩:$ tar jcvf FileName.tar.bz2 DirName
    06-.bz格式
    解压1:$ bzip2 -d FileName.bz
    解压2:$ bunzip2 FileName.bz
    07-.tar.bz格式
    解压:$ tar jxvf FileName.tar.bz
    08-.Z格式
    解压:$ uncompress FileName.Z
    压缩:$ compress FileName
    09-.tar.Z格式
    解压:$ tar Zxvf FileName.tar.Z
    压缩:$ tar Zcvf FileName.tar.Z DirName
    10-.tgz格式
    解压:$ tar zxvf FileName.tgz
    11-.tar.tgz格式
    解压:$ tar zxvf FileName.tar.tgz
    压缩:$ tar zcvf FileName.tar.tgz FileName
    12-.zip格式
    解压:$ unzip FileName.zip
    压缩:$ zip FileName.zip DirName
    13-.lha格式
    解压:$ lha -e FileName.lha
    压缩:$ lha -a FileName.lha FileName
    14-.rar格式
    解压:$ unrar x FileName.rar 其中x表示解压到文件夹,若用e则解药到但前路径下
    压缩:$ rar e FileName.rar
    15-.tar.xz
    解压:
    方法一:需要用到两步命令,首先利用 xz-utils 的 xz 命令将 FileName.tar.xz 解压为 FileName.tar,其次用 tar 命令将 FileName.tar 完全解压。
    xz -d FileName.tar.xz
    tar -xf FileName.tar
    方法二(推荐):tar -Jxf FileName.tar.xz
    压缩:
    方法一:也是用到两步命令,首先利用 tar 命令将 FileName 文件夹打包成 FileName.tar,其次用 xz-utils 的 xz 命令将 FileName.tar 压缩成 FileName.tar.xz。
    tar -cf FileName.tar FileName/
    xz -z FileName.tar
    方法二(推荐):tar -Jcf FileName.tar.xz FileName/
    
  4. LVM扩容操作
    lsblk
    lvdisplay
    lvextend -l +100%FREE /dev/ubuntu-vg/ubuntu-lv
    df -h|grep -v docker|grep -v kubelet|grep -v tmpfs
    resize2fs /dev/ubuntu-vg/ubuntu-lv
    
    lsblk 查看发现磁盘只分了50%
    在这里插入图片描述
    lvdisplay 查看磁盘信息
    在这里插入图片描述
    lvextend 来扩大逻辑盘大小
    在这里插入图片描述
    resize2fs 来实际扩大磁盘大小在这里插入图片描述
  5. curl 命令输出为 json 格式
    使用 python 的json.tool
    curl your_web.com |python3 -m json.tool
    
    使用 jq命令,需要 apt install jq 
    curl your_web.com |jq
    

3 常见错误处理

  1. 如何开启cron执行日志
    默认情况下 cron 是没有开启执行日志,会导致用户不知道crontab 为何执行失败;
    若需要开启 crontab 执行日志,那么需要注释掉 /etc/rsyslog.d/50-default.conf 中 cron* 前面的 # , 然后重启 rsyslog cron 服务
    systemctl restart rsyslog
    systemctl restart cron
    
  2. 执行 ansible-playbook 报错 Using a SSH password instead of a key is not possible
    笔者曾经执行命令报错
    命令: ansible-playbook /data/ansible/ecs_init.yml -i /data/workOrderId/131/ansible-hosts -u root
    报错: fatal: [172.22.0.110]: FAILED! => {"msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.  Please add this host's fingerprint to your known_hosts file to manage this host."}
    
    解决方法:
    vim /etc/ansible/ansible.cfg
    host_key_checking = False # 去掉注释
    
  3. man 命令报错 Bad system call (core dumped)
    最近执行man命令,报错如下:
    man: preconv: Bad system call (core dumped)
    man: tbl: Bad system call (core dumped)
    man: nroff: Bad system call (core dumped)
    解决方法: 
    设置 MAN_DISABLE_SECCOMP=1 ,可以直接在命令行设置,也可以 export MAN_DISABLE_SECCOMP=1 到环境变量中
    
    参考 [linux man手册返回错误 man: command exited with status 159](https://blog.csdn.net/weilin731/article/details/120646356)
    

4 说明

笔者使用的系统主要为ubuntu 18.04 server版本、ubuntu 22.04 desktop、ubuntu 23.10 desktop版本。
一般情况下两者都可以使用,特殊情况下会注明系统版本。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昕光xg

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值