Linux常用命令

2022/4/10 7:12:52

本文主要是介绍Linux常用命令,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

常用组合键

  • [Tab] [Tab] 命令补全/文件补齐/命令参数提示
  • [Ctrl] + c 中断目前的程序
  • [Ctrl] + d 相当于exit
  • [Ctrl] + z 暂停程序
  • [Ctrl] + r 历史命令搜索

命令说明

  • [xxx --help] 命令的简单介绍以及该命令的可选参数
  • [man xxx] 命令的详细说明
  • [info xxx] 类似网页的形式显示命令的详细说明(命令说明文件要有info格式的)

重启与关机

  • reboot & shutdown -r now 重启
  • shutdown -h now & poweroff & halt 关机
  • sync 数据同步写入到磁盘
  • 重启和关机可时sync将内存中的数据同步到磁盘中 sync; reboot & sync; shutdown -h now

目录相关操作

  • cd (./../-//account) 切换目录
  • pwd [-P] 显示当前目录 带参数P会列出实际目录而非链接目录
  • mkdir/rmdir [-p] 创建目录/删除目录 带参数p会递归创建或递归删除
  • cp/rm/mv 复制/删除/移动
  • basename/dirname 获路径的文件名/获取目录名

文件内容查看

  • cat [-n] 由第一行开始显示文件内容
  • tac 从最后一行开始显示
  • nl 显示的时候,同时显示行号 [-b a]显示空行的行号
  • more 一页一页的看
  • less 与more类似,但它可以往前翻页 [/][?]向下和向上查找
  • head 只看前面几行
  • tail [-n] [-f] 只看后几行
  • cat -n /file | head -n 20 | tail -n 10 截取查看第11到第20行
  • touch 创建新文件
  • file 观察文件类型

命令与文件的查找

  • whereis 查找命令的执行文件(默认找PATH设置的目录 通过[-l]可以查看搜索的目录)
  • find [PATH] [option] [action] P203页

文件系统的操作

  • df 列出文件系统的整体磁盘使用量
  • df -h /etc 将/etc下的磁盘容量结果以易读的格式显示出来
  • du 查看文件系统的磁盘使用量(常用在查看目录所占磁盘空间)
  • du 列出目前目录下的所有文件容量
  • du -sm /* 检查根目录下的所占用的容量

vim编辑器

  • vim file1 file2 同时编辑多文件
  • :files 查看已打开的文件
  • :n 编辑下一个文件
  • :N 编辑上一个文件
  • gg 移动到这个文件的第一行
  • G 移动到这个文件的最后一行
  • /word 光标之下查找字符串
  • ?word 光标之上查找字符串
  • ndd 删除光标所在的向下的n行
  • nyy 复制光标所在的向下的n行
  • p 将已复制的数据在光标下一行粘贴 P为粘贴光标上一行
  • u 恢复上一个操作
  • [ctrl] + r 重复上一个操作
  • :set nu|nonu 显示/取消行号
  • :sp filename 将一个文件显示在一个窗口中或者是在窗口中显示另外一个文件
  • [ctrl]+w+向上 光标移动到上面的窗口
  • [ctrl]+w+向下 光标移动到下面的窗口

Shell命令

  • 登录后的shell 一般会有6个 用ctrl+alt+F1~F6进行shell切换
  • history 历史命令 ~/.bash_history中只记录上次登录前的,本次登录的还在内存中
  • history n 最近n条命令
  • history -c 清除所有历史操作记录
  • history -w 将内存中的历史命令记录到文件中
  • !number 执行第几条命令
  • !command 由最近的命令向前查找以command开头的那个命令 并执行
  • !! 执上一条命令
  • alias 命令别名的设置 alias jump='ssh jumpServer' 然后可通过type查看 用unalias取消别名设置
  • type 查询命令是否为Shell的内置命令(命令的执行目录)
  • 变量设置 name=wang 变量名只能时字母或数字,开头不能是数字
  • 变量扩充 name="\(wang"yonghui 或 name=\){wang}yonghui
  • echo 读取变量内容 echo \(name 双引号内的\)可保持原有的特性 单引号中的$会被解释成纯文本
  • export 变量名 让变量成为环境变量(子程序看可以取到)
  • unset 取消变量的设置
  • read 读取键盘输入的变量[-p 提示字符][-t 等待时间(秒)] read -p "please keyin you name:" -t 30 name
  • source /etc/profile . /etc/profile 读入环境配置文件(用户个人的配置文件[/.bashrc]/[/.bash_profile]/[~/.profile])
  • ~/.bash_logout 退出登录前需要做的一些操作配置在这里面

流的重定向

  • 1> 用覆盖的方式将正确的数据输出到指定的文件上 如果仅存在>时 默认就是1>
  • 1>> 用追加的方式将正确的数据输出到指定的文件上 如果仅存在>>时 默认就是1>>
  • 2> 用覆盖的方式将错误的数据输出到指定的文件上
  • 2>> 用追加的方式将错误的数据输出到指定的文件上
  • 2>&1/>& 将正确的和错误的数据都输出到指定的一个文件中
  • /dev/null 垃圾桶黑洞不需要的数据可以重定向到这里
  • < 将原本需要由键盘输入的数据,改为由文件内容替换 用ctrl+d结束输入
  • cat > catfile 创建一个文件,文件内容为键盘输入内容
  • cat > catfile < ~/.bashrc 和cp命令测效果一致
  • << 将原本需要由键盘输入的数据,改为由文件内容替换 用指定的字符结束输入
  • cat > catfile << "end"

管道命令

  • cut 将一行信息的某段内容切出来
    -d 后面跟分隔符,需要与-f 一起使用
    -f 取出用-d分割后的第几段
    echo $PATH | cut -d ':' -f 3,5 用:分割取出第三和第五个
  • grep [-参数] [--color=auto] '查找字符' filename
    -c 计算找到 '查找字符'的次数 last | grep -c wyh
    -i 忽略大小写
    -n 输出行号 last | grep -n wyh
    -v 反向选择 last | grep -v wyh
    -An 为after意思,除了改行以外的后续n行也列出来
    -Bn 为befer意思,除了改行以外的前面n行也列出来
  • sort [-参数] file 排序
    -f 忽略大小写的差异,例如A与a视为编码相同
    -b 忽略最前面的空格部分
    -M 用月份的名字来排序
    -n 使用纯数字进行排序
    -r 反向排序
    -u 相同的数据仅出现一行
    -t 分割符号 默认使用table来分割
    -k 用分割后的你个区间来排序
    cat /etc/passwd | sort -t ":" -k 3 -n
    last | cut -d ' ' -f 1 | sort -u
    last | cut -d ' ' -f 1 | sort | uniq -c
  • wc [-参数] 行、字、字符的统计
    -l 仅列出行数
    -w 仅列出多少字(英文字母)
    -m 列出多少字符
wyh@wyh-NBD-WXX9:~/mytest$ last | wc
    274    2765   19991
    行数   字数   字符数
  • tee [-a] 双向重定向 -a 用追加的方式将数据写入文件中
    last | tee last.list 屏幕会输出信息,并且屏幕输出的信息会记录到last.list中
  • split [-bl] file
    -b 后面可接想要划分的文件大小,可加单位b,k,m
    -l 一行数来进行划分
    last | split -n 5k lasts
    last | split -l 20 lasts
  • sed 将数据进行替换、删除、新增、选取特定行
    操作:
    a 新增 nl /etc/passwd | sed '5a wang'
    c 替换 nl /etc/passwd | sed '2,5c wang'
    d 删除 nl /etc/passwd | sed '2,5d'
    i 插入 nl /etc/passwd | sed '5i wang'
    p 打印 nl /etc/passwd | sed -n '5,7p'
    s 替换 nl test.sh | sed '5,7s/a/mmmm/g'
    直接对原文件进行修改 sed -i '5a wang' test.sh
  • awk 主要是处理每一行的字段内的数据
    awk '条件类型1 {操作1} 条件类型1 {操作1} ...' filename
    变量:
    NF 每一行($0)拥有的字段总数
    NR 目前awk所处理的第几行数据
    FS 目前的分隔符,默认是空格键
    cat /etc/passwd | awk 'BEGIN{FS=":"} $3>100 {print $1 "\t\t" $3 "\t\tline:" NR "\t\tcount:" NF}'
    cat /etc/passwd | awk 'BEGIN{FS=":"} NR%2==0 {print $1 "\t\t" $3 "\t\tline:" NR "\t\tcount
    :" NF}'
  • diff 比较两个文件的差异
    diff [参数] file1 file2
    -b 忽略一行当中仅有多个空白的差异例如"wang"与"w ang"
    -B 忽略空白行
    -i 忽略大小写的不同

进程操作

  • & 直接将任务扔到后台运行
  • jobs 查看后台任务的状态
    -l 列出任务序号、命令串和PID
    -r 仅列出正在 后台运行的任务
    -s 仅列出正在后台暂停的任务
  • fg %任务号 将后台的任务拿到前台来处理
  • bg %任务号 将后台暂停的任务变成运行中
  • kill 管理后台中的任务
    -1 重启
    -2 同Ctrl+c
    -9 立即强制删除一个任务
    -15 已正常的方式终止一项任务
    -19 相当于键盘输入Ctrl-z暂停一个进程
  • ps 将某个时间点的进程摘取出来
    -ps -l 查看自己bash下的进程
    -ps aux 查看系统的所有进程


这篇关于Linux常用命令的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程