Linux基础命令详解(二)————Vim文本编辑





shell:壳,命令解释器

cat /etc/shells

/bin/sh

/bin/bash

/sbin/nologin

/usr/bin/sh

/usr/bin/bash

/usr/sbin/nologin

/bin/tcsh

/bin/csh

man bash

man cd

man ls

type 查看命令是file、alias还是builtin

内置命令 (shell内置)。

外置命令:在文件系统的某个目录下,有个与命令名称相同的文件。

区别: shell为了完成自我管理和基本的管理,不同的shell内置不同的命令,但是大部分都差不多。

-t 仅列出命令执行时的依据

-a 列出当前命令可以如何执行

那命令怎么知道是那个路径下的命令呢?系统为了让用户在命令行快速方便地执行命令,用一种机制来实现,这种机制就叫做环境变量。

变量是什么? 变量是命名的内存空间。

shell的变量功能:

变量简单说就是让某一个特定字符串代表不固定的内容。

设置变量(变量名的规则:用“=”连接;等号两边不能有空格符;只能使用数字和字母,且不能用数字开头;):

myname=redhat(变量声明的过程就是申请内存使用的过程)

环境变量

定义当前用户工作环境属性的变量

PATH

取消变量:unset 变量名称

/bin/bash优点:

命令与文件补全功能

命令别名设置功能

命令记忆功能

通配符等等

history 命令历史

命令历史文件为~/.bash_history

n 列出目前最近的n条信息

-c 清除命令历史

!! 执行上一个命令

! number 执行命令历史中第几条命令

shell中的通配符:bash中常用的通配符有”*“,”?“,”[]“

* 表示匹配任意零个或多个字符

? 表示匹配任意单一字符

[] 匹配任何包含在方括号内的单字符

shell中的引用:在bash中有很多特殊字符,这些特殊字符就具有特殊含义。引用就是通知shell将这些特殊字符当作普通字符来处理。

转义字符“”:如果将放到特殊字符前面,shell就忽略这些特殊字符的原有含义,把它们当作普通字符对待。

mkdir 1*

ls -ld 1*

ll -d 1*

单引号: 如果将字符串放到一对单引号之间,那么字符串中所有字符的特殊含义被忽略。

ll -d 1'*'

双引号: 双引号的引用与单引号基本相同,包含在双引号内的大部分特殊字符可以当作普通字符处理,但是仍然有一些特殊字符保留自己的特殊含义,比如”$“和“”以及“ ` ”

ll -d 1"*"

myname=redhat

echo “$myname”

echo “$$myname”

echo "`date` "

文本编辑vim:

命令模式:按esc键可回到命令模式

dd 删除当前行 数字+dd删除的行数

dw 按单词删除

u 撤销当前操作

ctrl+r 重做

yy 复制光标所在行

2 yy 复制光标所在行和光标下一行

p 粘贴到光标下一行

cc 剪切

行数cc 剪切当前行开始的几行

x 删除光标所在位置的内容

w,b 按单词进行移动光标

gg 跳转到文档首部行首

dgg 删除光标至文档首部

G 跳转到文档尾部行首

/字符串1 查找字符串1

$ 行尾

^ 行首

h 往左按字符移动光标

j 往下(后)按行移动光标

k 往上(前)按行移动光标

l 往右按字符移动光标

H 跳转到当前屏幕输出的最上面一行

L 跳转到当前屏幕输出的最下面一行

M 跳转到当前屏幕输出的中间那一行

插入模式:

i 在光标前插入

I 在光标所在行行首插入

a 在光标后插入

A 在光标所在行末尾插入

s 删除光标所在位置字符并插入

S 删除光标所在行并插入

o 在光标所在行下一行插入

O 在光标所在行上一行插入

末行模式:

:wq 保存退出

:q 退出(未修改文件内容才可以退出)

:wq! 强制保存退出

:q! 强制退出,不保存

:set nu 显示行号

:set nonu 不显示行号

:行号 跳转到指定行号

:3,5 d 删除3-5行

:r 文件名1 读出文件1的内容到当前文件里

:%s/字符串2/字符串3 字符串3替换字符串2

:%s/1/2/g 将1替换为2,全局修改

:w 文件名1 另存为文件名1

文本查看命令:

连接并显示文件内容到标准输出: cat

显示文件内容并显示行号: cat -n 文件名

黑洞机制 (shell脚本里面经常用)

将文件内容重定向到/dev/null: cat 文件 >/dev/null

不带任何选项时,从标准输入接收输出到标准输出

逆序显示文件: tac

从头开始逐行查看: more /var/log/messages

在没有翻到最后一屏时支持向前翻

前后查看文件内容: less /var/log/messages

man手册查看命令用法默认用less打开

默认查看文件前10行: head /etc/passwd

指定查看前5行: head -5 /etc/passwd

默认查看后10行: tail /etc/passwd

查看后5行: tail -5 /etc/passwd

文本处理:

文本切割显示:

cut -d 指定分隔符 -f 指定第几列 被切割文件

-f 1,3 第一列和第三列

-f 1-3 第一列到第三列

-c 1-4 指定第一到第四个字符

指定分隔符的时候空格需要用单引号或双引号引起来

cut -d : -f 1-3 [email protected] /etc/passwd

文本排序显示:

排序显示(默认根据字符在ASCII码中的升序排序):sort 文件名

按照数值大小排序:sort -n 文件名

排序并去掉重复的:sort -u 文件名

逆序排序:sort -r 文件名

按照用户uid数字大小排序显示:

sort -t 指定分隔符 -k 指定第几列 -n /etc/passwd

-f 排序时忽略字符大小写

去掉重复的行,重复的行必须相邻:uniq 文件名

-d 只显示重复的行

-D 显示所有重复的行

-c 显示重复行重复的次数

文本统计:wc——word count

显示文件行数、单词数、字节数和文件名:wc 文件名

###在UTF-8编码格式里面,显示时一个字符占一个字节,一个中文字占用3个字节

只显示单词数:wc -w 文件名

只显示字节数:wc -c 文件名

只显示行数:wc -l 文件名

只显示字符数:wc -m 文件名

显示最长的一行的字符数:wc -L 文件名

统计当前目录下的文件数:

ls -l | wc -l

ls | wc -l

文本过滤:grep可以根据指定的字符串,对文件的每一行进行搜索,如果找到了这个字符串,就输出该行的内容

查找文件里的字符和字符串:

查找文件里有字符h的字符串: grep h 文件名

匹配整个单词: grep -w 单词 文件名

匹配以q开始的行: grep ^[q] 文件名

匹配以q和a开始的行: grep ^[qa] 文件名

匹配以q结束的行: grep q$ 文件名

匹配以q和a结束的行: grep [qa]$ 文件名

匹配以数字开头的行: grep ^[0-9] 文件名

匹配以q或者f开头的行: grep ^[qf] 文件名

匹配以#号开头的行: grep "^#"

过滤空白行: grep "^$"

如果要明确搜索子目录: grep -r h ./* (有h的文件)

忽略子目录: grep -d skip h ./*

搜索时忽略大小写: grep -i

搜索时显示没有匹配到的行: grep -v

搜索时显示匹配到的那一行以及下2行: grep -A 2

搜索时显示匹配到的那一行以及上2行: grep -B 2

搜索时显示匹配到的那一行以及上下2行: grep -C 2

管道符:| 管道符左边命令的输出作为管道符右边命令的输入。

tee命令:在输出到文件的同时输出到屏幕,既想把输出保存到文件中,又想在屏幕上看到输出内容。

文件搜索:

查找文件路径:

find 路径 -name 文件名:find / -name passwd


(责任编辑:IT)





为您推荐