Linux常用命令

Linux命令格式

1
2
3
4
5
6
7
8
9
10
11
Linux的命令格式:命令 [命令选项]  [命令参数],例如:ls -l /
注意:三者之间要空格隔开,其中命令选项分为长格式和短格式。
短格式用'-'表示,比如:-l,
长格式用"--"表示,比如:--help,
也可以使用组合格式,比如:-a -l 等价于 -la 或者 -al

Linux的命令提示符:
#:管理员用户
$:普通用户

Linux以回车键表示命令结束,如果linux命令需要折行输入,那么可以以\表示每行结束

Linux常用命令归纳汇总

命令分类 常用命令列表
文件管理 mkdir, rmdir, mv, rm, cp, touch, cat, tac, echo, more, less, head, tail, file, find, rename, ln, pwd, scp, alias
磁盘管理 ls, cd, du, df, mount, unmounts, fdisk
文档处理 wc, sort, uniq, cut, sed, awk, grep, vi, diff
用户和组 useradd, usermod, passwd, userdel, groupadd, groupdel, chgrp, id, su, whoami, groups, exit
文件传输 get, put, wget
网络通信 telnet, nc, ifconfig, ping, netstat, ip, host, hostname, ifup, ifdown
备份压缩 gzip, bzip2, bunzip2, tar, zip
系统管理 kill, last, ps, top, free, pstree, reboot, halt, shutdown, sudo, who, w, whereis, which, whatis
系统设置 clear, set, unset, hwclock, time, date, locale, uname, cal
其他 history, nohup, service, init, rpm, ssh, yum

Linux命令学习方式

对于不会使用的命令:可以使用man命令来查看它的帮助文档:

1
man clear

image-20220410163840831

命令学习网站

Linux高频常用命令

cd:切换工作目录

1
2
3
4
5
6
7
8
cd:change directory 切换工作目录

常使用方式:
cd sourcedir 进入用户主目录
cd ~ 进入用户主目录
cd - 返回进入此目录之前所在的目录
cd .. 返回上级目录(若当前目录为"/",则执行完后还在"/";".."为上级目录的意思)
cd ../.. 返回上两级目录

pwd:显示当前工作目录

1
2
3
4
pwd:print working directory  显示当前工作目录

常使用方式:
pwd 显示当前工作目录

ls:显示目录内容列表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
ls:list  显示目录内容列表

使用格式:ls [选项]... [目录或文件名]

常用选项
-l:详细信息显示
-a:显示所有子目录和文件的信息,包括隐藏文件
-A:类似于“-a”,但不显示“.”和“..”目录的信息
-R:递归显示内容
-h:以友好方式显示文件大小(显示大小单位)

例子:
ls -l ## 列出文件详细信息, 也可以写作 ll
ls -lah ## 以友好方式显示包括隐藏文件的详细信息

du:显示每个文件和目录的磁盘使用空间

1
2
3
4
5
6
7
8
9
10
11
12
du:disk usage:显示每个文件和目录的磁盘使用空间

使用格式:du [选项]... [目录或文件名]

常用选项:
-a:统计时包括所有的文件,而不仅仅只统计目录(目录和每个目录中每个文件的大小)
-h:以更易读的字节单位(K、M等)显示信息
-s:只统计每个参数所占用空间总的大小(目录大小)

例子:
du -sh ##
du -ah ##

df:显示磁盘相关信息

1
2
3
4
5
6
7
8
9
df:disk free:显示磁盘相关信息

常用选项:
-h:以更易读的字节单位(K、M等)显示信息
-T:显示分区格式

例子:
df -h ## 显示磁盘信息,以友好方式
df -T -h ## 以友好格式显示磁盘信息,并且附加磁盘格式

touch:创建空文件,或更新文件时间标记

file:查看文件类型

1
2
3
4
5
6
7
8
9
touch:创建空文件,或更新文件时间标记

使用格式:
touch 文件名

file:查看文件类型

使用格式:
file 文件名 根据文件内容格式判断文件类型。而不是根据后缀名

mkdir:创建文件夹

1
2
3
4
5
6
7
mkdir:make directory 创建文件夹 

使用格式:mkdir [选项] [参数]

常用选项:
-p:已级联的方式创建文件夹
例子:mkdir -p /root/a/b/c/d ## 上级目录不存在自动创建上一级目录,常用

cp:复制文件

1
2
3
4
5
6
7
8
9
10
cp:copy 复制文件

使用格式:
cp [选项] 源文件或目录… 目标文件或目录

常用选项:
-r:递归复制整个目录树
-p:保持源文件的属性不变
-f:强制覆盖目标同名文件或目录
-i:需要覆盖文件或目录时进行提醒

rm:删除文件或目录

1
2
3
4
5
6
7
8
9
10
rm:remove 删除文件或目录

使用格式:rm [选项] 文件或目录

常用选项:
-f:强行删除文件或目录,不进行提醒
-i:删除文件或目录时提醒用户确认
-r:递归删除整个目录树

例子:rm -rf /root/ma/ ## 不提醒递归删除整个目录,慎用慎用慎用

mv:移动文件

1
2
3
4
5
6
7
8
mv:move 移动文件  如果与源文件位置一样,则相当于重命名

使用格式:
mv [选项]... 源文件或目录… 目标文件或目录

常用选项:
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作

rmdir:删除空文件夹

1
2
3
4
5
6
7
8
rmdir:remove directory 删除空文件夹

常用选项:
-p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;

案例:
rmdir -p /root/aa/bb/cc/dd/ee
删除文件夹ee,如果删除ee后,dd变为空,则删除dd,依次类推

cat:连接文件并打印到标准输出

tac:倒序输出文件内容

1
2
3
4
5
6
7
8
9
cat:catenate 连接文件并打印到标准输出

常用选项:
-n或--number:由1开始对所有输出的行数编号

tac:倒序输出文件内容

案例:
tac /root/abc.txt 倒序输出abc.txt文件中的内容

head:显示指定文件的开头若干行

1
2
3
4
5
6
7
head:在屏幕上显示指定文件的开头若干行,默认显示10行

常用选项:
-n<数字>:指定显示头部内容的行数;

例子:
head -n 5 install.log ## 显示该文件前五行内容

tail:显示指定文件的尾部若干行

1
2
3
4
5
6
7
8
9
10
tail:在屏幕上显示指定文件的末尾若干行

常用选项:
-f:显示文件最新追加的内容

例子:
tail file ## 显示文件file的最后10行
tail +20 file ## 显示文件file的内容,从第20行至文件末尾
tail -c 10 file ## 显示文件file的最后10个字符
tail -f install.log ## 显示最新追加的内容

more:显示文件内容

1
2
3
4
5
6
7
more:显示文件内容,每次显示一屏

使用方式:
按Space键:显示文本的下一屏内容。
按Enter键:只显示文本的下一行内容。
按h键:显示帮助屏,该屏上有相关的帮助信息。
按b键:显示上一屏内容。

less:分屏上下翻页浏览文件内容

1
2
3
4
5
6
7
8
9
10
less:分屏上下翻页浏览文件内容

使用方式:
和more使用方式基本类似
按e键:向上滚动一行
按y键:向下滚动一行
G:跳到文件末尾
gg:跳到文件首行
Space:向后翻一页
b:向前翻一页

echo:输出指定的字符串或者变量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
echo:输出指定的字符串或者变量

常用选项:
-e:若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
1
2
3
4
5
6
7
8
例子:
echo 'ma' ## 输出ma
echo -e 'ma\n' ## 打印ma之后换行
echo -ne 'aa' 'bb' ## 打印完不换行

echo ‘aa' > aa.dat ## 覆盖
echo ‘aa' >> aa.dat ## 追加
echo $PWD ## 输出变量内容

ln:用来为文件创建连接

1
2
3
4
5
6
ln:link 用来为文件创件连接   软链接 -s 和 硬链接

使用案例:
ln /mnt/cdrom1 /var/www/html/centos/ ## 硬链接
ln -s /mnt/cdrom2 /var/www/html/centos/ ## 软链接-符号链接
实际路径 链接路径

alias:别名

1
2
3
4
5
6
alias:别名

使用案例:
查看别名:alias
定义别名:alias la='ll -a'
取消别名:unalias la

Linux其他常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
whatis:命令是什么
whereis:在标准路径下搜索与名称相关的文件,whereis将所有搜索到的文件都显示
which:which在设定的搜索路径下进行目录搜索,只显示搜索到的第一个文件
su:切换用户
history:显示历史命令
hostname:显示主机名
set:查看系统变量
get:下载文件
put:上传文件
exit:退出登录状态
w:显示当前连接的用户
who:显示当前会话信息
uptime:查看系统运行时间

Linux常用小技巧总结

1
2
3
4
5
6
7
8
9
10
11
12
13
clear:清屏,或者按ctrl + l也行
ctrl + c:退出当前进程
ctrl + z:挂起当前前台进程
ctrl + u:清除光标前的命令,相当于剪切
ctrl + k:清除光标后的命令,相当于剪切
ctrl + y:粘贴
ctrl + t:把光标前面的那个字符往后挪动一位
ctrl + l:清屏
!!:执行上一次命令
!$:上个命令的最后一个单词
ctrl + w:删除光标前一个单词
cd data; cat sed.txt:表示先执行cd,然后执行cat,工作目录会切换
(cd data; cat sed.txt):跟上个命令相比,不切换工作目录

Linux常用命令:重定向

1
2
3
4
5
6
7
8
9
10
管道符,表示把前面命令内容的输出当做后面命令的输入
|
标准输入、输出
Stdin Stdout Stderr
输出重定向
、>>
错误输出重定向
2> 、&>、1>
输入重定向
< 、<<!…………!

Linux开机,关机,重启

1
2
3
4
5
6
7
8
开机:开机键
关机:shutdown,halt,init 0,poweroff
重启:reboot,init 6

shutdown命令详解:
shutdown -h now ## 立刻关机
shutdown -h +10 ## 10分钟以后关机
shutdown -h 12:00:00 ## 12点整的时候关机

Linux文本编辑器vim

image-20220415143740795

学会使用vi编辑器是学习Linux系统的必备技术之一,因为一般的Linux服务器是没有GUI界面的,Linux运维及开发人员基本上都是通过命令行的方式进行文本编辑或程序编写的。vi编辑器是Linux内置的文本编辑器,几乎所有的类unix系统中都内置了vi编辑器,而其它编辑器则不一定,另外很多软件会调用vi编辑进行内容编写,例如crontab定时任务。较之于其它编辑器或GUI编辑器,vi编辑速度是最快的。VIM是它的增强版本,VI有三种基本工作模式,分别是:

  • 命令模式(command mode)、或者叫一般模式
  • 插入模式(insert mode)、或者叫编辑模式
  • 底行模式(last line mode)、或者叫命令行模式

linux中vim的用法:https://cloud.tencent.com/developer/article/1134818?from=15425

Linux高级文本处理命令

wc:统计文件行数、字节、字符数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
功能: 统计文件行数、字节、字符数

常用选项:
-l:统计多少行
-w:统计字数
-c:统计文件字节数,一个英文字母1字节,一个汉字占2-4字节(根据编码)
-m:统计文件字符数,一个英文字母1字符,一个汉字占1个字符
-L:统计最长行的长度, 也可以统计字符串长度
-help:显示帮助信息
--version:显示版本信息

统计文件信息:wc wc.txt
统计字符串长度:echo "hello" | wc –L
统计文件行数:wc -l mingxing.txt
统计文件字数:wc -w mingxing.txt

sort:排序文本,默认对整列有效

1
2
3
4
5
6
7
8
9
10
11
12
13
功能:排序文本,默认对整列有效

常用可选项:
-f:忽略字母大小写,就是将小写字母视为大写字母排序
-M:根据月份比较,比如 JAN、DEC
-h:根据易读的单位大小比较,比如 2K、1G
-g:按照常规数值排序
-n:根据字符串数值比较
-r:倒序排序
-k:位置1,位置2根据关键字排序,在从第位置1开始,位置2结束
-t:指定分隔符
-u:去重重复行
-o:将结果写入文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
准备数据:sort.txt
aaa:10:1.1
ccc:20:3.3
bbb:40:4.4
eee:40:5.5
ddd:30:3.3
bbb:40:4.4
fff:30:2.2

## 直接排序,把整行当做一列字符串,字典顺序
sort sort.txt

## 以:作为分隔符,取第二个字段按照数值进行排序
sort -nk 2 -t : sort.txt

## 和上一个不一样的是-u为了去重
sort -nk 2 -u -t : sort.txt

## 多列排序:以:分隔,按第二列数值排倒序,第三列正序
sort -n -t: -k2,2r -k3 sort.txt

uniq:去除重复行,只会统计相邻的

1
2
3
4
5
6
7
8
9
10
11
12
功能:去除重复行,只会统计相邻的

常用选项:
-c:打印出现的次数
-d:只打印重复行
-u:只打印不重复行
-D:只打印重复行,并且把所有重复行打印出来
-f N:比较时跳过前N列
-i:忽略大小写
-s N:比较时跳过前N个字符
-w N:对每行第N个字符以后内容不做比较

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
准备数据:uniq.txt
abc
xyz
cde
cde
xyz
abd

## 直接去重,只能在相邻行去重:uniq uniq.txt

## 先给文件排序,然后去重:sort uniq.txt | uniq

## 打印每行重复次数:sort uniq.txt | uniq –c

## 打印不重复行,并给出次数:sort uniq.txt | uniq -u –c

## 打印重复行,并给出次数:sort uniq.txt | uniq -d -c

## 以开头前两个字符去重:sort uniq.txt | uniq -w 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
准备数据:
a.txt
a
b
c
d

b.txt
c
d
e
f
求两个文件的交集:cat a.txt b.txt | sort | uniq –d

求两个文件的并集:cat a.txt b.txt | sort | uniq

求a.txt和b.txt的差集:cat a.txt b.txt b.txt | sort | uniq –u

求b.txt和a.txt的差集:cat b.txt a.txt a.txt | sort | uniq -u

cut:提取文本列

1
2
3
4
5
6
7
8
9
10
11
cut命令可以从一个文本文件或者文本流中提取文本列

cut语法
cut -d'分隔字符' -f fields ## 用于有特定分隔字符
cut -c 字符区间 ## 用于排列整齐的信息

选项与参数:
-d:后面接分隔字符。与 -f 一起使用
-f:依据 -d的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思
-c:按照字符截取
-b:按照字节截取
1
2
3
4
5
6
7
8
9
10
11
12
13
首先看PATH变量:
echo $PATH
将PATH变量取出,找出第五个路径:
echo $PATH | cut -d ':' -f 5
将PATH变量取出,找出第三和第五个路径,以下三种方式都OK
echo $PATH | cut -d ':' -f 3,5
echo $PATH | cut -d : -f 3,5
echo $PATH | cut -d: -f3,5
将PATH变量取出,找出第三到最后一个路径
echo $PATH | cut -d ':' -f 3-
将PATH变量取出,找出第一到第三,还有第五个路径
echo $PATH | cut -d ':' -f 1-3,5

Lfind:搜索文件目录层次结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
功能: 搜索文件目录层次结构
格式: find path -option actions
find <路径> <选项> [表达式]

常用可选项:
-name 根据文件名查找,支持('* ' , '? ')
-type 根据文件类型查找(f-普通文件,c-字符设备文件,b-块设备文件,l-链接文件,d-目录)
-perm 根据文件的权限查找,比如 755
-user 根据文件拥有者查找
-group 根据文件所属组寻找文件
-size 根据文件小大寻找文件
-o 表达式 或
-a 表达式 与
-not 表达式 非
1
2
3
4
5
6
7
8
9
10
11
12
13
14
## 查找文件名txt结尾的文件: find /root/txt/ -name "*.txt“

## 忽略大小写查找文件名包含linux:find /root/txt -iname "*linux*“

## 查找文件名结尾是.txt或者.jpg的文件:
find /root/txt/ \( -name "*.txt" -o -name "*.jpg" \)
find /root/txt/ -name "*.txt" -o -name "*.jpg"

## 使用正则表达式的方式去查找上面条件的文件:
find /root/txt/ -regex ".*\(\.txt\|\.jpg\)$"

## 查找.jpg结尾的文件,然后删掉
find /root/txt -type f -name "*.jpg" -delete

grep:文本搜索工具

1
2
3
4
5
6
7
8
9
10
11
12
13
grep是一种强大的文本搜索工具,他能使用正则表达式搜索文本,并把匹配的行统计出来,过滤数据流或文件内容。

命令:grep [选项] [–color=auto] ”搜索字符串” filename

常用参数:
-c:统计符合条件的字符串出现的总行数。
-E:支持扩展正则表达式。
-i:忽略字符大小写。
-n:在显示匹配到的字符串前面加上行号。
-v:显示没有”搜索字符串”内容的那一行。
-l:列出文件内容中有搜索字符串的文件名称。
-o:只输出文件中匹配到的部分。
-color=auto:将匹配到的字符串高亮出来。

sed:流编辑器

sed叫做流编辑器,在shell脚本和Makefile中作为过滤使用非常普遍,就是把前一个程序的输出引入sed的输入,经过一系列编辑命令转换成为另一种格式输出。

sed是一种在线编辑器,它一次处理一行内容,处理时,把当前处理的行存储在临时缓冲区中,称为”模式空间”,接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。

1
2
3
4
选项: 
-n:一般sed命令会把所有数据都输出到屏幕,如果加入-n选项的话,则只会把经过sed命令处理的行输出到屏幕。
-e:允许对输入数据应用多条sed命令编辑。
-i:用sed的修改结果直接修改读取数据的文件,而不是由屏幕输出。

awk:文本处理编程语言工具

Awk是一个强大的处理文本的编程语言工具,其名称得自于它的创始人Alfred Aho、Peter Weinberger和Brian Kernighan 姓氏的首个字母,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。

AWK 提供了极其强大的功能:可以进行样式装入、流控制、数学运算符、进程控制语句甚至于内置的变量和函数。简单来说awk就是扫描文件中的每一行,查找与命令行中所给定内容相匹配的模式。如果发现匹配内容,则进行下一个编程步骤。如果找不到匹配内容,则继续处理下一行。

date:日期时间

1
2
3
4
5
6
7
8
9
10
11
12
13
date - print or set the system date and time
linux系统为我们提供了一个命令date,专门用来显示或者设置系统日期时间的。

语法格式为:
date [OPTION]... [+FORMAT] 或者
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

常用的可选项有:
--help:显示辅助信息
--version:显示date命令版本信息
-u:显示目前的格林威治时间
-d:做日期时间相关的运算
--date='-dateStr':做日期时间的相关运算
打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2022-2024 归一
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信