1. 用户目录
pwd命令:查看当前所在目录。
(1)绝对路径:从根目录开始写 /home/yj_coder/aa
(2)相对路径:bb 相对于当前的工作目录而言
. -> 当前工作目录
.. -> 当前的上一级目录
- ->在临近的两个目录之间切换 cd - (在最近进入的两个目录之间进行切换)
(3)yj_coder@ubuntu:~$ ($前是~说明当前用户所在目录在家目录)
yj_coder:当前登陆用户
@:at 在
ubuntu:主机名
~:用户的家目录(宿主目录) (等于/home/yj_coder)
$:当前用户为普通用户
#:超级用户(root用户) (用sudo su命令切换到root用户)变为:root@ubuntu:/home/yj_coder/aa#
2. ls和tree的使用
文件和目录操作
(1)查看我的目录 (tree 目录,列出该目录的树状结构)
1)tree (tree 目录,列出该目录的树状结构) ——必须安装该软件 (sudo apt-get install tree)
2)ls (ls 目录,列出该目录中的可见目录或文件),如果加参数 ls -a 则可将隐藏文件也列出来,隐藏文件的文件名第一个字符是点‘.’ 如果加参数 ls -l 则会列出详细信息,如下图所示:
其中可以发现所有目录占用的磁盘空间大小都是4096,并不包含里面的文件大小。
3. 文件和目录的创建
(1)创建目录:mkdir命令
1)mkdir 目录名称 (创建一个目录,如果目录名已经存在,会提示已存在)
2)mkdir -p dir/dir1/dir2 (加参数-p,创建复合目录)
(2)创建文件:touch命令
1)touch 文件名称 (创建一个空文件,如果该文件名已存在,那么会修改该文件的访问时间)
4. 文件和目录的删除
(1)删除目录:rmdir命令
1)rmdir 目录名称 (删除一个目录,这个必须是空目录)
2)rm -r 目录名称 (删除这个目录以及该目录中的所有东西)
(2)删除文件:rm命令
1)rm 文件名称 (删除一个文件)
5. 文件和目录的拷贝
(1)拷贝文件:cp命令
1)cp 文件1 文件2 (将文件1的内容拷贝到文件2中,如果文件2之前不存在那么先创建再拷贝,如果之前存在那么里面的内容会被文件1的内容覆盖掉)
(2)拷贝目录:cp -r 命令
1)cp -r 目录1 目录2 (如果目录2之前不存在那么先创建,然后将目录1中的内容拷贝到目录2中去;如果之前存在那么将目录1以及目录1中的内容整个拷贝到目录2中去,相当于目录1成为目录2的一个子目录。)
6. 查看文件内容(cat_more_less_head_tail)
7. mv命令
(1)给文件改名字: mv 文件名1 文件名2 文件原来的名字是文件名1,通过此命令改名为文件名2。
(2)移动文件: mv 文件 目录 将文件移动到目录中。
8. 软连接的创建
(1)ln -s 1234.c 1234.soft 1234.soft作为1234.c的快捷方式被创建出来,其大小为6,是“1234.c”这个相对路径的长度。这个1234.soft只能在与1234.c相同的目录下使用,才能找到1234.c,如果将1234.soft移动到其他位置,因为创建时使用的是相对路径,所以用一个相对路径“1234.c”在当前位置去找,当然就找不到1234.c这个文件了。
(2)ln -s ~/1234.c 1234.soft 此时用绝对路径创建软连接,那么由于1234.soft中保存的是绝对路径,所以这时再将1234.soft移动到其他位置,也可以用其中保存的绝对路径去找到文件1234.c。
(3)ln -s ~/目录名/ 目录名.soft 给目录创建软连接,和前面给文件创建是一样的,注意前面的参数最好用绝对路径,这样可以移动目录名.soft到其他位置。
9. 硬链接的创建
ln 1234.c 1234.hard 此命令给1234.c创建了一个硬链接1234.hard,可以创建多个硬链接,用ls -l命令可以查看硬链接计数,此计数包含原文件。要在磁盘上找到一个文件时,是通过inode结点找到对应的文件的,创建的多个硬链接都是指向这一个inode结点。用ls -l命令可以看到这些硬链接的大小和原文件的大小相同,但是它们本质上是不占用磁盘空间的,因为这些硬链接都是指向一个位置。对某一个硬链接中内容的修改就是对原文件中内容的修改,因为本质上这个文件在磁盘上只有一份。创建的硬链接移动到其他位置也是可以的,因为它是利用inode结点来找到磁盘中的文件,所以与硬链接所在的位置无关。
注:只有文件才能创建硬链接,目录不可以。
10. 文件和目录属性命令(od_wc_du_df)
(1)wc命令用来查看文本文件的属性信息:wc 1234.txt 结果:7 23 120 1234.txt 其中7代表行数,23代表单词数(以空格划分),120代表字节数,1234.txt代表文件名。
(2)od命令用来查看二进制文件的内容:od -tx hello
(3)du命令用来查看某个目录的大小:du -h
(4)df命令用来查看磁盘的使用情况:df -h
11. which命令
12. 修改文件的权限
例:把temp文件给其他人添加写权限:chmod o+w temp
例1:设置temp文件的权限:chmod 765 temp
例2:用减法去掉其他人的执行权限:chmod -001 temp
13. 修改文件的所有者和所属组
如上图所示,用户A、B的所属组是Group1,用户C、D、E的所属组是Group2,用户F、G、H、I的所属组是Group3。该文件的所有者是用户B,但其所属组可能是Group1、2、3中的任何一个。假设该文件的所属组为Group2,那么Group2中的用户C、D、E对该文件具有相同的权限,即所属组权限。用户B对该文件具有所有者权限。用户A、F、G、H、I对该文件的权限是其他人权限。
(1)只修改文件的所有者:sudo chown zhangsan temp 把文件temp的所有者修改为zhangsan。
(2)同时修改文件的所有者和所属组:sudo chown Luffy:lisi temp 把文件temp的所有者改为Luffy,把文件temp的所属组改为lisi。
(3)只修改文件的所属组:sudo chgrp itcast temp 把文件temp的所属组改为itcast。
注:目录必须有执行权限,否则将会进不去目录。目录创建出来默认都是有执行权限的。
14. 按文件的属性查找文件 (find命令)
(1)按文件名去查找:sudo find + 查找的目录 + -name + “文件的名字”
例1:sudo find /home/itcast/ -name "hello.c" 会找到目录下所有名字为“hello.c”的文件,输出它们所在的完整路径。
例2:使用通配符*,它可以代表0个至多个字符 sudo find /home/itcast/ -name "hel*",会找到目录下所有前缀是hel的文件。
例3:使用?,它代表1个字符 sudo find /home/itcast/ -name "hel?"。
(2)按文件的大小去查找:sudo find + 查找的目录 + -size + +10k 找到所有目录下大于10k的文件。+为大于,-为小于。
例1:sudo find ~ -size +10k 找到所有家目录下大于10k的文件。
例2:sudo find ~ -size +10M -size -100M 找到所有家目录下大于10M小于100M的文件。
(3)按文件类型去查找:sudo find + 查找的目录 + -type + f/d/b/c/s/p/l 找到所有目录下文件类型为设置参数的文件。参数f为普通文件。
15. 按文件的内容查找文件 (grep命令)
grep -r “查找的内容” + “查找的路径” 在路径下的所有文件中找其内容里含有“查找的内容”的所有文件。
例:sudo grep -r "stdio.h" ~ 在家目录下找其内容中有“stdio.h”的所有文件。
16. 软件的安装和卸载
软件列表中保存着软件名字和其对应的下载地址,更新软件列表是从官方服务器更新。在下载安装软件之前,最好更新软件列表,以便在安装软件时可以顺利从软件列表中找到其下载地址进而下载安装。