??Linux指令有很多,大致可以分为以下几类:目录操作相关指令、文件相关指令、压缩相关指令、匹配查找相关指令。
1.1 目录操作相关指令
??假设系统的目录结构如下所示:
图1 linux目录树形结构
首先我们需要明确两个概念: ??绝对路径:以根目录为起始的路径,比如:/home/lihua/work ??相对路径:以当前所在目录作为起始的路径,比如:…/lihua/work
001 ls指令(查看文件和文件夹)
??ls 列出当前目录下的所有子目录与文件。 ??ls -l 简写为ll,列出文件和文件夹的详细信息 ??ls -a 列出当前目录下的所有文件,包括隐含文件 ??ls -al 查看隐藏文件的详细信息 ??ls / 查看根目录下的文件和文件夹 ??ls -lh 查看文件的信息,文件的大小以KB为单位
002 pwd指令(查看当前路径)
??pwd 显示用户当前所在的目录(绝对路径)
003 cd指令(切换文件夹)
??cd … 返回上级目录 ??cd …/… 返回到上上级目录 ??cd /home/lihua/work 进入work文件夹下( /home/lihua/work是绝对路径) ??cd …/linux 从work进入到linux (work和linux必须处于同一文件夹下,…/linux是相对路径) ??cd ~ 进入用户家目录 ??cd - 返回到上一次所在的文件夹 ??cd / 切换到根目录
005 mkdir指令(新建文件夹)
??mkdir folder 在当前文件夹下创建文件夹folder ??mkdir -p test/test1 递归建立多个目录,先创建父目录test,在创建子目录test1
006 rmdir指令(只能删除空文件夹)
??rmdir floder 删除空文件夹
007 rm指令(删除文件或文件夹)
??rm file 直接删除文件file ??rm -i file 删除文件file前询问是否删除 ??rm -f file 删除文件,即使文件属性为只读,亦即直接删除。 ??rm -rf folder:文件夹内有文件,也直接删除,不询问。 ??rm -r folder 直接删除文件夹folder及其内部的所有文件 ??rm -ri folder 删除前逐一询问是否删除 ??rm -rf * 将当前目录下的所有目录和文件全部删除 ??rm -rf/ 从根目录开始删除(警告:严禁使用该命令)
008 cp指令(拷贝文件或文件夹)
??cp file … 将文件拷贝到上级文件夹 ??cp -r folder /home 将文件夹folder拷贝到家目录 ??cp a.c /home/aaa.c 将文件a.c拷贝到家目录并命名为aaa.c
009 mv指令(移动文件或文件夹,重命名)
??mv a.c ~ 将a.c移动到家目录下 ??mv [path] a.c . 将a.c移动到当前目录下,path是a.c所在的路径 ??mv /home/lihua/work /home/lihua/linux 将work文件夹移动到linux文件夹下(被移动的文件夹,其路径必须包含自己的上级目录,比如:mv …/lihua/work …/ 将work移动到上级文件夹中) ??mv a.c b.c 将文件a.c重命名为b.c ??mv folder1 folder2 将文件夹folder1重命名为folder2
1.2 文件相关命令
004 touch指令(新建文件,刷新文件属性)
??touch a.txt 创建一个新文件a.txt ??touch a.c b.c d.c 连续创建文件
010 cat指令(查看目标文件全部内容)
(打印文件内容到终端显示) ??cat a.c 查看a.c的内容
011 more指令(查看目标文件部分内容)
(分页显示) ??more a.c 查看a.c的内容,”F”和“B”翻页,Ctrl+c退出查看
012 less指令(查看文件预加载内容)
??less a.c 查看a.c的内容,”F”和“B”翻页,Ctrl+c退出查看
014 head指令(查看文件头部内容)
??head a.c 查看a.c前10行内容 ??head -n 20 a.c 查看a.c前20行内容
015 tail指令(查看文件尾部内容)
??tail a.c 默认查看后10行内容 ??tail -n 5 a.c 查看a.c的后5行 ??tail -f a.c 循环读取a.c是否有新的变化,文件有修改,则会显示修改,Ctrl+c结束读取。 例如: tail -f b.c ??echo “hello world” >> b.c ??echo “hello world” >> b.c
??利用head和tail打印文件的任意一行,比如我们想打印文件a.c的第五行,命令如下: ??head -n 5 a.c | tail -n 1
1.3 压缩相关命令
018 zip/unzip指令(压缩文件/解压缩文件)
??zip a.zip a.c 将文件a.c压缩为a.zip ??zip folder.zip folder 仅压缩文件夹,解压缩后内部无文件 ??zip -r folder.zip folder 把文件夹下的文件一起递归压缩 ??unzip a.zip 解压文件 ??unzip folder.zip 解压文件夹
019 tar指令(压缩文件/解压缩文件)
??tar -zcvf folder.tar.gz folder 使用gzip格式压缩文件夹folder ??tar -zxvf folder.tar.gz 解压文件夹folder ??tar -jcvf folder.tar.bz2 folder 使用bzip2压缩文件夹folder ??tar -jxvf folder.tar.bz2 解压文件夹folder
1.4 匹配查找
016 find指令(查找文件)
??find ~ -name a.c 查找家目录下名字为a.c的文件 ??find . -name “.c" 找到当前目录及其子目录下以.c结尾的文件 ??find . -name ".c” -maxdepth 1 | xargs rm 查找当前目录下.c结尾的文件,并将其删除,查找目录深度为1。xargs是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令,用于很多不支持|管道来传递参数的命令 ??find . -name “*.c” | xargs rm 查找当前目录及其子目录下以.c结尾的文件,并删除
017 grep指令(搜索文件,也可以搜索文件的内容)
??grep “hello world” ~ -R 从家目录下递归搜索文件内容包含hello world字符串的文件 (搜索文件内容) ??grep -R ‘struct’ /usr/include/ 在/usr/include/目录下递归查找包含‘struct’字符串的文件(记住搜索的字符串尽量特殊一点,这样查找起来更精准)
配合管道符号,显示过滤后的搜索结果 ??ll | grep “.c” 筛选命令ll的输出结果,即显示文件名带字符.c的文件。加上管道符号 | 之后,是将ll 命令的输出结果,通过管道,传递给grep命令,作为grep命令的输出参数,利用grep命令进行过滤。
??grep -E ^h b.c 找到文件b.c含有以h字母为行开头的内容,-E选项用来扩展选项为正则表达式,表示匹配文件起始,h表示以h改行的起始字母 ??grep -E d$ b.c找到文件b.c含有以d字母为行结尾的内容,-E选项用来扩展选项为正则表达式,
表
示
匹
配
文
件
末
尾
,
a
表示匹配文件末尾,a
表示匹配文件末尾,a表示以a结尾(2021年3月17日19:24:50测试只适合搜多以字母为结尾的行,其他符号,比如标点符号不支持该类搜索)
1.5 常见操作
007 man指令(查看手册)
??man 1 rm [指令] 查看指令的帮助手册,1代表指令手册 ??例如:man 1 cd 简写为man cd,查看cd指令的帮助手册 ??man 2 [系统函数] 查看系统调用函数的帮助手册,2代表系统调用手册 ??例如:man 2 fork 简写为man fork,fork是系统调用函数 ??man [库函数] 查看库函数的帮助手册,3代表库函数手册 ??例如:man 3 strlen 简写为man strlen,查看strlen函数的帮助手册
Linux一共有7个手册,以上介绍的三个手册使用的简写格式都相同。 注意:你可能遇到的问题,第一次使用man 查找不到strlen,显示“No manual entry for strlen in section 3”或“No manual entry for strlen”。 解决方案: 切换到root用户:su root 执行:yum -y install man-pages
013 echo指令(通过I口把文本写入文件)
??echo “I Love dog” 将一串数据写入到显示器文件 ??echo “I Love dog” > a.c 把I Love dog写入a.c,并把以前的内容覆盖(也可以理解为先清空,后写入a.c) ??echo “I Love bird” >> a.c 把I Love bird追加在指定文件a.c的文本末尾。
032 关机和重启
??shutdown -h now 立刻关机 ??shutdown -h 3 3分钟后关机 ??poweroff 立刻关机
服务器一般只重启,不关机 ??shutdown -r now 立刻重启 ??shutdown -r 3 3分钟后重启 ??reboot 立刻重启
028 ifconfig(查看网卡信息)
1.6 权限相关指令
??两类用户:管理员(root)用户(权利最大) ??普通用户 (权利受限)
1.6.1 系统操作权限
020 su指令(切换用户,获取root权限)
??su 从普通用户切换到root用户,输入命令后,会提示输入密码。 ??su - root 切换到root用户 ??su root 切换到root用户 ??exit 退出root用户
033 sudo(让一个普通用户当前操作具有管理员权限)
与其他指令搭配使用,为其他指令提权
1.6.2 文件权限
034 umask(权限掩码)
改变文件创建时的默认权限 ??umask 查看文件的权限掩码(掩码以8进制显示,取反后即为文件默认权限) ??umask -S 查看文件创建时的默认权限
035 chgrp(修改文件所属组)
036 粘滞位
对于其他用户来说,在修饰了粘滞位的目录中可以创建文件,但是只能删除自己的文件,不能删除别人的。那粘滞位有啥用呢?举个例子,比如三个人:小1、小2、小3,假如小1在自己的家目录下创建一个文件夹tmpdir,则小2和小3在tmpdir中都属于其他用户,如果对这个文件夹设置粘滞位,则在这个文件夹中,小2和小3可以创建文件,也可以删除自己的文件,但不能删除别人的文件。 命令:管理员权限下输入:chmod +t tmpdir 为文件夹tmpdir设置粘滞位
023 chmod指令(设置文件的访问权限)
访问文件的用户具备三种类型:
用户访问文件的三个权限:
?? chmod u+x a.c 给文件拥有者用户加执行权限 ?? chmod o-w a.c 给其他用户取消写权限
1.7 其他指令
021 tree指令(查看目录结构)
这个指令是不存在的,需要首先安装 安装: 1.切换到root用户,执行yun -y install tree 使用方式: ??tree [path] 查看该路径的结构 ??tree . 查看当前目录的结构
022 history指令(查看历史命令)
快速执行历史命令
024 rz指令(上传文件)
??输入rz然后选择需要上传的文件
025 sz指令(下载文件)
??sz a.c 下载a.c文件
026 useradd指令(添加用户)
??useradd lihua 创建一个用户名为lihua的用户
027 ps指令(查看进程信息)
??ps -ef 查看进程简略信息 ??ps aux 查看所有进程详细信息 ??ps aux | grep test 查看test进程的详细信息
037 ldd指令(查看当前程序所依赖的动态库)
??ldd main 查看main所依赖的库文件
038 sleep指令(睡眠)
??sleep 60 睡眠60秒
总结
??以上讲解了一些Linux相关指令,可供各位参考
|