Linux常用命令
1、cp
拷贝文件
# 若目标文件不存在,新建然后覆盖
cp [i] 源文件 目标文件
cp /etc/passwd user.txt
# 将文件s复制到指定目录中,注意目标目录必须存在
cp [i] 源文件(s) 目标文件
cp a.txt user.txt dir01
拷贝目录
# 复制源目录到目标目录中
cp -r 原目录 目标目录(存在)
cp -r dir01 dir02 (目标目录不存在,则创建,拷贝dir01内容进去)
# 拷贝源目录内容到目标目录
cp -r 源目录 目标目录(不存在)
cp -r dir01 dir04(目标目录存在,则拷贝整个dir01目录进去)
# 将多个源(文件、目录)复制到目标目录,目标目录必须存在
cp -r 源文件(s) 源目录(s) 目标目录
cp -r a.txt dir01 dir05
2、mv
移动或重命名
# 删除已经存在的目标文件,重命名源文件
mv [i] 源文件 目标文件(存在)
mv b.txt a.txt (将b.txt改名为a.txt)
# 重命名源文件
mv 源文件 目标文件(不存在)
mv a.txt b.txt (移a.txt到b.txt(不存在)),重命名
# 将源文件移动到指定目录,目标目录必须存在
mv 源文件(s) 目标目录
mv b.txt dir3 dir4 (目标目录必须存在,才可以mv成功)
# 将源目录整体移动到目标目录内,目标目录必须存在
mv 源目录(s) 目标目录
3、rm
rm命令用于删除文件或非空目录
rmdir用于删除空白目录
# 删除多个文件,-i为提示
rm [-i] filename(s)
rm dir01/a.txt dir01/user.txt (删除多个文件)
rmdir dir01(删除空白目录)
# rmdir只能用于删除空白目录
rmdir empty_dir(s)
rm -r dir05(使用 rm -r 删除非空目录)
# 删除非空目录:-r表示删除目录 -f表示强制删除
rm -r -f dir_name(s)
rm -rf dir_name(s)
注意:命令行删除文件或目录,不经过回收站,要慎重
4、man
使用man命令可以查看Linux提供的帮助手册
man
5、元字符
5.1、通配符
-
*(表示通配,代表0~n个字符)
# 列出所有txt结尾的文件
ls *.txt
# 删除所有txt结尾的文件
rm *.txt
-
?(表示通配,代表任意1个字符)
# 显示a?.txt文件
ls a?.txt
-
[](是一种用于文件名扩展的通配符,它允许你匹配一组字符中的任意一个)
# 要查找所有以字母a、b或c开头的文件
ls [abc]*
# 查找所有以小写字母开头的文件
ls [a-z]*
# 查找所有以数字开头的文件
ls [0-9]*
# 查找所有以字母a到f或数字1到3开头的文件
ls [a-f1-3]*
# 查找所有不以字母a、b或c开头的文件
ls [^abc]* # 或者 ls [!abc]*
5.2、分隔符
-
;用于分隔在同一行上顺序执行的多个命令。
# 先cd回到家目录,然后再执行ls命令
cd;ls
# 先显示时间,再列出当前目录下文件及子目录,最后显示日历
date;ls;cal
5.3、重定向
重定向是一种强大的功能,它允许你改变命令的输入、输出以及错误信息的流向。
文件描述符用于表示指向文件或者其他输入、输出资源的引用。在Linux和Unix系统中,文件描述符是一个非负整数,它为每个打开的文件或I/O流提供了一个唯一的标识符。
-
0:标准输入设备,默认通常是键盘
-
1:标准输出设备,默认通常是终端屏幕
-
2:标准错误输出设备,默认也是终端屏幕
重定向操作符
-
>:也可以写成1>,覆盖写入文件
它可以将命令的标准输出,重定向到一个文件中,如果文件已存在,内容会被覆盖
-
>>:追加写入文件
相对于>,该操作符也是重定向标准输出,但其会追加内容到文件末尾,不会覆盖已有内容
-
<:也可以写成是0<
重定向0号标准输入设备(默认为键盘)为指定文件
-
2>:将标准错误重定向到一个文件
注意:重定向操作符可以同时使用,如:cat 0< /etc/passwd 1>data.txt 2>error.txt
5.4、管道符
| ,可以把第一个命令的结果,交给第二个命令作为参数进行操作。
# 把当前日期通过打印机进行打印
cal | lp
# 注意:lp命令需要安装成功,且打印机连接、配置好,该命令才能执行成功。
6、查看内容
6.1、cat
cat: 允许我们创建文件、查看文件内容、连接文件并将输出重定向到终端或文件中。
# 1、查看文件内容
cat filenames:输出文件内容
cat testfile.txt
# 2、创建新文件(输入内容后按Ctrl + D保存并退出)
cat > newfile.txt
hello,大家好,我是Linux命令
# 3、连接文件(可以将多个文件连接起来并输出到一个新文件)
cat file1 file2 > combined_file
cat testfile1.txt testfile2.txt > combined.txt
# 把testfile1和testfike2的内容合并到combined文件中
# 4、追加内容到文件(可以将内容追加到现有文件的末尾)
cat >> existingfile.txt
cat >> testfile.txt
hello,world
按Ctrl + D保存
# 5、选项
# 5.1、显示行号
# 使用-n选项可以在每行前显示行号
cat -n testfile.txt
# 这将显示testfile.txt的内容,并在每行前加上行号
# 5.2、压缩空行
# 使用-s选项可以压缩连续的空行,只显示一个空行
cat -s testfile.txt
# 这将压缩testfile.txt中的连续空行
# 5.3、显示行尾符号
# 使用-E选项可以在每行的末尾显示$符号
cat -E testfile.txt
# 这将在每行末尾显示$符号
# 5.4、显示制表符
# 使用-T选项可以将Tab字符显示未^I
cat -T testfile.txt
# 这将显示testfile.txt中的Tab字符
总结:cat命令使一个非常强大的工具,可以用于查看、创建和连接文件。通过使用不同的选项,可以实现更多的功能,如显示行号、压缩行号、显示行尾符号和制表符等。
特殊文件/dev/null:
Linux系统中,/dev/null(空设备文件或黑洞文件)是一个特殊的设备文件,所有写入其中的数据,都会被丢弃的无影无踪,/dev/null通常被用于丢弃不需要的数据输出,或作为用于输入流的空文件。这些操作通常由重定向完成。
cat a.txt # 查看a.txt 文件
# 清空a.txt文件
cat /dev/null > a.txt
6.2、more
more命令是Linux系统中用于分页显示文件内容的工具。它类似于cat命令,但会以一页一页的形式显示,更方便用户逐页阅读长文件。
# more使用只需在more之后跟上文件名即可
# 要查看/var/log/dmesg文件的内容,如果想要查看下一屏的内容,只需按空格键即可。
more /var/log/dmesg
# 逐行显示testfile文档内容,如有连续两行以上空白行则以一行空白行显示。
more -s testfile
# 从第20行开始显示testfile文档内容
nore +20 testfile
常用选项
-
-num:一次显示的行数。
-
-d:提示用户在屏幕下方显示 [Press space to continue, 'q' to quit.],如果用户按错键,则会显示 [Press 'h' for instructions.]1。
-
-l:取消遇见特殊字符^L(送纸字符)时会暂停的功能。
-
-f:计算行数时,以实际上的行数,而非自动换行后的行数。
-
-p:不以滚动的方式显示每一页,而是先清除屏幕后再显示内容。
-
-c:与-p相似,不同的是先显示内容再清除其他旧资料。
-
-s:当遇到有连续两行以上的空白行时,替换为一行的空白行。
-
+/pattern:在每个文档显示前搜索该字符串,然后从该字符串之后开始显示。
-
+num:从第num行开始显示
6.3、head和tail命令
head和tail命令用于查看文件的开头和结尾部分内容,非常适合快速检查大文件的内容或监控日志文件的最新更新。
head命令用于显示文件的前几行内容。默认情况下,它显示文件的前10行内容,可以使用-n选项来指定显示的行数。
# 显示文件的前10行
head filename
# 显示文件的前5行
head -n 5 filename
# 显示文件的前45个字节 (可以使用-c选项来指定显示的字节数)
head -c 45 filename
tail命令用于显示文件的后几行内容。默认情况下,它显示文件的后10行,可以使用-n选项来指定显示的行数。
# 显示文件的后10行
tail filename
# 显示文件的后5行
tail -n 5 filename
# -f选项,用于实时监视文件的变化,特别适用于查看日志文件的最新更新。
# 实时监视文件的变化
tail -f filename
head和tail组合使用
# 查看文件的第50行到第200行
cat filename | tail -n +50 | head -n 150
# 或者
cat filename | head -n 200 | tail -n +50
7、vi编辑器
vi是所有Unix及Linux系统下的标准文本编辑器。vi编辑器有三种模式:命令模式、插入模式和底行模式。
基本操作
进入vi
# 在系统提示符号输入 vi文件名后,进入vi之后,默认处于命令模式。要切换到插入模式,按下字母i即可。
vi 文件名
切换至插入模式
在命令模式下按下i
即可进入插入模式,此时可以开始输入文字。按ESC键可以返回命令模式 。
-
i
在光标当前位置插入 -
a
在光标所在位置后插入 -
o
在光标所在行下插入一空行 -
<Esc>
退出插入状态
保存和退出
在命令模式下,按:
进入低行模式,然后输入以下命令:
:w
保存文件
:q
退出vi
:wq
保存并退出vi
:q!
不保存强制退出vi
三种模式转换关系图:
常用命令:
-
命令模式
-
h 或 左箭头键:光标左移一个字符
-
j 或 下箭头键:光标下移一个字符
-
k 或 上箭头键:光标上移一个字符
-
l 或 右箭头键:光标右移一个字符
-
dd:删除光标所在行
-
yy:复制光标所在行
-
p:粘贴
-
u:撤销上一次操作
-
Ctrl + r:重做上一次撤销的操作
-
-
插入模式
-
i:在光标当前位置开始插入
-
a:在光标后一个位置开始插入
-
o:在当前行下方插入新行并进入插入模式
-
O:在当前行上方插入新行并进入插入模式
-
-
低行模式
-
:w:保存文件
-
:q:退出 vi
-
:wq:保存并退出 vi
-
:q!:不保存强制退出 vi
-
8、其他命令
1、用户相关
-
id
用于显示用户的UID(用户ID)和GID(组ID),以及它们所属的附件组的信息。 -
w
:不仅列出当前登录的所有用户,还会提供这些用户的额外信息,包括他们正在执行的命令或进程。 -
who
:主要用于显示当前登录到系统的用户列表。它可以提供关于这些会话的更多信息,比如登录时间、从哪里登录等 -
whoami
:用于显示当前登录用户的用户名
2、网络相关
-
ping
:网络管理中最常用的一个工具,用于测试主机之间的连通性。 -
ifconfig
:用于配置和显示网络接口的工具。 -
ip addr
:也写作 ip address,它提供了比较传统ifconfig更强大和灵活的功能。 -
telnet
:进行远程登录服务器。注意,telnet 远程登录须满足下面要求:
-
服务器主机安装了telnet服务器端,并已经开启服务
-
本机有telnet客户端,可以使用telnet命令
-
本机可以ping通服务器主机的ip地址
-
3、进程相关
-
ps
:用于显示当前进程的状态 -
ps -e
:查看所有进程(精简格式) -
ps -ef
:查看所有进程,更详细的输出 -
sleep
:休眠模式 -
sleep 100
:休眠100s,直接会占用终端 -
sleep 200 &
:休眠200s,推到后台执行,不占用前台终端 -
kill
:终止进程的一个重要工具。它通过向指定的进程发送信号来请求它们停止运行、重新启动或执行其他操作。强制终止一个进程:
# 发送9号信号,终止进程 kill -9 PID # 使用9号信号信号名,终止进程 kill -SIGKILL PID
4、其他命令
-
history
:命令历史记录 -
alias
:设置命令别名格式:
-
查看别名: alias
-
设置别名: alias 别名=命令
-
取消别名: unalias 别名
-
-
fild
:按条件查找