Linux常用命令记录

简介:
Bash命令行编辑模式
1. 两种模式: emacs vi ,默认是 emacs.
2. 可以通过 set -o vi/emacs 切换模式
3. 可以通过 set -o 查看当前是什么模式,即是vi on还是emacs on。
4.  set 命令可以通过 help set 来查看具体用法;通过 set -o [option] 打开某个属性,通过 set +o [option] 关闭某个属性值。

emacs命令行编辑模式
对字符 ctrl ):
    前移一个字符: ctrl+f
    后移一个字符: ctrl+b
    删除前一字符: ctrl+h/del/backspace
    删除后一字符: ctrl+d

对单词 esc ):
    前移一个单词: esc+f
    后移一个单词: esc+b
    删除前一单词: esc+ctrl+h ,或 ctrl+w/esc+del/esc+backspace
    删除后一单词: esc+d
    恢复最后删除的项: ctrl+y (目前知道的:对使用ctrl+h、ctrl+d、backspace、delete等删除的字符无效,对使用ctrl+w、esc+ctrl+h、esc+d等键删除的字符有用)

对于行 ctrl ):
    移动到行首: ctrl+a
    移动到行尾: ctrl+e
    从光标所在删除直到行首: ctrl+u
    从光标所在删除直到行尾: ctrl+k

对历史命令:     
    移动到前一历史命令: ctrl+p
    移动到后一历史命令: ctrl+n
    移动到第一个历史命令: esc+<
    移动到最后一个历史命令: esc+>
    在历史命令中反向搜索: ctrl+r(若找到的一个不符合,可以继续按ctrl+r,会一直以查找的字符串向上找)

命令行补齐:
     通用热键
        补齐命令行: tab
        列出所有可能的备选项: esc+?
     补齐文件名:
        补齐文件名: esc+/
        列出所有备选文件名: ctrl+x+/
     补齐用户名:
        补齐用户名: esc+~
        列出所有备用用户名: ctrl+x+~
     补齐主机名:
        补齐主机名: esc+@
        列出所有备选主机名: ctrl+x+@
     补齐内置变量:
        补齐变量名: esc+$
        列出所有备选变量名: ctrl+x+$
     补齐命令名
        补齐命令名: esc+!
        列出所有备选命令名: ctrl+x+!
      补齐历史列表中的命令名 esc+tab

杂项命令:
    清屏: ctrl+l
    反转光标所在字符及其前面的字符: ctrl+t (并且光标向前移动,若一直按,可以将光标前的一个字符向前移动到某个需要的位置)
    从光标开始的整个单词大写: esc+u
    从光标开始的整个单词小写: esc+l
    将光标处的单词首字母大写: esc+c

Vi模式下的编辑命令
常用命令:
    删除前面的字符: Del/Backspace/ctrl+h
    删除前面的单词,即删除至空格: ctrl+w
    输入结束: ctrl+d /回车
    进入控制模式: esc

控制模式下的命令:
     向左移动一个字符 :h
     向右移动一个字符 :l
     向左移动一个单词 :b
     向右移动一个单词 :w
      移到上一个非空字符的开始 :B
      移到下一个非空字符的开始 :W
     移到当前单词的结尾 :e
     移到当前非空单词的结尾 :E
     移到行首 :0
     移到行内第一个字符 :^
     移到行尾 :$
    
输入控制
     在当前字符前插入文本 :i
     在当前字符后插入文本 :a
     在行首插入文本 :I
    在行尾插入文本 :A
     用文本覆盖已存在的文本 :R

删除命令(所有将d换成c,即删除后进入输入模式)
    向后删除一个字符: dh/x
    向前删除一个字符: dl/X
    向后删除一个单词: db
    向前删除一个单词: dw
    向后删除一个非空单词: dB
    向前删除一个非空单词: dW
    删除到行尾: d$/D
    删除到行首: d0
    删除整行: 0d$/dd
    删除到行尾,并进入输入模式: c$/C
    删除整行,并进入输入模式: 0c$/cc
    
     恢复删除:u

历史了命令搜索
    向后移动一条记录: k/-
    向前移动一条记录: j/+
     移动到重复计数指定的行 :G
    向后搜索字符串: /字符串
    向前搜索字符串: ?字符串
     在前一条搜索命令同一方向的下一条记录 :n
     在前一条搜索命令相反反向的上一条记录 :N

字符查找
    向右移到字符x下一次出现的位置: fx
    向左移到字符x前一次出现的位置: Fx
    向右移到字符x下一次出现的位置,并后退一格: tx
    向左移到字符x前一次出现的位置,并前进一格: Tx
    重复上一次查询命令 :;
    以相反方向重复上一次查询命令 :,

杂项命令
    转换当前字符大小写 :_
    清屏: ctrl+l
    给当前行前加#字符 :#

ubuntu添加组、新用户、密码、删除、修改登陆属性
sudo groupadd hadoop 
sudo useradd -s /bin/bash -d /home/hadoop -g hadoop -G sudo hadoop
sudo passwd hadoop

sudo userdel hadoop
sudo groupdel hadoop

sudo usermod <option> <username>
常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等
-c comment 指定一段注释性描述。
-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g 用户组 指定用户所属的用户组。
-G 用户组,用户组 指定用户所属的附加组。
-s Shell文件 指定用户的登录Shell。
-u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

ubuntu切换用户、添加用户到sudoers
su <username>
sudo adduser <username> sudo
sudo usermod -a -G sudo <username>

历史命令记录文件: $HISTFILE ,一般为用户目录下的.bash_history文件,可以通过设置 $HISTFILE 变量修改。 

只查看zip文件中的内容:
unzip -l filename.zip
zipinfo filename.zip 

复制路径:
cp -r sourceDir destDir

查看文件、目录大小:
du -sh file/directory 

vi命令:

整页翻页 ctrl-f ctrl-b
f就是forword b就是backward

翻半页
ctrl-d ctlr-u
d=down u=up

滚一行
ctrl-e ctrl-y

zz 让光标所杂的行居屏幕中央
zt 让光标所杂的行居屏幕最上一行 t=top
zb 让光标所杂的行居屏幕最下一行 b=bottom

vi/vim 中可以使用 :s 命令来替换字符串。

:s/vivian/sky/ 替换当前行第一个 vivian 为 sky

:s/vivian/sky/g 替换当前行所有 vivian 为 sky

:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky

:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky

n 为数字,若 n 为 .,表示从当前行开始到最后一行

:%s/vivian/sky/(等同于 :g/vivian/s//sky/) 替换每一行的第一个 vivian 为 sky

:%s/vivian/sky/g(等同于 :g/vivian/s//sky/g) 替换每一行中所有 vivian 为 sky

可以使用 # 作为分隔符,此时中间出现的 / 不会作为分隔符

:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/

:%s+/oradata/apras/+/user01/apras1+ (使用+ 来 替换 / ): /oradata/apras/替换成/user01/apras1


awk去其中某几列数据:
awk -F '|' '{OFS="|"; print $34, $44, $20, $21, $24, $25, $39, $3}' fileName > newFile
-F为原始文件列分隔符,OFS指定新文件列分隔符
awk去重复列:
awk -F '|' '{print $9}' fileName | sort | awk '!a[$0]++'
awk找到一列中值等于match的行:
awk -F '|' '{if ($9 == "match") print $0;}' fileName > newFile

相关文章
|
19小时前
|
安全 网络协议 Linux
linux必学的60个命令
Linux是一个功能强大的操作系统,提供了许多常用的命令行工具,用于管理文件、目录、进程、网络和系统配置等。以下是Linux必学的60个命令的概览,但请注意,这里可能无法列出所有命令的完整语法和选项,仅作为参考
|
21小时前
|
监控 Linux 数据处理
|
21小时前
|
编解码 Ubuntu Linux
|
1天前
|
JSON Linux 数据格式
Linux命令发送http
请注意,`curl`命令非常灵活,可以根据您的需求进行多种配置和自定义。您可以查看 `curl`命令的文档以获取更多详细信息。
4 0
|
2天前
|
安全 Linux 测试技术
|
2天前
|
安全 Linux Windows
Linux中Shutdown命令使用介绍
Linux中Shutdown命令使用介绍
10 2
|
3天前
|
缓存 关系型数据库 Linux
Linux目录结构:深入理解与命令创建指南
Linux目录结构:深入理解与命令创建指南
|
3天前
|
数据挖掘 Linux vr&ar
Linux命令实战:解决日常问题的利器
Linux命令实战:解决日常问题的利器
|
3天前
|
NoSQL Linux Redis
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
Redis的介绍,以及Redis的安装(本机windows版,虚拟机Linux版)和Redis常用命令的介绍
17 0
|
3天前
|
安全 Linux Shell
linux基础命令详解
linux基础命令详解
10 0