Linux基本指令
0.前言
指令会查即可,不需要花时间背.自然而然就会用了.本篇文章是对于初学者,会遇见的大部分指令.关于网络,系统管理的指令没有.
1.ls 指令
语法: ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于
文件,将列出文件名以及其他信息。
常用选项:
指令使用
2.pwd指令
语法: pwd
功能:显示用户当前所在的目录
常用选项: 无
指令使用
3.cd指令
语法:cd [目录名]
功能:改变工作目录。将当前工作目录改变到指定的目录下。 (切换当前所在目录)
常用选项:
指令使用
4.touch指令
语法:touch [选项]… 文件…
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
通过stat指令查看touch指令对文件信息的修改
常用选项:
5.stat指令
语法: stat [选项] 文件…
功能: 显示文件或文件系统的详细信息,包括文件的大小、权限、所有者、组、时间戳等。
常用选项:
格式化占位符
在使用 -c 或 --format 选项时,可以使用以下占位符来格式化输出:
stat 命令输出字段解释
指令使用:
5.mkdir指令
语法:mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项:
-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立,好那些尚不存在的目录,即一次可以建立多个目录
指令使用:
6.rmdir指令 && rm 指令
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。
语法:rmdir [-p][dirName]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:
-p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
rm命令可以同时删除文件或目录
语法:rm [-f-i-r-v][dirName/dir]
适用对象:所有使用者
功能:删除文件或目录
常用选项:
7.man指令
语法: man [选项] 命令
功能:查找手册,通常使用该指令查找函数
常用选项:
手册章节划分
8.mv指令
语法: mv [选项] 源 文件/目录 目标 文件/目录
功能:
移动文件或目录:将一个或多个文件或目录从一个位置移动到另一个位置。
重命名文件或目录:在同一目录下更改文件或目录的名称。
常用选项
9.cat指令
语法: cat [选项][文件]
功能: 查看目标文件的内容
常用选项:
10.more指令
语法:more [选项][文件]
功能:more命令,功能类似 cat
常用选项:
11.less指令
语法:less [选项] [文件]
功能:
分页显示文本:逐屏或逐行显示文件内容。
前后滚动:可以向前和向后滚动文件内容。 搜索:支持正向和反向搜索。
标记和跳转:可以在文件中设置标记并快速跳转。
多文件查看:可以同时查看多个文件,并在文件之间切换。
常用选项:
12.head指令
语法:head [选项] [文件]
功能:
显示文件的开头部分:默认显示文件的前10行。
显示多个文件的开头部分:可以同时显示多个文件的开头部分。
自定义显示行数:可以指定显示的行数。
常用选项:
13.tail指令
语法:tail [选项] [文件]
功能:
显示文件的末尾部分:默认显示文件的最后10行。
显示多个文件的末尾部分:可以同时显示多个文件的末尾部分。
自定义显示行数:可以指定显示的行数。
跟随文件更新:可以实时显示文件的新增内容(常用于日志文件)。
常用选项:
举例:
有一个文件共有100行内容,请取出第50行内容
seq 1 100 > test # 生成1到100的序列装入test
方法1
head -n50 test > tmp #将前50行装入临时文件tmp
tail -n1 tmp #得到中建行
方法2 head -n50 test | tail -n1
14.时间相关的指令(data)
语法:date [选项] [+格式]
功能:date 命令用于显示或设置系统日期和时间。
data常用选项管理:
格式化选项:
在设定时间方面
date -s //设置当前时间,只有root权限才能设置,其他只能查看。 date -s 20080523//设置成20080523,这样会把具体时间设置成空00:00:00
date -s 01:01:01 //设置具体时间,不会对日期做更改
date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
date -s “01:01:01 20080523″ //这样可以设置全部时间
date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
date -s “20080523 01:01:01″ //这样可以设置全部时间**
时间戳
时间->时间戳:date +%s
时间戳->时间:date -d@1508749502
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒
示例:
1.显示当前日期和时间 date
输出示例:Mon Oct 02 12:00:00 CST 2023
2. 显示特定格式的日期和时间date “+%Y-%m-%d %H:%M:%S”
输出示例:2023-10-02 12:00:00
3. 显示UTC时间date -u
输出示例:Mon Oct 02 04:00:00 UTC 2023
4. 设置系统日期和时间sudo date -s “2023-10-01 12:00:00”
5. 显示指定时间字符串的日期date -d “2023-10-01 12:00:00”
输出示例:Sun Oct 01 12:00:00 CST 2023
6. 显示帮助信息date --help
7. 显示版本信息date --version
15.时间相关的指令(cal)
语法:cal [选项] [月份 年份]
功能:命令用于显示日历。
常用选项:
示例:
显示当前月份的日历 cal
显示2023年10月的日历 cal -m 10 2023
显示2023年的全年日历 cal -y 2023
16.find指令
语法:find [路径] [表达式]
功能:
搜索文件和目录:根据指定的条件查找文件和目录。
执行操作:对找到的文件或目录执行特定的操作(如删除、复制等)。
递归搜索:可以在指定目录及其子目录中递归地搜索。
常用选项:
示例:
1. 基本使用
在当前目录及其子目录中查找所有名为example.txt
的文件
find . -name example.txt
2. 忽略大小写
在当前目录及其子目录中查找所有名为example.txt
的文件,忽略大小写
find . -iname example.txt3. 按文件类型搜索
在当前目录及其子目录中查找所有目录
find . -type d
4. 按文件大小搜索
在当前目录及其子目录中查找所有大于100KB的文件
find . -size +100k
5. 按修改时间搜索
在当前目录及其子目录中查找7天内修改过的文件
find . -mtime -76. 按访问时间搜索
在当前目录及其子目录中查找30天内访问过的文件
find . -atime -30
7. 按状态改变时间搜索
在当前目录及其子目录中查找3天内状态改变过的文件
find . -ctime -3
8. 按所有者搜索
在当前目录及其子目录中查找所有属于用户john
的文件
find . -user john
9. 按组搜索
在当前目录及其子目录中查找所有属于组developers
的文件
find . -group developers
10. 按权限搜索
#在当前目录及其子目录中查找权限为644的文件
find . -perm 644
11. 对找到的文件执行命令
在当前目录及其子目录中查找所有.log
文件,并删除它们
find . -name “.log" -exec rm {} ;
12. 提示用户确认后执行命令
在当前目录及其子目录中查找所有.log
文件,并提示用户确认后删除它们
find . -name ".log” -ok rm {} ;
13. 设置最大搜索深度
在当前目录及其子目录中查找所有.txt
文件,但只搜索到第2层目录 find . -name “.txt" -maxdepth 2
14. 设置最小搜索深度
在当前目录及其子目录中查找所有.txt
文件,但只从第2层目录开始搜索
find . -name ".txt” -mindepth 2
15. 查找空文件或空目录
在当前目录及其子目录中查找所有空文件或空目录
find . -empty
16. 查找比指定文件新的文件
在当前目录及其子目录中查找比reference.txt
新的文件
find . -newer reference.txt
17. 组合条件
在当前目录及其子目录中查找所有属于用户john
且修改时间在7天内的文件
find . -user john -mtime -7
17.grep指令
语法:grep [选项] 模式 [文件…]
功能:
搜索文本:在文件中查找包含指定模式的行。
使用正则表达式:支持基本和扩展正则表达式。
输出匹配行:默认情况下,输出包含匹配模式的行。
多种输出格式:支持多种输出格式,如只显示文件名、显示行号等。
常用选项
示例:
1. 基本使用
在 file.txt 中查找包含 “example” 的行
grep “example” file.txt
2. 忽略大小写
在 file.txt 中查找包含 “example” 的行,忽略大小写
grep -i “example” file.txt
3. 显示不匹配的行
在 file.txt 中查找不包含 “example” 的行
grep -v “example” file.txt
4. 只显示包含匹配项的文件名
查找当前目录下包含 “example” 的文件,并只显示文件名
grep -l “example” *
5. 显示匹配行及其行号
在 file.txt 中查找包含 “example” 的行,并显示行号
grep -n “example” file.txt
6. 只显示每个文件中匹配的行数
在 file.txt 中查找包含 “example” 的行数
grep -c “example” file.txt
7. 递归地搜索目录中的所有文件
递归地在当前目录及其子目录中查找包含 “example” 的行
grep -r “example” .
8. 匹配整个单词
在 file.txt 中查找包含完整单词 “example” 的行
grep -w “example” file.txt
9.只显示匹配部分
在 file.txt 中查找包含 “example” 的行,并只显示匹配的部分
grep -o “example” file.txt
10. 使用指定的正则表达式
在 file.txt 中查找以 “ex” 开头且以 “ple” 结尾的行
grep -e “^ex.ple$" file.txt
11. 从文件中读取模式
从 patterns.txt 文件中读取模式,并在 file.txt 中查找
grep -f patterns.txt file.txt
12. 显示匹配行及其后 n 行
在 file.txt 中查找包含 “example” 的行,并显示其后的3行
grep -A 3 “example” file.txt
13. 显示匹配行及其前 n 行
在 file.txt 中查找包含 “example” 的行,并显示其前的2行
grep -B 2 “example” file.txt
14. 显示匹配行及其前后 n 行
在 file.txt 中查找包含 “example” 的行,并显示其前后的1行
grep -C 1 “example” file.txt
15. 使用扩展正则表达式
在 file.txt 中查找包含 “example” 或 “sample” 的行
grep -E “example|sample” file.txt
16. 将模式视为固定字符串
在 file.txt 中查找包含 “example.” 的行,将 “example.” 视为固定字符串
grep -F “example.” file.txt
17. 高亮显示匹配部分
在 file.txt 中查找包含 “example” 的行,并高亮显示匹配部分
grep --color “example” file.txt
18. 排除符合模式的文件
递归地在当前目录及其子目录中查找包含 “example” 的行,排除.log
文件
grep -r --exclude=".log” “example” .
19. 只包括符合模式的文件
递归地在当前目录及其子目录中查找包含 “example” 的行,只包括.txt
文件
grep -r --include=“*.txt” “example” .
18.zip指令
语法: zip [选项] 压缩文件名.zip 文件/目录…
功能
压缩文件:将一个或多个文件或目录压缩成一个 .zip 文件。
更新压缩文件:向现有的 .zip 文件中添加或更新文件。
删除压缩文件中的内容:从 .zip 文件中删除文件。
常用选项
示例
1. 基本使用
将 file1.txt 和 file2.txt 压缩成 archive.zip
zip archive.zip file1.txt file2.txt
2. 递归压缩目录
递归地压缩 directory 目录及其子目录中的所有文件
zip -r archive.zip directory
3. 更新现有的 .zip 文件
更新现有的 archive.zip 文件,添加新的或更新已有的文件
zip -u archive.zip file1.txt file2.txt
4. 从 .zip 文件中删除文件
从 archive.zip 中删除 file1.txt
zip -d archive.zip file1.txt
5. 压缩后删除源文件
#压缩 file1.txt 并删除源文件
zip -m archive.zip file1.txt
6. 安静模式
安静模式下压缩 file1.txt
zip -q archive.zip file1.txt
7. 显示详细信息
显示详细信息并压缩 file1.txt
zip -v archive.zip file1.txt
8. 排除指定的文件
压缩 directory 目录,但排除 file1.txt
zip -r archive.zip directory -x “directory/file1.txt”
9. 加密压缩文件
加密压缩 file1.txt,并提示输入密码
zip -e archive.zip file1.txt
10. 使用指定的密码加密压缩文件
使用指定的密码加密压缩 file1.txt
zip -P mypassword archive.zip file1.txt
11. 设置压缩级别
使用最大压缩级别压缩 file1.txt
zip -9 archive.zip file1.txt
19.unzip指令
语法:unzip [选项] 压缩文件名.zip
功能
解压缩文件:将 .zip 文件解压缩到当前目录或指定目录。
查看压缩文件内容:列出 .zip 文件中的内容而不解压缩。
解压缩特定文件:从.zip 文件中解压缩指定的文件。
常用选项
示例:
1. 基本使用
解压缩 archive.zip 到当前目录
unzip archive.zip
2. 列出 .zip 文件中的内容
列出 archive.zip 中的内容
unzip -l archive.zip
3. 指定解压缩的目标目录
将 archive.zip 解压缩到 /path/to/directory
unzip archive.zip -d /path/to/directory
4. 覆盖已存在的文件
解压缩 archive.zip 并覆盖已存在的文件
unzip -o archive.zip
5. 不覆盖已存在的文件
#解压缩 archive.zip 但不覆盖已存在的文件
unzip -n archive.zip
6. 安静模式
安静模式下解压缩 archive.zip
unzip -q archive.zip
7. 显示详细信息
显示详细信息并解压缩 archive.zip
unzip -v archive.zip
8. 排除指定的文件
解压缩 archive.zip 但排除 file1.txt
unzip archive.zip -x file1.txt
9. 将解压缩的内容输出到标准输出
将 archive.zip 的内容输出到标准输出
unzip -p archive.zip
10. 测试 .zip 文件的完整性
测试 archive.zip 的完整性
unzip -t archive.zip
11. 显示 .zip 文件的注释
显示 archive.zip 的注释
unzip -z archive.zip
12. 使用指定的密码解压缩加密的 .zip 文件
使用指定的密码解压缩 archive.zip
unzip -P mypassword archive.zip
20.tar指令(打包/解包,不打开它,直接看内容)
语法:tar [选项] [文件/目录…]
功能
创建归档文件:将一个或多个文件或目录打包成一个 .tar 文件。
提取归档文件:从 .tar 文件中提取文件。
查看归档文件内容:列出 .tar 文件中的内容而不提取。
更新归档文件:向现有的 .tar 文件中添加新的文件或更新已有的文件。
删除归档文件中的内容:从 .tar 文件中删除文件。
常用选项
示例
范例一:将整个 /etc 目录下的文件全部打包成为
/tmp/etc.tar
[root@linux ~]# tar -cvf /tmp/etc.tar /etc<==仅打包,不压缩!
[root@linux ~]# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩
[root@linux ~]# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩
特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。
如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~
如果加 j 参数,则以 .tar.bz2 来作为附档名啊~
上述指令在执行的时候,会显示一个警告讯息:
『`tar: Removing leading `/" from member names`』那是关于绝对路径的特殊设定。范例二:查阅上述 /tmp/etc.tar.gz 文件内有哪些文件?
[root@linux ~]# tar -ztvf/tmp/etc.tar.gz
由于我们使用 gzip 压缩,所以要查阅该 tar file 内的文件时,就得要加上 z,这个参数了!这很重要的!范例三:将 /tmp/etc.tar.gz 文件解压缩在 /usr/local/src 底下 [root@linux ~]# cd /usr/local/src [root@linux src]# tar -zxvf /tmp/etc.tar.gz
在预设的情况下,我们可以将压缩档在任何地方解开的!以这个范例来说, 我先将工作目录变换到 /usr/local/src 底下,并且解开
/tmp/etc.tar.gz , 则解开的目录会在 /usr/local/src/etc 呢!另外,如果您进入/usr/local/src/etc 则会发现,该目录下的文件属性与 /etc/ 可能会有所不同喔!
范例四:在 /tmp底下,我只想要将 /tmp/etc.tar.gz 内的 etc/passwd 解开而已
[root@linux ~]# cd /tmp
[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd
我可以透过 tar -ztvf来查阅 tarfile 内的文件名称,如果单只要一个文件, 就可以透过这个方式来下达!注意到! etc.tar.gz 内的根目录 /
是被拿掉了!
范例五:将 /etc/ 内的所有文件备份下来,并且保存其权限!
[root@linux ~]# tar -zxvpf /tmp/etc.tar.gz /etc
这个 -p 的属性是很重要的,尤其是当您要保留原本文件的属性时!范例六:在 /home 当中,比 2005/06/01 新的文件才备份
[root@linux ~]# tar -N “2005/06/01” -zcvf home.tar.gz /home
范例七:我要备份 /home, /etc ,但不要 /home/dmtsai
[root@linux ~]# tar --exclude /home/dmtsai -zcvf myfile.tar.gz /home/* /etc范例八:将 /etc/ 打包后直接解开在 /tmp 底下,而不产生文件! [root@linux ~]# cd /tmp [root@linux tmp]# tar -cvf - /etc | tar -xvf - 这个动作有点像是 cp -r /etc
/tmp 啦~依旧是有其有用途的! 要注意的地方在於输出档变成 - 而输入档也变成 - ,又有一个 | 存在~ 这分别代表 standard
output, standard input 与管线命令啦
21.bc指令
语法:bc [选项] [文件]
功能:
基本算术运算:加、减、乘、除。
高级数学运算:幂运算、平方根、对数等。
变量和函数:定义和使用变量及函数。
控制结构:支持条件语句和循环语句。
高精度计算:支持任意精度的数学运算。
常用选项:
22.uname-r指令
语法:uname [选项]
功能: uname用来获取电脑和操作系统的相关信息。
补充说明:uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。
常用选项
输出示例:
Linux myhostname 5.4.0-123-generic #139-Ubuntu SMP Wed Jul 14 17:09:16 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Linux:内核名称
myhostname:主机名
5.4.0-123-generic:内核版本号
#139-Ubuntu SMP Wed Jul 14 17:09:16 UTC 2021:内核版本
x86_64:硬件名(处理器架构)
x86_64:处理器类型
x86_64:硬件平台类型
GNU/Linux:操作系统名称