目录
一、常用指令
1.ls 指令
语法: ls [选项] [目录或文件]
功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的详细信息。
-t 以时间排序。
-R 列出所有子目录下的文件。(递归)
2.pwd命令
语法: pwd
功能:显示用户当前所在的目录
3.cd 指令
语法:cd 目录名
功能:改变工作目录。将当前工作目录改变到指定的目录下。
举例:
cd .. : 返回上级目录
cd /home/litao/linux/ : 绝对路径
cd ../day02/ : 相对路径
cd ~:进入用户家目
cd -:返回最近访问目录
4.touch指令
语法:touch [选项]... 文件...
功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
5.mkdir指令
语法:mkdir [选项] dirname...
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项: -p, --parents 后面可以是一个路径名称。若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好 那些尚不存在的目录,即一次可以建立多个目录;
-m 设置文件的权限。直接设置不是用默认权限(umask)
mkdir –p test/test1/test2 : 递归建立多个目录
mkdir –m 711 test3
6.rmdir指令 rm 指令
rmdir是一个与mkdir相对应的命令。mkdir是建立目录,而rmdir是删除命令。具有当前目录操作权限的所有使用者才能使用这个指令。
语法:rmdir [-p] [dirName]
功能:删除空目录
常用选项: -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
rm命令可以同时删除文件或目录
语法:rm [-f-i-r-v] [dirName/dir]
功能:删除文件或目录
常用选项:
-f 强制删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
7.man指令
man 是 manual 的缩写,将指令的具体信息显示出来。
语法: man [选项] 命令
当执行 man date
时,有 DATE(1) 出现,其中的数字代表指令的类型,常用的数字及其类型如下:
1 是普通的命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread
4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
8.cp指令
语法:cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则 它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的 目录,则会出现错误信息
常用选项:
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接, 则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
9.mv指令
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files)
语法: mv [选项] 源文件或目录 目标文件或目录
功能:
1. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将 所给的源文件或目录重命名为给定的目标文件名。
2. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目 标目录中。
常用选项:
-f :force 强制,如果目标文件已经存在,不会询问直接覆盖
-i :若目标文件 (destination) 已经存在时,会询问是否覆盖
10.cat
语法:cat [选项] [文件]
功能: 查看目标文件的内容
常用选项: -b 对非空输出行编号 -n 对输出的所有行编号 -s 不输出多行空行
11.date
date 指定格式显示时间: date +%Y:%m:%d
在显示方面,可以设定欲显示的格式,格式设定为一个加号后接标记,标记列表如下
%H : 小时(00..23)
%M : 分钟(00..59)
%S : 秒(00..61)
%X : 相当于 %H:%M:%S
%d : 日
%m : 月份
%Y : 完整年份
%F : 相当于 %Y-%m-%d
12.top
Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。
选项 -u 后加指定用户名 -p 后加指定进程 -n 后加循环显示的次数
13.shutdown
语法:shutdown [选项]
常见选项:
-k : 不会关机,只是发送警告信息,通知所有在线的用户
-r : 将系统的服务停掉后就重新启动
-h : 将系统的服务停掉后就立即关机
-c : 取消已经在进行的 shutdown
14.快捷键
- Tab:命令和文件名补全;
- Ctrl+C:中断正在运行的程序;
- Ctrl+D:结束键盘输入(End Of File,EOF)
二、 基础概念
用户的概念
Linux下有两种用户:超级用户(root)、普通用户。
超级用户:可以再linux系统下做任何事情,不受限制
普通用户:在linux下做有限的事情。
超级用户的命令提示符是“#”,普通用户的命令提示符是“$”。
Linux是多用户的,所以可以同时登陆多人,可以切成别人的身份。
普通用户切换到超级用户:su
超级用户切换到普通用户:exit
文件属性及权限
用户分为三种:文件拥有者、群组以及其它人,对不同的用户有不同的文件权限。
使用 ls 查看一个文件时,会显示一个文件的信息,例如 drwxr-xr-x 3 root root 17 May 6 00:14 .config
,对这个信息的解释如下:
- drwxr-xr-x:文件类型以及权限,第 1 位为文件类型字段,后 9 位为文件权限字段
- 3:链接数
- root:文件拥有者
- root:所属群组
- 17:文件大小
- May 6 00:14:文件最后被修改的时间
- .config:文件名
常见的文件类型及其含义有:
- d:目录
- -:文件
- l:链接文件
- b:块设备文件(例如硬盘、光驱等)
- p:管道文件
- c:字符设备文件(例如屏幕等串口设备)
- s:套接口文件
9 位的文件权限字段中,每 3 个为一组,共 3 组,每一组分别代表对文件拥有者、所属群组以及其它人的文件权限。一组权限中的 3 位分别为 r、w、x 权限,表示可读、可写、可执行。
文件时间有以下三种:
- modification time (mtime):文件的内容更新就会更新;
- status time (ctime):文件的状态(权限、属性)更新就会更新;
- access time (atime):读取文件时就会更新。
修改权限
chmod 功能:设置文件的访问权限
格式:chmod [参数] 权限 文件名
常用选项: R -> 递归修改目录文件的权限
说明:只有文件的拥有者和root才可以改变文件的权限
1.三位8进制数字
示例:chmod 754 teamspeak
将 teamspeak 文件的权限修改为 -rwxr-xr--
2.符号来设定权限
chmod [ugoa] [+-=] [rwx] dirname/filename
- u:拥有者
- g:所属群组
- o:其他人
- a:所有人
- +:添加权限
- -:移除权限
- =:设定权限
示例:chmod a+w teamspeak
为 teamspeak 文件的所有用户添加写权限
默认权限
- 文件默认权限:文件默认没有可执行权限,因此为 666,也就是 -rw-rw-rw- 。
- 目录默认权限:目录必须要能够进入,也就是必须拥有可执行权限,因此为 777 ,也就是 drwxrwxrwx。
目录存储文件列表
"目录存储文件列表"是指将一个目录中的所有文件的名称列成一个列表,并将该列表存储在一个文件中。这个文件通常是一个文本文件,每行包含一个文件的名称。
目录的权限
可执行权限: 如果目录没有可执行权限, 则无法cd到目录中。也就是说如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd 进入目, 即使目录仍然有-r 读权限。
可读权限: 如果目录没有可读权限, 则无法用ls等命令查看目录中的文件内容。
可写权限: 如果目录没有可写权限, 则无法在目录中创建文件, 也无法在目录中删除文件。
注意:只要用户具有目录的写权限, 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。
文件名不是存储在文件的内容中,而是存储在文件所在的目录中。因此,拥有文件的 w 权限并不能对文件名进行修改。目录存储文件列表,一个目录的权限也就是对目录存储文件列表的权限。因此,目录的 r 权限表示可以读取文件列表;w 权限表示可以修改文件列表,具体来说,就是添加删除文件,对文件名进行修改;x 权限可以让该目录成为工作目录,x 权限是 r 和 w 权限的基础,如果不能使一个目录成为工作目录,也就没办法读取文件列表以及对文件列表进行修改了。
VIM
vim的三种模式分别是:命令模式(command mode)、插入 模式(Insert mode)和底行模式(last line mode)
- 一般指令模式(Command mode):VIM 的默认模式,可以用于移动游标查看内容;
- 编辑模式(Insert mode):按下 "i" 等按键之后进入,可以对文本进行编辑;
- 指令列模式(底行模式)(Bottom-line mode):按下 ":" 按键之后进入,用于保存退出等操作。
命令行模式指令:
「G」:移动到文章的最后
「 $ 」:移动到光标所在行的“行尾”
「^」:移动到光标所在行的“行首”
[gg]:进入到文本开始
「ctrl」+「g」列出光标所在行的行号。
「#G」:例如,「15G」,表示移动光标至文章的第15行行首。
底行模式指令:
环境变量PATH
PATH
环境变量是一个路径集,是一个非常重要的变量,它定义了系统在哪些目录中查找可执行文件。当你在终端中输入一个命令时,系统会按照 PATH
变量中定义的顺序搜索这些目录,以确定要执行的命令文件。
PATH
环境变量是一个由多个目录路径组成的字符串,这些路径由冒号(:
)分隔。通常,PATH
的默认值包含了一些标准的系统目录,以确保常用的命令可以在任何位置使用。
查看当前系统中的
PATH
变量:echo $PATH
添加环境变量:export PATH=$PATH:/my/custom/bin
管道命令
管道(Pipeline)是一个非常有用的特性,允许你将多个命令连接在一起,将一个命令的输出作为另一个命令的输入。这使得你可以将各种命令组合在一起,以便在处理数据和执行任务时更加灵活和高效。
管道使用垂直线 |
符号来连接多个命令:command1 | command2 | command3