(注:root用户的用户主目录为/root,非root用户的用户主目录为/home)
该指令可以按绝对路径查看当前所处的目录
其中,第一个“/”指的是根目录,之后的“/”只是文件名的分割符,因此它是从根目录开始的(绝对路径)
在安装了tree的情况下,还可以通过tree指令来以树状结构显示文件当文件名缺省时,就显示当前目录下的文件树状结构 [选项]: -p 只显示目录而不显示文件(即只显示文件夹)
例:以树状结构显示/root下的文件 注:tree需要安装,用户若没有tree,则可以以下指令下载:
sudo apt-get update sudo apt install tree(注:在指令一般格式当中,“[ ]”表示这是可选项,“< >”表示这是必选项)
清屏
清空缓冲区的字符,例如 getchar(); 中所收录的回车键就存放在缓冲区中,该命令可以清空
对每个执行的命令,Linux系统都会自动打开3个文件,并且都有一个小的整数与之对应:
(1)stdin 标准输入文件,一般指键盘输入,用0表示
(2)stdout 标准输出文件,一般指显示器,用1表示
(3)stderr 标准出错处理文件,一般指显示器,用2表示
[选项]: 空 默认在当前目录下新建目录 -m 对新建的目录设置权限(见chmod命令) -p 创建存在中间路径的目录
通过 touch 命令可以创建指定扩展名的文件如 .txt、.c等
如果文件不存在,则可以创建一个空白文件如果文件已存在,则可以修改文件的末次修改时间例:在CLC目录下创建file1目录,再在file1目录下创建file2目录 其中,file1原来是不存在的,加上-p后,就可以链式创建 (注:所选的路径必须是完整的绝对路径或相对路径)
cd ~ 进入用户主目录 cd - 返回进入此目录前所在的目录 cd …(这里是两个点)返回当前目录的父目录 另外,“.”表示当前工作目录
[选项]: -p 当子目录被删除后,若其父目录成为空目录,则父目录一并删除 -v 将提示删除操作成功 -pv 前面两条一起使用,其他命令的选项也如此操作即可
[选项]: -a 显示指定目录下的所有目录与文件,包括隐藏文件 -d 将目录名像其他文件一样列出,而不是列出目录里面的内容 -l 采用长格式来显示文件的详细信息 -r 将目录的内容清单以英文字母顺序的逆序显示 -R 若模板目录及子目录中有文件,就列出所有的文件 -t 按时间信息排序 -h 可以配合-l来K、M、G或T等单位来显示文件大小,平常是以字节来显示(注:单独使用无用,要配合-l使用)
注:每个单位之间的关系是1024倍,因为计算机是以二进制的方式来存储的
通配符 * 可以代表任意长度的字符 通配符 ? 可以代表一个长度的字符 通配符 [] 可以代表一个字符组,如[abc]可以表示a或b或c的三个单字符,不是字符串
例如:
ls want* 可以用来显示以want字符开头的文件 ls *want.txt 可以用来显示以want.txt为结尾的文件(注:要加扩展名,如:.txt、.c等) ls *want* 可以略过扩展名来查看文件 ls [abc]want* ls [a-f]want* ls [1-7]want* 第一个可以匹配以[a或b或c]开头,后面跟着want的文件,[]中是单个字符的列表第二个可以匹配以[a到f的任意字符]开头,后面跟着want的文件第三个可以匹配以[1到7的任意字符]开头,后面跟着want的文件(1)显示后蓝色的文件名为目录,绿色的文件名为普通文件,文件头有“.”的为隐藏文件: (2)-l 选项列出后,一般开头有几种:
“-”表示普通文件“d”表示目录文件“l”表示链接文件“p”表示命名管道(FIFO)“c”字符设备文件“b”块设备文件可以查看文本文件 [选项]: -E 在每一行的末尾显示符号“$” -n 显示每一行的行号,包括空行 -b 显示每一行的行号,不包括空行 –help 显示这个命令的用途,简要解释每一个选项的作用 <文件列表>: 若是多个文件,之间由空格分开
例:选项-b查看a.c的C程序文件
[选项]: +number 从第number行开始显示内容(number是数值) -number 指定每屏幕要显示number行 -s 把重复的空行,压缩成一个空行 -p 不以卷动的方式显示每一页,而是先清除整个屏幕,再显示文本 +number1 -number2 由于前置符号不同,所以“+”和“-”要分开写 <文件列表>: 若是多个文件,之间由空格分开
(注:分页显示,若打开的文件有多页,则按空格可以翻到下一页)
[选项]: -N 显示行号 -pwant 在文件中查找匹配want第一次出现位置(注:want可以是数字、字符串等) 即匹配信息寻找所选项目 <文件列表>: 若是多个文件,之间由空格分开
例:选项-pprintf匹配查找a.c文件中的printf,并高亮标出 总结:cat、more、less的区别
(1)cat命令功能用于一次性打印显示整个文件的内容,单独使用没有翻页功能
(2)more命令让画面在显示满一页时暂停,此时可以按空格键继续显示下一个画面,或按Q键停止显示
(3)less命令的用法与more命令类似,也可以原来浏览超过一页的文件,不同的是less命令除了可以按空格键显示文件外,还可以利用上下键来卷动文件。当浏览结束时,只要在less命令的提示符“:”下按Q键即可
此外,在Ubuntu上安装了gedit文本编辑器软件后还可以直接用以下指令打开文件:[选项]: -a 对涉及到的所有文件进行统计,二不只是包含子目录 -b 输出以字节为单位的大小 -k 输出以1024字节为计数单位的大小 -m 输出以兆字节的块为计数单位的大小(就是1,048,576字节) -c 给出总计,该选项被用给出指定的一组文件或目录使用的空间的总和 <路径>: 路径可以选择绝对路径或相对路径
可以在指定的文件中搜索指定的内容
[选项]: -n 显示匹配行和行号 -v 显示不包含匹配内容的所有行(相当于求反) -i 忽略大小写 <要搜索的文本>: 如果要搜索的文本含有空格,则需要用""将其括起来 如:“Hello linux” 此处允许进行模式查找,又称正则表达式: ^want 行首,搜索以want开头的行 want$ 行尾,搜索以want结尾的行
echo可以把指定内容重新显示在屏幕中
[<重定向> <文件名>]: “>” 表示输出,把echo要显示的内容覆盖到<文件名>中(注:会覆盖原内容),若文件不存在,则新建文件 “>>” 表示追加,把echo将要显示的内容追加到<文件名>中,不覆盖原内容
[重定向]: “>” 表示输出,把command指令要显示的内容覆盖到<文件名>中(注:会覆盖原内容) “>>” 表示追加,把command指令将要显示的内容追加到<文件名>中,不覆盖原内容
如:显示Hello linux 如:将显示的Hello linux重定向到a.txt文件中 如:将ls -lh指令显示的内容重定向到a.txt文件中
Linux允许将一个命令的输出通过管道作为另一个命令的输入 常用管道 | 的命令有:more 和 grep
管道符的左端为写入端 | 管道符的右端为读取端 即把comman1指令的输出结果作为command2指令的输入 (注:管道允许连续使用:command1 | command2 | command N…)
如:将当前目录下ls -lh指令显示的结果作为more的输入
ls -lh ~ | more如:将当前目录下ls -lh指令显示的结果作为grep(grep搜索abc)的输入
ls -lh ~ | grep abc[选项]: -i 如果目的文件已存在,会在覆盖前提示,要求用户是否覆盖,回答“y”时文件将被覆盖 -p 保留文件的权限属性和修改时间行 -r 递归地复制目录(即复制文件夹) <文件>: 文件1是被复制的文件 文件2是要复制到的文件或目录(注:最后一项应为复制后的文件名,不写时为原名,故可以给复制文件命名)
(注:复制文件必须具有相应的权限:源文件的读权限、包含文件1的目录执行权限和文件2所在目录的写权限)
[选项]: -f 在覆盖目的文件前永不提示用户 -i 在覆盖目的文件前提示用户(最好增加,因为在终端中修改后无法恢复) <文件>: 文件1和文件列表,是要转移的文件 文件2和目录名,是要转移的位置(注:最后一项应为复制后的文件名,不写时为原名,故可以对文件重命名)
例:把file1目录下的file2目录文件,转移到当前工作目录下,并改名为file 例:利用mv指令对文件进行重命名,如下,把a.txt重命名为b.txt
mv a.txt b.txt[选项]: -r 递归的移除目录中的内容及目录本身(文件夹),注:rm本身不可删除文件夹,在加 -r 后就可以删除文件夹 -i 在删除文件列表中的文件前给出提示 -f 强制删除、在删除文件列表的文件前不予以提示、忽略不存在的文件
例:(删库跑路)以root用户的权限,递归删除根文件,且不予以提示
注:rm 指令所删除的内容不会置于回收站中,因此不可恢复,在使用时要注意
可比较两个文本文件间的内容 [选项]: -b 忽略行尾的空,把空白字符串当作相同的字符串来处理 -h 快速比较 [文件]: 文件1和文件2,是要比较的两个文件
例:比较两个C程序文件:a.c 和 lb.c 的内容 红框:5c5和7c7分别指的是对应的行 (1)a 左边文件的第几行被添加右边文件的第几行(相当于左边比右边缺少的内容) (2)c 左边文件的第几行替换成右边文件的第几行(相当于不同之处) (3)d 左边文件的第几行被删除(相当于左边比右边多出的内容) 蓝框:开头为“<”表示左边的文件,开头为“>”表示右边的文件,即不同的内容 绿框:用cat指令阅读文件,看看是否正确
指令对应如下: (注:实质上,diff命令在执行时,一行一行地比较两个文件的内容,并以命令的形式显示它们之间的区别)
即删除文件中所有连续的重复行显示,只留下一行
(注:该命令不改变源文件的内容,只是把结果输出到屏幕或文件中)
[选项]: -c 在每行之前显示它们重复出现的次数 -d 只显示重复行 -u 只显示未重复的行 [ intput-file ]: 是需要修改的有连续重复行的文件 [ output-file ]: 是删除重复行后得到的文件(即新建文件,而源文件仍然存在),或(不写)删除结果输出在屏幕上
可以对指定的命令/指令寻找帮助 其中command是命令/指令
可以对指定的命令/指令查看man手册,包括传入的参数等,其中command是命令/指令 注意:在使用man手册的时候有如下按键操作: 空格 显示手册的下一页 enter 手册向下滚动一行 b 往回滚动一页 f 向前滚动一页 q 退出 /want 搜索want字符串
通过上述两种方式均可在Linux中查找到相关函数的参数使用资料,增加工作可靠度
查找指定路径下扩展名是 .txt的文件,包括子目录中的文件 “.txt” 即以 .txt为扩展名(可以是通配符)
例如:
find -name "*l*" 查找当前目录下包含 l 的文件 find -name "*.c" 查找当前目录下以 .c为扩展名的文件 find Desktop/ -name "l*" 查找当前目录下的Desktop中以 l 为开头的文件Tab Tab Tab ↑ ↓
按1次Tab按键可以自动补全要写入的文件名等
对于具有重复开头的文件名,按1次Tab按键没有响应,但按下2次Tab时,系统会显示以该字符为开头的文件名,即可供选择的文件名
通过↑和↓按键可以快速调出历史使用过的指令
(1)r 可读:允许用户读取其内容,而禁止对其做任何的更改操作
(2)w 可写:表示可以改写该文件的内容、删除文件(要有文件所在目录的写权限)
(3)x 可执行:可执行权限表示允许将该文件作为一个程序执行,如:C程序文件
(4)- 没有该权限:在 rwx 的对应位置为 - 表示没有该权限
(1)可读:表示允许显示该目录中的内容
(2)可写:表示可以在该目录中新建、删除、重命名文件以及修改子目录名
(3)可执行:表示可以进入该目录,可执行基本权限,如果没有该权限,则无法进入该目录,也就无法使用可写的权限
访问权限的用户类别,有三种不同的类型的用户可对文件或目录进行访问:
(1)文件所有者 (2)同组用户 (3)其他用户
同组用户指的是具有相同权限的一组用户通过以下指令可以查看各文件的权限:
ls -l图中红色框选位置的代表含义分别为:
第1列第2列第3列第4列第5列第6列文件属性文件所有者权限同组用户权限其他用户权限文件所有者同组组名(注:同组用户的root是组名不是root用户)
由于读、写和执行为三个权限,有权限为1,无权限为0,因此可以通过八进制数来表示用户的权限。例如上述:rwx r-x r-x 则可表示为 111 101 101转为八进制数即为755+[rwx] 表示增加权限,rwx为可选组合 -[rwx] 表示减少权限,rwx为可选组合
但这种修改方式是对文件所有者、同组用户、其他用户同时进行修改,无法精确到指定组-R 递归地修改文件/目录的权限 [OCT] 表示以八进制的形式来表示3×3的权限,例:755 表示 111 101 101
可以精确到指定的组可以修改文件的拥有者
这些操作可能需要sudo获取root权限提示:
当目录没有可读权限时,将无法进入和读取对应的目录内容当目录没有可写权限时,将无法修改当前的目录的内容当目录没有可执行权限时,将无法执行与对应目录相关的终端指令,如 ls 等超级用户root具有最高权限当其他用户需要执行权限之外的权限时,可以在指令前添加sudo,通过输入root密码即可执行可以添加组
可以删除组
确认组信息,组信息存储在 /etc/group,需要有可读权限
-R 递归地修改文件/目录的所属组
这些操作可能需要sudo获取root权限可以添加新用户 [选项]: -m 自动建立用户家目录 -g 指定用户所在组,否则会建立一个与新建用户名同名的组
-m 和 -g 这两个选项一般都要选上如果没有指定-m,则在passwd中会指明新建用户的家目录;但该家目录并不存在,需要自建并设置权限如果新建用户时忘记添加-m,最简单的方法就是删除用户重新新建,否则自建家目录并设置权限较麻烦可以设置用户密码,如果是普通用户,直接用passwd可以修改自己账户的密码
删除用户,-r 选项会自动删除用户家目录
可以确认用户信息
新用户创建后,用户信息会保存在 /etc/passwd 中 这些操作可能需要sudo获取root权限例:通过指令 cat -n /etc/passwd 确认所有用户信息(-n是显示行号)
缺省时则显示当前用户的信息 查看用户UID(用户代号)和GID(组代号)信息,如图 uid=0(root)是用户代号和用户名,gid=0(root)是组代号和组名
UID保存在 /etc/passwd 中,如图: 最下面的红框中,0:0左边的0是指用户代号UID,右边的0是指组代号GID 提示:在passwd中所显示的为7个信息,分别用6个冒号分隔开: 序号代表信息1用户名2密码(x表加密)3UID4GID5用户全名或本地账号6家目录7登录使用的shell(Ubuntu默认使用的是dash) GID保存在 /etc/group中,如图: 红色框框中表示的就是组代号GID查看当前所有登录的用户列表
查看当前登录用户的账户名
提示:即该用户除了拥有主组的权限之外,还可以加以其他权限(附加组的权限)
可以修改用户的主组
可以修改用户的附加组
可以修改用户的登录shell,如果在SSH中输入一些指令和Ubuntu中的打印方式不一样,或在SSH不带颜色时,可以修改登录shell来使SSH具备颜色
默认使用useradd添加的用户是没有sudo的root权限的,可以通过这个方式添加sudo附加组
其中command是指令,可以查看当前指令的执行文件所在位置
例:列出了修改密码指令passwd和列表指令ls程序的所在位置
(需要密码)可以输入密码后切换到另一用户 [-]: 添加了 “-” 选项之后可以同时将当前目录切换至切换后的用户的家目录 用户名缺省时,则切换至root用户
提示:su指令如同(盗梦空间)一样,可以层层切换进入另一用户,并且每一次exit都只是退出一层梦境(用户),因此可以通过掷陀螺(whoami指令)来区分您当前处于哪一层梦境(用户)通过exit可以退出切换,返回原用户
可以查看系统当前的日期和时间
如图所示: 格式为:星期+月+日+(时:分:秒)+…+年
可以查看系统当前日期所在日历 -y 可以查看当前年份的所有日历
cal 如图所示: cal -y 如图所示:
显示磁盘剩余空间 -h 以人性化的形式显示大小
显示目录下的文件大小 [目录名] 缺省时表示当前所在目录的大小 -h 以人性化的形式显示大小
df -h 如图所示:
查看进程的详细状况( 注:不需要加 “-” ) [选项]: a 即all,显示终端上的所有进程,包括其他用户的进程(Linux是一个多用户的操作系统) u 显示进程的详细状况 x(用得较少)显示没有控制终端的程序(所为没有控制终端的程序,即不是由终端Terminal来启动的程序)
ps au 如图所示:
USERPID%CPU%MEMSTARTTIME执行该进程的用户进程号CPU占用率内存占用率开始时间执行时间动态显示运行中的进程并排序
进入top后按q即可退出
终止指定PID的进程 -9 表示强制终止
概念:Linux下的链接文件指向已存在的文件,类似Windows下的快捷方式,但不完全相同
(1)软链接:类似于Windows下的快捷方式,路径就是打开源文件
(2)硬链接:创建一个与源文件共享的镜像文件,占用相同的内存
在Linux中,文件名和文件数据是分开存储的,文件数据可以用文件名访问,也可以用硬链接访问即使文件名被删除了,只要还有硬链接,文件数据仍然存在,仍然可以被硬链接访问,只有文件名和硬链接全部被删除后,文件数据才被释放在硬链接中修改文件,文件名的内容也会改变作用:链接文件的主要作用是用于文件的共享访问
[-s]: 使用选项“-s”(soft)时,为创建软链接,缺省时为创建硬链接 < sourcefile >: 源文件名 < newfile >: 新创建的链接文件名
(注:由于软链接指向源文件的路径,因此在创建软链接时,源文件名最好带有绝对路径)
如果软链接文件使用的是相对路径,则当软链接文件的位置发生变更时,相对路径就会发生变化,而链接随之失效即可显示软连接的链接源文件,其中下面的指令是针对某一链接文件的
该指令可以查看软硬链接文件的内容
例:在当前目录下创建一个软链接文件 a.t 并将其链接到 /root/Desktop/a.c
其中 a.t -> /root/Desktop/a.c 指的是软链接文件的链接位置提示:无论是软链接还是硬链接,对其进行读写,都将操作源文件(可执行权限)
在不同的操作系统下,文件的打包压缩方式是不一样的
操作系统打包压缩方式WindowsrarMaczipLinuxtar.gz可以实现对指定的文件打包并命名(注:tar只负责打包,不负责压缩) <被打包的文件/路径列表>: 可以选择多个不同的文件,文件列表之间用空格隔开,也可以直接打包目录,也可以使用通配符 [选项]: -c 生成档案文件,创建打包文件 -x 解开档案文件 -v 列出归档解档的详细过程,显示压缩进度 -f 指定档案文件名称,-f后面一定是 .tar文件,所以必须放在选项的最后
注:-f必须放选项最后,其他位置随意可以实现对指定文件的解包
提示:tar包的文件名在终端中是红色的,tar.gz指的是tar打包后再gz压缩,在Linux中十分常见,文件名后缀为:“XXX.tar.gz”可以实现文件的打包压缩 -z 在tar命令中使用 -z 选项可以调用 gzip 来打包文件后同时对文件进行压缩
可以实现文件的解压解包
可以解压解包到指定路径位置 -C 可以用来指定路径
以bzip2的方式打包压缩 -j 在tar命令中使用 -j 选项可以调用 bzip2 来打包文件后同时对文件进行压缩
以bzip2的方式解压解包
可以解压解包到指定路径位置
apt是Advanced Packaging Tool,是Linux下的一款安装包管理工具
它可以在终端中方便 安装/卸载/更新 软件包
安装软件
卸载软件
更新已安装的包
例:下面展示两款比较有趣的小软件
1.sl小火车清屏,sl作为清屏指令
sudo apt install sl2.htop一个比较漂亮的查看当前进程排行的软件
sudo apt install htop如果希望在Ubuntu中安装软件,更加快速,可以通过设置镜像源,选择一个访问网速更快的服务器,来提高软件 下载/安装 服务
提示:更换服务器之后,需要一个相对比较长时间的更新过程,需要耐心等待,更新完以后,再安装软件都会从新设置的服务器下载软件了
所谓镜像源,就是所有服务器的内容是相同的(镜像),但是根据所在地理位置的不同,国内的服务器速度通常速度会更快一些,所以可以更换镜像源 Ubuntu中图形界面设置镜像源步骤:
1.在Ubuntu右上方的小齿轮中找到软件和更新: 2.选择最佳的下载镜像: 3.自动选择最佳服务器可能需要一定的测试时长,在选择完成后,系统需要用户输入当前账户的密码,在输入密码之后还会弹出一个更新提示,这个更新持续较长的时间,需要耐心等待