Linux常用命令

5 分钟阅读

快捷键

在命令行下已经输入一串命令下的快捷操作:

  • ctrl+c: 中断输入,另起一行
  • ctrl+u: 删除光标以前的字符
  • ctrl+k: 删除光标后以后的字符
  • ctrl+a: 移动光标至头部
  • ctrl+e: 移动光标至尾部
  • ctrl+l: 清屏
  • ctrl+r: 搜索历史命令

简单命令

  • init 0poweroff: 关机
  • cd - : 进入上次访问目录
  • init 6reboot: 重启
  • passwd username: 修改username密码,比如修改root密码,passwd root
  • find /home -name file: 在/home目录及子目录查找文件file,可以包含通配符*.
  • find /home -name xxxx -exec cp {} abc/ \;: 将找到的文件拷贝到abc目录
  • ln -sf abc.sh /usr/bin/abc: 建立软链接,-s表示软链接,-f表示force
  • diff file1 file2: 比较2个文件
  • diff folder1 folder2: 比较2个文件夹
  • cmp file1 file2: 比较二进制,-s安静模式
  • ssh-copy-id -i id_rsa.pub username@192.168.1.1: 添加ssh认证
  • scp -r username@192.168.1.1:/home/test .: 将远程目录拷贝到本地,-r代表目录
  • script: 保存终端所有输入输出到当前目录的typescript,退出用exit
  • ps -aux: 查看所有进程
  • kill <pid>: 杀掉指定进程
  • minicom -D /dev/ttyUSB0 -b 115200 -c on -C $(date +%Y-%m-%d_%H:%M:%S).log: 开启usb串口,记录日志
  • du -h -d 1 . : 查看当前目录的各个文件(夹)大小
  • chown -R user:user * : 将当前目录以及子目录的用户都改为user
  • readlink file : 查看软链接file的路径
  • last | grep 'shutdown\|reboot' : 查看上一次重启时间
  • tar -xzvf file.tar.gz : 解压tar.gz
  • tar –czf jpg.tar.gz *.jpg : 将所有的jpg图片压缩到文件jpg.tar.gz中
  • python -m SimpleHTTPServer 8000 : 创建简单的http服务器,http://localhost:8000打开
  • ldd xxx.out: 查看程序的链接库路径
  • xxd a.bin: 十六进制显示文件
  • od -tf4 a.bin: 二进制文件,显示浮点值
  • strip a.bin: 去掉可执行文件的符号,大幅减少文件大小;-g只去掉debug的符号
  • nohup cmd > cmd.log 2>&1 &: 不挂断后台运行cmd,nohup cmd &默认输出到nohup.out
  • shopt -s extglob: 开启扩展模式,支持?*+@!匹配,比如rm -rf !(except)
  • file a.lib: 识别文件类型

复杂命令

# 重命名多个文件
for name in `ls *.3.2`; do mv $name ${name%.3.2}.3; done #将文件.3.2改名为.3

# rename
apt install rename
rename 's/\.0$//' *

# mmv
apt install mmv
mmv '*.3.2.0' '#1.3.2'

工具

  • bless abc.bin: 十六进制读写
  • Gparted: 磁盘分区
  • netron: 神经网络查看工具
  • typora: markdown编辑工具

CPU信息

# insall
apt-get install cpufrequtils
# show info
cpufreq-info
# set cpu to performance
sudo cpufreq-set -g performance

grep

对指定目录或文件查找字符串片段是否存在,并显示该行内容

参数说明

  • -q: 安静模式,通用用于脚本中做判断
  • -r: 目录及子目录所有文件和文件夹查找
  • -n: 输出包含行数
  • -l: 列出符合条件的对应的文件名,注意不是指只有文件名符合
  • -o: 只列出匹配的部分,通常和正则表达式一起用
  • -E: 查找内容为正则表达式,grep -E = egrep

举例

  • grep test a.cpp: 在a.cpp中找包含test的行,并显示出来
  • grep -q hello test.txt: 如果在test.txt中找到hello,则返回true
  • lsmod | grep -q "abc": 查看加载的模块是否包含abc名字
  • grep -r test: 目录包括子目录,找文件名或文件内容包含test
  • git log -1|head -1|grep -E [0-9a-fA-F]{40} -o: 输出git目录的最新sha1编码