文章目录
1、ifconfig指令
(1)显示所有接口的信息。
ifconfig
(2)显示特定接口的信息
ifconfig eth0
2、ssh指令
使用Shell 登陆主机时使用
ssh ip
输入正确的ip后敲下回车就会出现输入用户名与密码。
3、ls指令
(1)功能
(2)语法
ls [选项][目录或文件]
(3)常用选项
选项可以组合使用 如 ls -al
(4)举例
查看当前目录下所有文件
ls -a
查看directory1
目录下的所有文件的详细信息
ls -al directory1
(5)补充
不加选项,只显示当前目录文件/目录名(不包含隐藏文件)。
ls
ls -l
与 ll
效果相同。
ls -l \\ ll
4、pwd命令
(1)功能
(2)语法
pwd
5、cd 指令
(1)功能
(2)语法
cd directory(目录)
(3)举例
cd ..
回到上级目录
cd ..
cd ~
回到用户家目录
cd ~
cd(无参数)
。在某些shell中,如果你只输入cd而不带任何参数,它会将你的工作目录改变到你的主目录。
cd
cd -
返回最近访问目录
cd -
cd directory1
:由当前目录跳转至directory1
cd directory1
(4)补充1:路径
Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
理解该树形结构:
所以我们从开始定位一个文件或者目录就是唯一的,如:定位test.c
,/home/bit/test.c
,这也叫绝对路径。
当从当前目录定位另一个目录时的路径叫相对路径,如:当前在home
目录下,定位etc
目录,../etc
。
(5)补充2:目录中.
和 ..
6、stat命令
(1)功能
(2)语法
stat 文件名
(3)举例
stat test01.txt
详细信息解释:
7、 touch指令
(1)功能
(2)语法
touch [选项]... 文件..
(3)常用选项
(4)举例
创建多个文件
touch test01.txt test02.txt test03.txt
将文件的访问时间和修改时间更新到当前系统时间
touch test01.txt(已经存在的文件)
将文件的访问时间修改为当前系统时间
touch -a test01.txt
按照时间戳的格式将文件的访问时间和修改时间修改为指定的时间戳
touch -t 202405101111 test01.txt
8、mkdir指令
(1)功能
(2)语法
mkdir [选项] dirname...
(3)常用选项
(4)举例
创建一个目录
mkdir directory1
创建多个目录
mkdir directory2 directory3 directory4
递归创建多个目录
mkdir -p directory5/directory6/directory7
创建一个目录且设置权限为755
mkdir -m 755 directory8
9、rmdir指令
(1)功能
(2)语法
mkdir [选项] dirname...
(3)常用选项
(4)举例
删除一个空目录
rmdir directory2
删除多个目录
rmdir directory3 directory4 directory5
递归地删除目录
rmdir -p directory5/directory6 \\当删除directory6后rmdir会尝试删除directory5,如果directory5为空也会删除
当目录不为空时,删除失败不显示信息
rmdir --ignore-fail-on-non-empty directory9
10、rm指令
(1)功能
(2)语法
rm [选项][目录或者文件]
(3)选项
-f(force):强制删除文件或目录,忽略不存在的文件,并且不会询问确认。
-i(interactive):在删除每个文件之前询问用户。
-r(recursive):递归删除目录及其内容。
(4)举例
删除一个文件
rm test01.txt
删除一个目录及其内容
rm -r directory9
11、man指令
(1)功能
(2)安装指令
yum install -y man-pages
(3)语法
man [选项] [命令或函数名]
(4)常用选项
(5)举例
查找ls
指令
man 1 ls
查找printf
函数
man 3 printf
12、cp指令
(1)功能
(2)语法
cp [选项] 源文件或目录 目标文件或目录
(3)常用选项
(4)举例
将文件test01.txt
拷贝给test02.txt
,如果test02.txt不存在就创建test02.txt,存在就对test02.txt进行覆盖
cp test01.txt test02.txt
将文件test01.txt
拷贝到目录directory8
里,如果directory8
中不存在test01.txt
就将test01.txt
拷贝到该目录里,如果存在就覆盖
cp test01.txt directory8
将目录directory8
(包括子目录的内容)拷贝到directory9
里,如果directory9
不存在就创建再拷贝,如果存在就拷贝到当前目录下
cp -r directory8 directory9
13、mv指令
(1)功能
(2)语法
mv [选项] 源文件或目录 目标文件或目录
(3)常用选项
(4)举例
用源文件:test01.txt
,目标文件:test02.txt
,如果目标文件存在,源文件就会覆盖目标文件,如果目标文件不存在,就是给源文件重命名
mv test01.txt test02.txt
用源文件:test01.txt
,目标目录:directory1
,如果目标目录存在,将源文件移到目标目录下,如果目标目录存在且存在与源文件同名的文件,源文件会覆盖目标目录下的同名文件,如果目标目录不存在,此时相当于用目标目录名给源文件重命名
mv test01.txt directory1
用源目录:directory1,目标目录:directory2,如果目标目录存在,将源目录移到目标目录下,如果目标目录不存在,就是给源目录重命名
mv directory1 directory2
14、cat指令
(1)功能
(2)语法
cat [选项][文件...] //可以接受多个文件,没有文件的话从标准输入读取数据
(3)常用选项
(4)举例
查看文件test01.txt
的内容
cat test01.txt
15、more指令
(1)功能
(2)语法
more [选项][文件] //可以接受多个文件,没有文件的话从标准输入读取数据
(3)常用选项
(4)常用操作
(5)举例
查看文件test.txt
,并且按5行一页查看
more -5 test.txt
(6)补充:|
(管道)
语法:
command1 | command2 //command1 的输出会被直接传递给 command2 作为其输入。
使用:
more不支持给文件内容编号,解决:先用cat给文件编号再用more
cat -n test.txt | more //" | "为管道
cat -n test.txt
输出直接传递给more
,作为其输入。
注意事项:
16、less指令
(1)功能
(2)语法
less [参数] 文件
(3)常用选项
(4)进入浏览文件后( less 模式)
(5)举例
查看文件并编号
less -N test.txt
17、head指令
(1)功能
(2)语法
head [选项](行数...) [文件]
(3)常用选项
(4)举例
查看文件test,txt
的前20行内容
head -n20 test.txt
18、tail指令
(1)功能
(2)语法
tail [选项] [文件...]
(3)常用选项
(4)举例
查看文件test.txt
结尾20行
tail -n20 test.txt
查看文件test.txt
第10行到结尾
tail -n+10 test.txt
19、时间相关的指令
(1)显示时间
date 指定格式显示时间: date +%Y:%m:%d
date [选项] +显示格式
(2)在设定时间方面
(3)时间戳
时间->时间戳:date +%s
时间戳->时间:date -d@时间时间戳
(4)举例
显示当前时间
date
按指定时间格式显示当前时间
date +"%Y-%m-%d %H:%M:%S"
按照指定格式输出指定时间
date -d "2023-01-01" +"%Y-%m-%d"
设定当前系统时间
sudo date -s "2024-08-15 21:32:18"
显示当前时间戳
date +%s
将时间戳转换为时间
date -d@1508749502
20、cal指令
(1)功能
(2)语法
cal [选项][月份][年份]
(3)常用选项
(4)举例
显示当月日历
cal
显示当年日历
cal -y
显示2018年3月前后3个月的日历
cal -3 3 2018
21、find指令
(1)功能
(2)语法
find [搜索路径] [选项] [搜索条件] [处理动作]
(3)常用选项
(4)组合使用
组合条件
语法:
find [搜索路径] [选项] [搜索条件] (组合条件) [选项] [搜索条件]... [处理动作]
举例:
在当前路径下查找hehe
开头并且后缀为.txt
的文件
find -name "hehe*" -a -name "*.txt"
(5)处理动作: -exec
、-ok
语法:
find [搜索路径] [选项] [搜索条件] -ok [命令] {} \;
举例:
在当前目录下查找test.txt的文件并进行删除
find ./ -name "test.txt" -ok rm {} \;
(6)举例
在/home
目录下查找所有以.txt结尾的文件
find /home -name "*.txt"
在当前目录查找普通类型的文件
find ./ -type f
在当前目录下查找大于10MB
的文件
find ./ -size +10M
22、grep指令
(1)功能
(2)语法
grep [选项]... 字符串 [文件]...
字符串:匹配的内容。
文件:你要搜索的文件列表。如果省略文件名,grep会读取标准输入。
(3)常用选项
(4)举例
在test1.txt
文件当中查找“cc”
,并带行号输出
grep -n "cc" test1.txt
23、zip/unzip指令
(1)功能
(2)语法
zip [选项] 文件名.zip 源文件或目录...
unzip [选项] 文件名.zip [-d 目录]
(3)选项
zip:
unzip:
(4)举例
压缩test.txt
文件
zip test.zip test.txt
压缩目录directory1
zip -r directory1.zip directory1
压缩多个文件到一个 .zip 文件
zip test.zip test1.txt test2.txt
解压文件到指定目录
unzip test.zip -d ./
24、tar指令
(1)功能
(2)语法
tar [选项](归档文件名)[处理文件或目录...]
(3)常用选项
(4)举例
将目录dir
归档
tar -cvf dir.tar dir
将目录dir
归档加压缩
tar -czvf dir.tar.gz dir
查看归档文件dir.tar
tar -tvf dir.tar
查看归档压缩文件dir.tar.gz
tar -ztvf dir.tar.gz
将归档文件dir.tar
中提取文件到当前目录
tar -xvf dir.tar
将归档文件dir.tar
中提取文件到./tmp
目录下
需要先来到./tmp
,再进行提取,并且提前后的文件属性会变化喔,想要属性不变化在选项上加p
。
cd ./tmp
tar -xvf dir.tar
将归档压缩文件dir.tar.gz
解压到当前目录下
tar -vzxf dir.tar.gz
只将归档压缩文件dir.tar.gz
中的test1.txt
文件解压到当前目录下
tar vzxf dir.tar.gz dir/test1.txt
将目录dir
归档压缩,除了dir/test1.txt
tar --exclude dir/test1.txt -vzcf dir1.tar.gz dir
25、bc指令
(1)功能
(2)使用
1.交互式使用
直接在终端中输入bc命令并回车,将进入bc的交互式环境。在这个环境中,你可以输入算术表达式并立即看到结果。
bc
然后,你可以输入表达式,如3 + 4,并回车查看结果。
2.非交互式使用
你也可以通过管道(pipe)将表达式传递给bc,而不是进入交互式环境。这对于脚本编写特别有用。
echo "3 + 4" | bc
这将输出7。
3.设置精度
bc默认的精度可能不足以满足你的需求。你可以通过scale变量来设置所需的精度(小数点后的位数)。
echo "scale=2; 3 / 4" | bc
这将输出0.75,因为我们设置了两位小数精度。
4.使用数学函数
GNU版本的bc(许多Linux发行版中的默认版本)支持许多数学函数,如sqrt()(平方根)、sin()(正弦)、cos()(余弦)等。
echo "scale=2; sqrt(16)" | bc
这将输出4.00。
5.赋值和变量
bc也支持变量赋值和基于这些变量的计算。
echo "a = 5; b = 7; a + b" | bc
这将输出12。
6.读取文件
你可以将一系列bc表达式保存在文件中,并使用bc的-f选项来执行这些表达式。
首先,创建一个名为calc.bc的文件,并添加以下内容:
bc
scale = 2
a = 5
b = 7
print a + b
然后,使用以下命令执行文件:
bc -f calc.bc
这将输出12.00。
7.使用obase和ibase进行进制转换
bc还支持不同进制之间的转换。通过设置obase(输出基数)和ibase(输入基数),你可以轻松地在不同进制之间转换数字。
echo "obase=2; ibase=10; 10" | bc
这将输出1010,表示十进制数10的二进制表示。
26、echo 命令
(1)功能
(2)语法
echo [option(s)] [string(s)]
(3)常用选项
(4)举例
输出Hello, World,并且不换行
echo -n Hello, World!
显示变量的值
name="Linux"
echo $name
(5)补充:重定向
介绍:
使用:
1.标准输出重定向(stdout)
echo "Hello, World!" > file.txt
使用 >
创建文件
> file.txt
echo "Another line." >> file.txt
2.标准输入重定向(stdin)
cat < file.txt
3.标准错误输出重定向(stderr)
ls nonexistent_file 2> errors.txt
如果nonexistent_file
不存在,错误信息将被写入errors.txt
而不是显示在终端上
ls nonexistent_file 2>> errors.txt
ls nonexistent_file &> output.txt
这将把命令的输出和错误信息都写入output.txt
。
ls nonexistent_file > output.txt 2>&1
这个命令首先尝试将标准输出重定向到output.txt
,然后通过2>&1
将标准错误输出也重定向到标准输出的当前位置(即output.txt
)。