常用Linux命令详细总结

一、文档编辑、过滤、查看命令

1、cp 复制文件和目录

-a 复制文件并保持文件属性

-d 若源文件为链接文件,则复制链接文件属性而非文件本身

-i 覆盖文件前提示,如果不要提示,在命令前加上\

-r 递归复制,通常用于目录的复制

-f 强制复制,

-p 连同文件的属性一起复制过去,而非使用默认属性

-u 若目标文件存在,则目标文件比源文件旧时才复制

例子:cp oldboy.txt /tmp/ 命令 参数 源文件 目标路径

cp --r /date /tmp

2、echo显示一行文本

-e :对反斜杠转义的解释

echo显示颜色:

语法:echo -e "\033[字背景颜色;文字颜色m字符串\033[0m"

Note:文字颜色后边有一个m

文字颜色:30---37

30:黑色。31:红色。32:绿色。33:黄色。34:蓝色。35:紫色

36:天蓝色。37:白色

背景颜色:40---47

40:黑色。41:红色。42:绿色。43:换色。44:蓝色。

45:紫色。46:天蓝色。47:白色

最后边控制选项说明:

0m:关闭所有属性。1m:设置高亮度

2m:下划线。5m:闪烁。7m:反显

8m:消隐。

3、mv 移动文件、重命名文件 不加参数也可以移动文件或者目录

移动文件: mv 源文件名 目标移动路径

-i 如果目的文件已存在,询问是否覆盖

-f 强制执行,不会询问

-u 若目的文件存在,则比源文件新,才会移动

重命名:mv 原文件名 修改后的名字 例如:mv file{4,6}.txt

多文件移动:mv 文件名 ......移动到的目录,最后一个参数必须是目录/

移动时源文件后边不要多斜线

例如:mv /date /root/

4、ls :显示目录、文件清单

选项:

-a:显示所有,包括隐藏文件目录

-l:以长格式显示,就是把详细信息列出来 简写方式:ll

-h:以人类已读的方式显示,人性化

-d:只显示目录

-F:为目录添加/

-r:反向排序

-t: 按照修改时间排序

-i :显示查找inode结点

生产案例:查找最近更新的文件 ls -lrt

5、rm 删除文件或者目录 此命令较危险,不能乱用,一般不用

删除普通文件不加-r (递归删除) 删除目录则需要加-r

-f force 强制删除

-r --R recursive 递归删除,

正确删除文件的方法:

1、使用mv命令移动到/tmp (回收站)代替删除

2、cd 目的目录 ;find . --type f(d) --name ''|xargs rm 要到文件目录下去删,不能从根开始,

6、pwd print working directory 打印当前动作目录,就是查看当前在那个目录下

7、find 查找文件(支持通配符)

xargs 从标准输入(管道或者stdin 输入重定向)获取数据,并将数据转换成命令行的参数

输入重定向:多行输入变成单行输出

-i 后面是{ }

-I 后面是

-n 指定每个命令行最多的参数

支持使用文件权限Mode,文件属主属组,进行查找

8、touch 创建新文件或者更新时间戳,例如创建文件 touch /data/shiyouyuan.txt

创建文件也可以用cd进入目录,在touch 创建

创建多个文件方法:例如touch stu{1......1000}.txt,就会创建1.txt-1000.txt

touch 文件名 如果文件存在就更新时间戳,如果文件不存在就创建时间戳

vi 相当于windows的记事本,vim 高级编辑器

vi 要编辑的文件名 进入后按i进入insert状态,就可以输入内容了

输入完成后按esc,退回命令模式,然后输入:wq保持并退出

echo 命令,重定向

输入文本内容还可以这样做:echo 'my name is syy'>shiyouyuan.txt

如果文件不存在会创建文件,如果存在会清空、覆盖之前的内容,在插入新的内容,

在内容后面加>>(两个>)就会在原来内容的末尾添加内容,不会清空之前的内容。

还有一个较复杂不常用的类似命令printf

9、cat 查看文件内容 例如:cat shiyouyuan.txt 也可以输入内容,命令:cat >文件名 输入内容,按ctrl+c 或者ctrl+d两边结束输入

cat 的多行追加能力 内容中间用EOF 圈起来,可以用其他的,但是要完全是一对。

cat >>/data/shiyouyuan.txt 0<< EOF

I am studying linux

I am studying linux

I am studying linux

EOF

特殊符号:

>或1> 输出重定向:把前面的输出的东西输入到后边的文件中,会清除文件原有内容

>>或1>> 追加重定向:把前面输出的东西追加到后边的文件尾部,不会清除文件原有内容

0<或< 输入重定向:输入重定向用于改变命令的输入,后面指定输入内容,前面跟文件名

例如:echo 1 2 3 4 >shi.txt

cat shi.txt

1 2 3 4

xargs --n 2 <shi.txt

显示的结果就是

1 2

3 4

相当于把shi.txt交给xargs --n这个命令处理

0<<或<< 追加输入重定向:后跟字符串,用来表示"输入结束",也可用ctrl +d 来结束输入

例如:cat >>/data/shiyouyuan.txt 0<< EOF

I am studying linux

I am studying linux

I am studying linux

EOF

2> 错误重定向:把错误信息输入到后边的文件中,会删除文件的原有内容

2>>错误追加重定向:把错误信息追加到后边的文件中,不会删除元件的原有内容

2>&1标准正常输出和标准错误输出一样,就相当于跟屁虫一样,1放到哪儿,2就放到哪儿

例如:echo 'shi' >a.txt 2>&1

说明:

1、箭头的指向就是数据的流向

2、数字说明:

1、标准输入stdin :代码为0 使用<或<<,数据流向从右往左

2、标准正常输出stdout :代码为1 ,使用>或>>,数据流向从左往右

3、标准错误输出stderr :代码为2 使用2>或2>>

关于find的企业面试题:http://oldboy.blog.51cto.com/2561410/1650380

**|**管道命令,键盘上按shift + \

相当于把前面命令的执行结果传送给后边的命令继续执行

.(一个点)当前目录,..(两个点)上级目录

10、grep文本过滤工具,相当于筛子一样,是一个管道命令,一般配合正则表达式和通配符使用

用法:grep 选项 文件

选项:

-v :排除选项,

-i :不区分大小写

-n :对匹配到的内容显示行号

-color=auto 对匹配到的内容高亮显示

-B :除了显示匹配到一行之外,并显示改行之前的n行

-A :除了显示匹配到的一行之外,并显示该行之后的n行

-C :除了显示匹配到的一行之外,并显示该行的前后各n行

11、head 读取文件的前n行,默认为前10行,

用法:head -n number file

例:head -n 6 123.txt 意思就是读取123.txt这个文件的前6行

12、tail读取文件的后n 行,与head是相对的,用法也是一样的

13、tree :目录树

如果linux上没有这个命令的话,可以使用yum -y install tree 进行安装

选项:

-a :显示所有文件,包括隐藏文件,隐藏文件以 "."开头

-d :只显示目录

-L :层级,显示指定的层级:tree -L 1 tree -dL 2 显示两级目录

-f :为每个文件显示完整的路径,

-i:不显示压痕线,就是路径前面的横线

-F:区分文件和目录,目录后面有一根斜线

14、mkdir 创建目录 (make directory)

用法:mkdir 选项 需要创建的目录名称

选项:

-m :设置创建目录的权限(一般在后面用chmod设置)

-p :递归创建目录,例如可以mkdir -p test/a/b

-v :显示创建目录的过程,mkdir -pv test/a/b

例子:可以采用连续创建目录,如:mkdir test/dir{1......10}

创建出来的目录就是dir1 dir2...dir10

创建目录及多级子目录 mkdir test/{1..3}/{4..5}利用乘法分配律创建,

二、linux文件、目录属性及权限

389379 drwxr-xr-x. 22 root root 4096 Apr 5 02:52 var

inode节点号 文件的类型、权限 硬链接次数 属主 属组 文件大小 创建时间 文件名

1、indode节点和block

inode,中文意思是索引节点(index node),在每个linux存储设备或存储设备的分区被格式化文件系统后,一般生成两部分:inode和block,

block是实际存储数据的,inode是存储文件属性等信息,包含指向文件实体的指针,但是,inode唯独不包含文件名。查看inode的总量和使用量:inode -i。如果某个磁盘无法放文件,但实际还有空间,这个时候就可能是inode节点满了。

inoded的大小在分区被格式化创建文件系统后就无法更改了,在创建文件系统前可以更改,但实际用不到

inode 号相同的文件互为硬链接文件

一个文件创建后,至少要占用一个inode和block

block大小一般有1k、2k、4k几种,

例如:一个1000k的文件,block的大小为4k,那么就会占用250各block,如果block为1k,就要占用1000各block,消耗I/O分别为250次和1000次(读取一个block就会消耗一次磁盘I/O),但是如果block为4k,但是文件为1k,其余的3k就浪费了,所以block的大小应该根据需求设计。

2、其中drwxr-xr-x为文件的的类型和权限

第一位为文件的类型;后九尾为文件的权限

文件的类型一共有七类:

1、d :代表文件类型为目录

2、f或者-:代表文件类型为普通文件

3、s :代表文件类型是套接字

4、b :代表文件类型是块设备

5、l :代表文件类型是链接文件

6、p :代表文件类型是管道文件

7、c :代表文件类型是字符设备文件

文件权限最后一位后面有一个点(.)适合selinux相关的,实际中没有什么用

1、stat 查看文件或者文件系统的状态

选项:

-L:显示文件链接

-f:显示文件系统状态而不是文件状态

-c:使用指定的格式文件

2、diff比较两个文件的差异

选项:

-q:只在比较的两个文件不同时报告

-s:两个文件相同时报告

-C,-c:复制上下文输出的N行,默认三行

-U,-u:统一上下文的输出NUM(默认3)行,将两个文件的的前N行变为相同

三、Linux三剑客:sed流编辑器 stream editor

是一个行编辑器,一次只能处理一行文本。

用法:

Sed 选项.........scropt inputfile

选项:

-n :不输出模式中的内容至屏幕

-e :多点编辑

-f :脚本文件路径,从指定文件读取脚本命令

-r :使用扩展的正则表达式

-i :原处编辑(一定要测试正确才用,慎用)

地址定界

(1)

不给地址,对全文进行 处理

(2)单地址

a:指定的行

/pattren/:被次模式所能匹配到的每一行

(3)地址范围:

#,#

#,+#

/pat1/ ,/pat2/

#,/pat1/

编辑命令

-d :删除命令

eg;sed '/^$/d'/etc/fstab 删除空白行

sed '/^#/d'/etc/fstab 删除以#号开头的行

sed '/1,4d/'/etc/fstabse

p :显示模式空间中的内容,会显示两行,跟-n 可以只显示一行

eg ; sed '/^UUID/p'/etc/fstab

a \'text':在行后面追加文本,支持多行\n追加

sed '/^#/a \# hello world' /tmp/httpd.conf

i \在行后面插入文本,支持多行\n多行插入

c \text 替换行为单行或多行文本

w /path/to/somefile :保存模式空间中匹配到的内容至指定文件中

sed '/^#/w /tmp/1.txt' /tmp/httpd.conf

r :/path/from/somefile:读取指定文件的文本流至指定文件中

=:为模式空间中行打印行号

!:取反,对没有匹配到的行之外的所有行进行操作

s/// :查找替换,支持其他分隔符如:s@@@,s###

替换标记:

g:全局替换

i :忽略字符大小写

P :显示替换成功的行

w :/path/to/somefile,将替换成功的结果保存至指定文件中

sed 's/^#/789/g' /tmp/httpd.conf

sed 's/^#/&syy/g' /tmp/httpd.conf 后项引用

高级编辑命令

h:用模式空间的内容覆盖至保持空间中,源源保持空间中内容将被清除

H:把模式空间内容追加至保持空间中

g:从保持空间中取出看数据覆盖至模式空间

G;从保持空间取出内容追加至模式空间

x;把模式空间的内容与保持空间中的内容进行互换

n :读取匹配到的行下一行至模式空间

N :追加匹配到的行的下一行至模式空间

D :删除多行模式空间中行

d :删除模式空间中的行

eg:sed --n 'n;p' file 显示偶数行

sed 'n;d' file 显示奇数行

sed '1!G;h ;$!d' file 逆向显示文件内容

sed '!N;!D' FIEL 取出文件后两行

sed '$!d' fle 取出文件最后一行

步进:~

显示所有奇数行 sed '1~2p' /tmp/httpd.conf

显示所有偶数行 sed '2~2p' /tmp/httpd.conf

sed '1~2p' 表示从1 开始,步进为2,显示奇数行,偶数行同理。

四、杂类(网络、系统、文件上传下载)

1、dmesg 打印或控制内核环缓冲区,默认显示所有消息

选项:

-K:显示内核消息、信息

2、rs sz上传下载文件,依赖于lrzsz这个软件包

3、traceroute 追踪路由

选项:

-4:使用IPv4

-6:使用IPv6

-T:使用TCP协议,默认80端口

-I:使用ICMP协议

-p:端口

-i:指定网卡出口

4、uptime显示系统运行时间及负载。

5、nmap 网络探测工具和安全/端口扫描器

6、mpstat 报告处理器相关统计

7、nc 一款强大的网络工具

选项:

-4:使用IPV4

-6使用IPV6

-u:使用UDP协议

-U:使用Unix套接字

-h:目标地址

-p:目标端口

8、tcpdump 命令行抓包工具

选项:

-A:用ASCII格式打印每个包(减去它的链接级别头)。方便捕捉网页。

-c:接受多个包后退出

9、Auditd工具:是Linux中一个审计守护进程,其负责将审计记录写入磁盘,其中包含如下工具:

auditctl : 即时控制审计守护进程的行为的工具,比如如添加规则等等。

/etc/audit/audit.rules : 记录审计规则的文件。

aureport : 查看和生成审计报告的工具。

ausearch : 查找审计事件的工具

auditspd : 转发事件通知给其他应用程序,而不是写入到审计日志文件中。

autrace : 一个用于跟踪进程的命令。

/etc/audit/auditd.conf : auditd工具的配置文件。

使用auditd可以用来监控文件或者目录是否被修改过。可以追踪进程。

相关推荐
HLC++12 小时前
Linux的进程间通信
android·linux·服务器
华清远见IT开放实验室13 小时前
实验室建设案例 | 石家庄科技信息职业学院嵌入式实验室——从底层硬件到系统应用,一所应用型高校的嵌入式人才培养这样落地
linux·arm开发·stm32·嵌入式硬件·高校·实验室建设
groundhappy15 小时前
idalib安装和codex ida-mcp配置
linux·开发语言·python
通信小小昕16 小时前
Ubuntu 26.04 中文输入法安装
linux·运维·ubuntu
张小姐的猫17 小时前
【Linux】网络编程 —— HTTP协议(上)
linux·运维·服务器·网络·http·单例模式·策略模式
栩栩云生18 小时前
AI 写代码犯的错,早被写进了错题集
linux·安全·ai编程
imc.1119 小时前
linux基础IO
linux·运维·服务器
BelongPanda21 小时前
Linux Nginx 纯手动 Let‘s Encrypt 泛域名证书配置教程
linux·nginx
酷可达拉斯21 小时前
Linux操作系统-shell编程(0)
linux·运维·服务器·python·云计算
2301_7779983421 小时前
Linux中断机制:操作系统如何高效运行
linux·运维·服务器