一、目录结构
1.Windows文件系统
看到的是一个个驱动器盘符,例如:C盘,D盘等
每个驱动器都有自己的根目录结构,形成了树结构
2.Linux文件系统
ubuntu没有盘符这个概念,只有一个根目录 :/,所有目录和文件都存放在/的下面
注意:在Linux系统下所有的内容都被视为文件,目录也被视为文件
ls -l #查看当前路径下文件的详细信息 ls -l / #查看根目录下的详细信息
Linux目录结构: / : 根目录 #Linux下的根目录有且只有一个,在终端输入/home,就是告诉电脑,从根目录开始,进入home目录 /boot : boot配置文件、内核和其它启动时所需的文件 /etc :存放系统配置有关的文件 #用户信息都存放在etc目录下【修改用户名和密码】 /home :存放普通用户目录 #ls /home/ 列出home下所有的普通用户 /mnt :硬盘上手动挂载的文件系统 #挂载:把硬盘连接在文件系统上【类似于大卡车车厢挂载在车头上】 #注意:默认是空的 /media :自动挂载(加载)的硬盘分区以及类似CD、数码相机等可移动介质。 /cdrom :挂载光盘 /opt : 存放一些可选程序,如某个程序测试版本,安装到该目录的程序的所有数据,库文件都存在同个目录下 /root : 系统管理员的目录,对于系统来说,系统管理员好比上帝 #可以对系统做任何的操作,比如删除文件,一般情况下尽量少使用root用户 #可以通过命令使得普通用户享有root用户的权限 /bin :存放常用的程序文件 #binary,二进制文件或者命令文件 /sbin :系统管理命令,这里存放的是系统管理员使用的管理程序 /tmp :临时目录,存放临时文件 #temp,暂时的,临时目录, #注意:是一些命令或者程序产生的一些临时文件,系统会定期清理该目录下的文件 /usr :在这个目录下,你可以找到那些不适合放在/bin或/etc目录下的额外的工具。比如游戏、打印工具等。/usr目录包含了许多子目录: /usr/bin目录用于存放程序; /usr/share用于存放一些共享的数据,比如音乐文件或者图标等等; /usr/lib目录用于存放那些不能直接 运行的,但却是许多程序运行所必需的一些函数库文件。 /usr/local : 这个目录一般是用来存放用户自编译安装软件的存放目录;一般是通过源码包安装的软件,如果没有特别指定安装目录的话,一般是安装在这个目录中。 /usr/bin/ 非必要可执行文件 (在单用户模式中不需要);面向所有用户。 /usr/include/ 标准包含文件。 /usr/lib/ /usr/bin/和/usr/sbin/中二进制文件的库。 /usr/sbin/ 非必要的系统二进制文件,例如:大量网络服务的守护进程。 /usr/share/ 体系结构无关(共享)数据。 /usr/src/ 源代码,例如:内核源代码及其头文件。 /usr/X11R6/ X Window系统 版本 11, Release 6. /usr/local/ 本地数据的第三层次,具体到本台主机。通常而言有进一步的子目录, 例如:bin/、lib/、share/. /var :该目录存放那些经常被修改的文件,包括各种日志、数据文件; /var/cache/ 应用程序缓存数据。这些数据是在本地生成的一个耗时的I/O或计算结果。应用程序必须能够再生或恢复数据。缓存的文件可以被删除而不导致数据丢失。 /var/lib/ 状态信息。 由程序在运行时维护的持久性数据。 例如:数据库、包装的系统元数据等。 /var/lock/ 锁文件,一类跟踪当前使用中资源的文件。 /var/log/ 日志文件,包含大量日志文件。 /var/mail/ 用户的电子邮箱。 /var/run/ 自最后一次启动以来运行中的系统的信息,例如:当前登录的用户和运行中的守护进程。现已经被/run代替[13]。 /var/spool/ 等待处理的任务的脱机文件,例如:打印队列和未读的邮件。 /var/spool/mail/ 用户的邮箱(不鼓励的存储位置) /var/tmp/ 在系统重启过程中可以保留的临时文件。 /lib : 目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件。这些文件包含了可被许多程序共享的代码,以避免每个程序都包含有相同的子程序的副本,故可以使得可执行文件变得更小,节省空间。 /lib32 : 同上 /lib64 : 同上 /lost+found : 该目录在大多数情况下都是空的。但当突然停电、或者非正常关机后,有些文件就临时存放在; /dev : 存放设备文件 /run :代替/var/run目录, /proc : 虚拟文件系统,可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的,该目录的内容不在硬盘上而在内存里; cat /proc/cpuinfo /sys : 和proc一样,虚拟文件系统,可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的,该目录的内容不在硬盘上而在内存里;
补充:
. 代表当前目录 .. 代表上一级目录 注意:根目录下.和..都代表当前目录 相对路径和绝对路径 相对路径:从当前位置开始描述的路径 绝对路径:从/目录开始描述的路径
演示命令: yangyang@yangyang-virtualmachine:~$ ls -l 总用量 40 drwxr-xr-x 3 yangyang rock 4096 6月 26 02:23 Desktop drwxr-xr-x 2 yangyang rock 4096 7月 18 2017 Documents drwxr-xr-x 2 yangyang rock 4096 3月 25 22:05 Downloads drwxr-xr-x 2 yangyang rock 4096 7月 18 2017 Music drwxr-xr-x 2 yangyang rock 4096 7月 18 2017 Pictures drwxr-xr-x 2 yangyang rock 4096 7月 18 2017 Public drwxrwxr-x 3 yangyang rock 4096 3月 25 22:43 PycharmProjects drwxrwxr-x 3 yangyang rock 4096 3月 25 22:37 Software drwxr-xr-x 2 yangyang rock 4096 7月 18 2017 Templates drwxr-xr-x 2 yangyang rock 4096 7月 18 2017 Videos yangyang@yangyang-virtualmachine:~$ pwd /home/yangyang yangyang@yangyang-virtualmachine:~$ ls -l / 总用量 100 drwxr-xr-x 2 root root 4096 3月 25 22:26 bin drwxr-xr-x 3 root root 4096 6月 26 18:01 boot drwxrwxr-x 2 root root 4096 7月 18 2017 cdrom drwxr-xr-x 19 root root 4020 6月 26 18:01 dev drwxr-xr-x 137 root root 12288 6月 26 18:10 etc drwxr-xr-x 3 root root 4096 6月 26 17:58 home lrwxrwxrwx 1 root root 33 3月 25 22:28 initrd.img -> boot/initrd.img-4.13.0-37-generic yangyang@yangyang-virtualmachine:~$ ls /mnt/ yangyang@yangyang-virtualmachine:~$ pwd /home/yangyang yangyang@yangyang-virtualmachine:~$ cd Desktop/ #相对路径 yangyang@yangyang-virtualmachine:~/Desktop$ cd . yangyang@yangyang-virtualmachine:~/Desktop$ cd .. yangyang@yangyang-virtualmachine:~$ cd /home/yangyang/Desktop/ #绝对路径 yangyang@yangyang-virtualmachine:~/Desktop$ cd .. yangyang@yangyang-virtualmachine:~$ cd Desktop/ #相对路径 yangyang@yangyang-virtualmachine:~/Desktop$
二、快捷键
ctrl + shift + + :放大字体,放大终端窗口 ctrl + - :缩小字体 ctrl + alt:显示鼠标 ctrl + alt + t :快速打开终端 tab :命令行自动补全 箭头上下键:翻看已经执行过的命令 ctrl + f :前进一个字符 ctrl + b:后退一个字符 ctrl + a:回到行首 ctrl + e:回到行尾 ctrl + w: 向左删除一个单词 ctrl + u:向左删除全部单词 ctrl + k:向右删除全部单词 ctrl + y:将ctrl + w,ctrl + u,ctrl + k删除的结果恢复 ctrl + l:清屏【并不是真正意义上的清屏,只是将历史记录向上翻一页】 ctrl + c:中断执行 ctrl + d:退出终端
三、安装软件
1.apt
软件管理 apt ( Advanced Packaging Tool ) , 他可以自动下载、配置、安装软件包
apt-cache search package 搜索包 apt-cache show package 获取包的相关信息,如说明、大小、版本等 sudo apt-get install package 安装包 sudo apt-get install package –reinstall 重新安装包 sudo apt-get -f install 强制安装 sudo apt-get remove package 删除包 sudo apt-get remove package –purge 删除包,包括删除配置文件等 sudo apt-get autoremove 自动删除不需要的包 sudo apt-get update 更新源 sudo apt-get upgrade 更新已安装的包 sudo apt-get dist-upgrade 升级系统 sudo apt-get dselect-upgrade 使用 dselect 升级 apt-cache depends package 了解使用依赖 apt-cache rdepends package 了解某个具体的依赖 sudo apt-get build-dep package 安装相关的编译环境 apt-get source package 下载该包的源代码 sudo apt-get clean && sudo apt-get autoclean 清理下载文件的存档 sudo apt-get check 检查是否有损坏的依赖
apt的配置文件
/etc/apt/sources.list 设置软件包的获取来源 /etc/apt/apt.conf apt配置文件 /etc/apt/apt.conf.d apt的零碎配置文件 /etc/apt/preferences 版本参数 /var/cache/apt/archives/partial 存放正在下载的软件包 /var/cache/apt/archives 存放已经下载的软件包 /var/lib/apt/lists 存放已经下载的软件包详细信息 /var/lib/apt/lists/partial 存放正在下载的软件包详细信息
2.dpkg
dpkg是Debian软件包管理器的基础,被用于安装、卸载和供给和.deb软件包相关的信息,dpkg本身是一个底层的工具,本身并不能从远程包仓库下载包以及处理包的依赖的关系,需要将包从远程下载后再安装
dpkg -i package.deb 安装包 dpkg -r package 删除包 dpkg -P package 删除包(包括配置文件) dpkg -L package 列出与该包关联的文件 dpkg -l package 显示该包的版本 dpkg –unpack package.deb 解开 deb 包的内容 dpkg -S keyword 搜索所属的包内容 dpkg -l 列出当前已安装的包 dpkg -c package.deb 列出 deb 包的内容 dpkg –configure package 配置包
五、常用命令
1.概述
语法:
command options parameters
command :命令名称
options :选项,可以对命令进行控制,根据具体需求可写可不写
parameters:传给命令的参数,根据具体需求可写可不写,也可以写多个
2.查看帮助文档
1>--help
作用:Linux命令自带的帮助信息
演示命令: yangyang@yangyang-virtualmachine:~$ ls --help yangyang@yangyang-virtualmachine:~$ cd --help
2>man
作用:相当于一个手册,包含了大多数的命令以及命令的使用方式
man命令中常用的按键 空格键 向下翻页 上下方向键 向上或者向下翻一行 fn + 左方向键 回到首页 fn + 右方向键 回到尾页 /xxx 从上到下进行搜索和指定关键字有关的内容 ?xxx 从上到下进行搜索和指定关键字有关的内容 n 定位到下一个搜索到的关键字 N 定位到上一个搜索到的关键字 q 退出帮助文档 演示命令: yangyang@yangyang-virtualmachine:~$ man ls
3>history 查看执行过的命令
当系统执行过一些命令之后,可以通过上下键翻看以前的命令,history将执行过的命令列举出来
history 显示最近1000条记录
history 5 显示最后5条命令
!number number 是history每条命令前面的编号,直接使用表示执行对应的命令
演示命令: yangyang@yangyang-virtualmachine:~$ history #显示最近1000条记录 yangyang@yangyang-virtualmachine:~$ history 5 #显示最后5条命令 958 cd .. 959 ls 960 pwd 961 history 962 history 5 yangyang@yangyang-virtualmachine:~$ !951 #指定编号对应的命令 cd Desktop/ yangyang@yangyang-virtualmachine:~/Desktop$
补充:
#查看历史命令的记录 #命令不会一直保存下去,最多只会显示1000条,查看信息: 演示命令: angyang@yangyang-virtualmachine:~/Desktop$ cat ~/.bashrc | grep -i hist # don't put duplicate lines or lines starting with space in the history. HISTCONTROL=ignoreboth # append to the history file, don't overwrite it shopt -s histappend # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) HISTSIZE=1000 #最多显示的条数 HISTFILESIZE=2000 #执行过的命令都会存放在一个文件中,这个文件中最多存放2000条 alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
#查看命令保存的位置 演示命令: yangyang@yangyang-virtualmachine:~/Desktop$ ls -a ~/.bash* /home/yangyang/.bash_history #存放历史命令的文件 /home/yangyang/.bashrc #存放详细信息的文件 /home/yangyang/.bash_logout #存放日志的文件 yangyang@yangyang-virtualmachine:~/Desktop$ gedit /home/yangyang/.bash_history #打开文件 yangyang@yangyang-virtualmachine:~/Desktop$
3.文件管理
1>ls:列举出当前工作目录的内容【list】
-a 用于显示所有文件和子目录(包括隐藏文件) -A 同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录) -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。 (文件大小是字节) -lh 与-l 类似 只不过文件大小显示的是 KB [默认是按照文件名的 abcd 排序的] -lht 与-l -lh 类似 排序是按照修改时间降序排的 -lhtr 按照时间升序排 -r 将目录的内容清单以英文字母顺序的逆序显示 -t 按文件修改时间进行排序 -F 在列出的文件名和目录名后添加标志。例如,在可执行文件后添加“*”,在目录名后添加“/”以区分不同的类型 -R 如果目标目录及其子目录中有文件,就列出所有的文件 补充 #[1位目录还是文件][9位权限][硬链接个数][用户名][主机名][文件大小][时间][文件名] drwxr-xr-x 2 yangyang rock 4096 6月 5 21:41 Desktop 一、文件类型 #第一位代表的是文件类型: - 代表是文件 d 代表目录 b 块设备文件 c 字符设备文件 l 链接文件 p 管道文件 s socket文件 二、文件权限 #第二位到十位是文件的权限 权限共九位,分三组,每三个一组 rwx r read 可读权限,可以用数字4表示 w write 可写权限,可以用数字2表示 x execute 可执行权限,可以用数字1表示 - 表示没有相应权限,可以用数字0表示 取值范围为0-7 -0 代表什么权限都没有 -1 文件只能执行 -2 文件只有写权限 -3 文件可写可执行 -4 只读权限 -5 可读可执行 -6 可读可写 -7 可读可写可执行 三、文件和目录的权限类型 对于文件而言: 可读权限表示允许读其内容,禁止对其做任何的更改操作 可写权限表示可以修改编辑文件的内容或者删除文件(要有文件所在目录的写权限) 可执行表示允许将文件作为一个程序执行 对目录而言: 可读权限表示允许显示该目录中的内容 #ls内部内容 可写权限表示可以在该目录中新建,删除,重命名文件 #vi xx 可执行权限表示可以进入该目录,可执行是基本权限,如果没有它,就进不了 四、硬链接的个数 #第二列一位代表硬链接的个数 五、表示组 #第三列表示组 分三个组: 代表当前用户的权限[user] 代表用户所属组的权限[group] 代表其他组的权限[other]
演示命令: yangyang@yangyang-virtualmachine:~$ ls Desktop Downloads Pictures PycharmProjects Templates Documents Music Public Software Videos yangyang@yangyang-virtualmachine:~$ ls /home/yangyang Desktop Downloads Pictures PycharmProjects Templates Documents Music Public Software Videos yangyang@yangyang-virtualmachine:~$ ls Desktop/ vmware-tools-distrib VNC-Server-6.1.1-Linux-x64.deb VNC-6.1.1-Linux-x64-DEB.tar.gz yangyang@yangyang-virtualmachine:~$ ls -a . Documents .mysql_history .sogouinput .. Downloads .nano .sudo_as_admin_successful .apport-ignore.xml .gconf .pam_environment .sunpinyin .bash_history .gnome Pictures Templates .bash_logout .gnupg .pki Videos .bashrc .ICEauthority .presage .viminfo .cache .java .profile .virtualenvs .compiz .lesshst Public .vnc .config .local .PyCharm2017.3 .Xauthority .dbus .mozilla PycharmProjects .xinputrc Desktop Music .python_history .xsession-errors .dmrc .mysql Software .xsession-errors.old yangyang@yangyang-virtualmachine:~$ ls -A .apport-ignore.xml .java .python_history .bash_history .lesshst Software .bash_logout .local .sogouinput .bashrc .mozilla .sudo_as_admin_successful .cache Music .sunpinyin .compiz .mysql Templates .config .mysql_history Videos .dbus .nano .viminfo Desktop .pam_environment .virtualenvs .dmrc Pictures .vnc Documents .pki .Xauthority Downloads .presage .xinputrc .gconf .profile .xsession-errors .gnome Public .xsession-errors.old .gnupg .PyCharm2017.3 .ICEauthority PycharmProjects yangyang@yangyang-virtualmachine:~$ ls -l #显示文件详细信息 总用量 40 drwxr-xr-x 3 yangyang rock 4096 6月 26 02:23 Desktop drwxr-xr-x 2 yangyang rock 4096 7月 18 2017 Documents drwxr-xr-x 2 yangyang rock 4096 3月 25 22:05 Downloads drwxr-xr-x 2 yangyang rock 4096 7月 18 2017 Music drwxr-xr-x 2 yangyang rock 4096 7月 18 2017 Pictures drwxr-xr-x 2 yangyang rock 4096 7月 18 2017 Public drwxrwxr-x 3 yangyang rock 4096 3月 25 22:43 PycharmProjects drwxrwxr-x 3 yangyang rock 4096 3月 25 22:37 Software drwxr-xr-x 2 yangyang rock 4096 7月 18 2017 Templates drwxr-xr-x 2 yangyang rock 4096 7月 18 2017 Videos yangyang@yangyang-virtualmachine:~$ ls -lh #以k为单位,显示详细信息 yangyang@yangyang-virtualmachine:~$ ls -r #以文件名倒序 Videos Software Public Music Documents Templates PycharmProjects Pictures Downloads Desktop yangyang@yangyang-virtualmachine:~$ ls -lt #以时间排序 Desktop Software Documents Pictures Templates PycharmProjects Downloads Music Public Videos yangyang@yangyang-virtualmachine:~$ ls -F #目录后面会显示/ Desktop/ Downloads/ Pictures/ PycharmProjects/ Templates/ Documents/ Music/ Public/ Software/ Videos/ yangyang@yangyang-virtualmachine:~$ ls -R #将目录及其子目录一并显示 .: Desktop Downloads Pictures PycharmProjects Templates Documents Music Public Softw
2>pwd 查看当前的工作目录[print working directory]
演示命令: yangyang@yangyang-virtualmachine:~$ pwd /home/yangyang
3>查看文件
cat:查看完整的文件内容 -n :显示每一行的行号,包括空行 -b :显示每一行的行号,不包括空行 #使用文件内容较少的情况下使用cat head:查看文件内容 tail:查看文件内容 less:查看文件 more:查看文件 #使用文件内容较少的情况下使用more wc:一次显示文件行数,字节数以及文件名信息 stat:查看文件详细信息,可以获取文件的文件名、大小、权限,最近访问以及最近更改的时间,stat命令的输出信息比ls命令还要详细 file:查看文件的类型 echo:用于在终端输出字符串或变量的值 |:管道,作用:将一个命令的输出作为另一个命令的输入,格式:命令1 | 命令2 **** >:输出重定向,Linux允许将执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中 #清空源文件 >>:输出重定向,Linux允许将执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中 1> 标准正确输出,同上 1>> 标准正确输出,同上 #追加不清空 2> 标准错误输出,同上 2>> 标准错误输出,同上 &> 标准正确输出和标准错误输出,同上 将1和2结合在一起了 演示命令: yangyang@yangyang-virtualmachine:~$ cd Desktop/ yangyang@yangyang-virtualmachine:~/Desktop$ ls aaa.txt VNC-6.1.1-Linux-x64-DEB.tar.gz vmware-tools-distrib VNC-Server-6.1.1-Linux-x64.deb yangyang@yangyang-virtualmachine:~/Desktop$ cat aaa.txt hfuiewhg less:查看文件 head:查看文件内容 tail:查看文件内容 less:查看文件 more:查看文件 wc:一次显示文件行数,字节数以及文件名信息 stat:查看文件详细信息,可以获取文件的文件名、大小、权限,最近访问以及最近更改的时间,stat命令的输出信息比ls命令还要详细 file:查看文件的类型 echo:用于在终端输出字 yangyang@yangyang-virtualmachine:~/Desktop$ cat -n aaa.txt 1 hfuiewhg 2 less:查看文件 3 head:查看文件内容 4 tail:查看文件内容 5 less:查看文件 6 more:查看文件 7 wc:一次显示文件行数,字节数以及文件名信息 8 stat:查看文件详细信息,可以获取文件的文件名、大小、权限,最近访问以及最近更改的时间,stat命令的输出信息比ls命令还要详细 9 file:查看文件的类型 10 echo:用于在终端输出字 yangyang@yangyang-virtualmachine:~/Desktop$ cat -b aaa.txt 1 hfuiewhg 2 less:查看文件 3 head:查看文件内容 4 tail:查看文件内容 5 less:查看文件 6 more:查看文件 7 wc:一次显示文件行数,字节数以及文件名信息 8 stat:查看文件详细信息,可以获取文件的文件名、大小、权限,最近访问以及最近更改的时间,stat命令的输出信息比ls命令还要详细 9 file:查看文件的类型 10 echo:用于在终端输出字 yangyang@yangyang-virtualmachine:~/Desktop$ head aaa.txt hfuiewhg less:查看文件 head:查看文件内容 tail:查看文件内容 less:查看文件 more:查看文件 wc:一次显示文件行数,字节数以及文件名信息 stat:查看文件详细信息,可以获取文件的文件名、大小、权限,最近访问以及最近更改的时间,stat命令的输出信息比ls命令还要详细 file:查看文件的类型 echo:用于在终端输出字 yangyang@yangyang-virtualmachine:~/Desktop$ head -2 aaa.txt hfuiewhg less:查看文件 yangyang@yangyang-virtualmachine:~/Desktop$ tail aaa.txt hfuiewhg less:查看文件 head:查看文件内容 tail:查看文件内容 less:查看文件 more:查看文件 wc:一次显示文件行数,字节数以及文件名信息 stat:查看文件详细信息,可以获取文件的文件名、大小、权限,最近访问以及最近更改的时间,stat命令的输出信息比ls命令还要详细 file:查看文件的类型 echo:用于在终端输出字 yangyang@yangyang-virtualmachine:~/Desktop$ tail -2 aaa.txt file:查看文件的类型 echo:用于在终端输出字 yangyang@yangyang-virtualmachine:~/Desktop$ less aaa.txt yangyang@yangyang-virtualmachine:~/Desktop$ more aaa.txt hfuiewhg less:查看文件 head:查看文件内容 tail:查看文件内容 less:查看文件 more:查看文件 wc:一次显示文件行数,字节数以及文件名信息 stat:查看文件详细信息,可以获取文件的文件名、大小、权限,最近访问以及最近更改的 时间,stat命令的输出信息比ls命令还要详细 file:查看文件的类型 echo:用于在终端输出字 yangyang@yangyang-virtualmachine:~/Desktop$ wc aaa.txt #统计字符信息 #行数 单词数 字节数 文件名 10 10 421 aaa.txt yangyang@yangyang-virtualmachine:~/Desktop$ stat aaa.txt #文件状态 文件:'aaa.txt' 大小:421 块:8 IO 块:4096 普通文件 设备:801h/2049d Inode:572338 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 1000/yangyang) Gid:( 1000/ rock) 最近访问:2018-06-27 11:35:53.174601466 +0800 最近更改:2018-06-27 11:34:31.286596606 +0800 最近改动:2018-06-27 11:34:31.290596607 +0800 创建时间:- yangyang@yangyang-virtualmachine:~/Desktop$ file aaa.txt #查看文件类型 aaa.txt: UTF-8 Unicode text yangyang@yangyang-virtualmachine:~/Desktop$ echo "today is a good day" #终端输出 today is a good day yangyang@yangyang-virtualmachine:~/Desktop$ ls aaa.txt VNC-6.1.1-Linux-x64-DEB.tar.gz vmware-tools-distrib VNC-Server-6.1.1-Linux-x64.deb yangyang@yangyang-virtualmachine:~/Desktop$ ls > bbb.txt #将ls结果,输入到bbb.txt中 yangyang@yangyang-virtualmachine:~/Desktop$ cat aaa.txt hfuiewhg less:查看文件 head:查看文件内容 tail:查看文件内容 less:查看文件 more:查看文件 wc:一次显示文件行数,字节数以及文件名信息 stat:查看文件详细信息,可以获取文件的文件名、大小、权限,最近访问以及最近更改的时间,stat命令的输出信息比ls命令还要详细 file:查看文件的类型 echo:用于在终端输出字 yangyang@yangyang-virtualmachine:~/Desktop$ cat aaa.txt > bbb.txt yangyang@yangyang-virtualmachine:~/Desktop$
4>tree 以树形结构去显示目录结构
注意:默认情况下是当前路径下的所有文件的显示
-d 只显示文件夹 -f 显示文件的完整路径 -L 2 :只看前两级的内容 演示命令: yangyang@yangyang-virtualmachine:~/Desktop$ tree #如果不能使用tree,那么需要执行 sudo apt-get install tree安装 yangyang@yangyang-virtualmachine:~/Desktop$ tree -d yangyang@yangyang-virtualmachine:~/Desktop$ tree -f yangyang@yangyang-virtualmachine:~/Desktop$ tree -L 2
5>cd 切换工作目录【change diretory】
用法:cd 路径[此处可以是相对路径,也可以是绝对路径] ****** 特殊用法: cd 切换到当前用户的主目录,用户登录的时候,默认的目录就是用户的主目录 cd ~ 切换到当前用户的主目录 cd . 切换到当前目录 cd .. 切换到上一级目录 ******* cd - 返回上一次切换的目录 cd # 回到当前用户的主目录 演示命令: yangyang@yangyang-virtualmachine:~/Desktop$ cd /home/yangyang yangyang@yangyang-virtualmachine:~$ cd yangyang@yangyang-virtualmachine:~$ cd ~ yangyang@yangyang-virtualmachine:~$ cd Desktop/ yangyang@yangyang-virtualmachine:~/Desktop$ cd - /home/yangyang yangyang@yangyang-virtualmachine:~$ cd Desktop/
6>mv 移动或者重命名文件或者目录
注意:如果目标是文件,则表示重命名
如果目标是目录,则表示移动
命令格式:mv [参数] 源文件 [目标路径|目标文件名] ------》可以cd到【文件所在路径下】或者【直接通过路径指明文件】 -i 在目标文件存在的时候会询问是否要覆盖 -b 当目标文件存在的时候,不会进行询问直接覆盖 演示命令: #将aaa.txt重命名 yangyang@yangyang-virtualmachine:~/Desktop$ mv aaa.txt abc.txt #将bbb.txt bbb1.txt bbb2.txt移动到dir1目录中 yangyang@yangyang-virtualmachine:~/Desktop$ mv bbb.txt bbb1.txt bbb2.txt dir1/ #将abc.txt移动到dir1目录中,重名时会询问 yangyang@yangyang-virtualmachine:~/Desktop$ mv -i abc.txt dir1/ mv:是否覆盖'dir1/abc.txt'? y #重名时,不会询问 yangyang@yangyang-virtualmachine:~/Desktop$ mv -b abc.txt dir1/
7>cp 复制文件或者目录
命令格式:cp [参数] 源文件 目标文件 -i 在目标文件存在的时候会询问是否要覆盖【交互式复制】 -r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名 -a 复制的时候保持文件原有属性 -f 对于已经存在的目标文件不提示 -v 显示拷贝进度 演示命令: yangyang@yangyang-virtualmachine:~$ cd Desktop/ yangyang@yangyang-virtualmachine:~/Desktop$ cp -i abc.txt dir1/ cp:是否覆盖'dir1/abc.txt'? n #交互式复制 复制abc.txt到dir1目录中,询问是否覆盖 yangyang@yangyang-virtualmachine:~/Desktop$ cp dir1 dir2/ cp: 略过目录'dir1' yangyang@yangyang-virtualmachine:~/Desktop$ cp dir1 dir2 cp: 略过目录'dir1' yangyang@yangyang-virtualmachine:~/Desktop$ cp -r dir1 dir2/ #如果复制目录,则一定要-r yangyang@yangyang-virtualmachine:~/Desktop$ cp -v abc.txt dir2/ #拷贝时,会显示当前拷贝的文件 'abc.txt' -> 'dir2/abc.txt'
8>创建文件或者目录
8.1>mkdir 创建一个新的目录 【make directory】 -p:创建出具有嵌套层关系的文件目录 8.2>touch 创建空白文件,可以设置文件的时间 名词解释: atime:最后一次访问文件或目录的时间【access time】 mtime:最后一次修改内容的时间【modify time】 ctime :最后一次改变属性的时间【change time】 参数: -a 修改atime -m 修改mtime -c 修改ctime -d 同时修改atime与mtime -t 同时修改atime与mtime,格式{YYYYMMDDhhmm} 注意:只有-d和-t后面可以指定时间,其他的只能把时间修改为当前时间 演示命令: yangyang@yangyang-virtualmachine:~/Desktop$ mkdir check #创建单层目录 yangyang@yangyang-virtualmachine:~/Desktop$ mkdir -p a/b/c/d #创建多级目录 yangyang@yangyang-virtualmachine:~/Desktop$ mkdir -p b/{c,d}/{e,f,g} yangyang@yangyang-virtualmachine:~/Desktop$ touch file1.txt yangyang@yangyang-virtualmachine:~/Desktop$ touch -m file2.txt
9>删除文件或者目录
9.1>rmdir 删除给定的目录,注意:只能删除空文件夹 9.2>rm 删除文件或者目录,可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下面所有子文件和目录都删掉 -r 删除目录,否则删不掉 -ri 交互式删除,每次删除都会进行询问 -rf 强制删除文件或目录 演示命令: angyang@yangyang-virtualmachine:~/Desktop$ rmdir check yangyang@yangyang-virtualmachine:~/Desktop$ rmdir b rmdir: 删除 'b' 失败: 目录非空 yangyang@yangyang-virtualmachine:~/Desktop$ rm -r dir1 yangyang@yangyang-virtualmachine:~/Desktop$ rm -ri dir2 rm:是否进入目录'dir2'? y #交互式删除 rm:是否进入目录'dir2/dir1'? y rm:是否删除普通文件 'dir2/dir1/bbb1.txt'? y rm:是否删除普通文件 'dir2/dir1/abc.txt'? ^C #control + c中断执行 yangyang@yangyang-virtualmachine:~/Desktop$ rm -rf a #强制删除目录 yangyang@yangyang-virtualmachine:~/Desktop$ rm -rf file1.txt #强制删除文件
10>ln 建立链接文件
注意:建立链接文件相当于windows上创建一个快捷方式
分类:
软链接:不占用磁盘空间的,源文件删除则软连接失效【-s】
硬链接:可以占用磁盘空间,源文件删除对硬链接没有影响,
注意:只能链接普通文件,不能链接目录
演示命令: #软连接 yangyang@yangyang-virtualmachine:~/Desktop$ rm -rf * yangyang@yangyang-virtualmachine:~/Desktop$ touch a.txt yangyang@yangyang-virtualmachine:~/Desktop$ ls a.txt #创键一个软链接a,指向a.txt #这个a.txt 和a的内容一样 yangyang@yangyang-virtualmachine:~/Desktop$ ln -s a.txt a yangyang@yangyang-virtualmachine:~/Desktop$ ll 总用量 8 drwxr-xr-x 2 yangyang rock 4096 6月 27 15:21 ./ drwxr-xr-x 31 yangyang rock 4096 6月 27 14:35 ../ lrwxrwxrwx 1 yangyang rock 5 6月 27 15:21 a -> a.txt -rw-r--r-- 1 yangyang rock 0 6月 27 15:19 a.txt yangyang@yangyang-virtualmachine:~/Desktop$ cat a.txt fhuwegjawhg hello html linux fjeehdgjsehdg yangyang@yangyang-virtualmachine:~/Desktop$ cat a fhuwegjawhg hello html linux fjeehdgjsehdg yangyang@yangyang-virtualmachine:~/Desktop$ cat a.txt fhuwegjawhg hello html linux fjeehdgjsehdg 462527568357628 yangyang@yangyang-virtualmachine:~/Desktop$ rm a.txt yangyang@yangyang-virtualmachine:~/Desktop$ cat a cat: a: 没有那个文件或目录 #硬链接 yangyang@yangyang-virtualmachine:~/Desktop$ touch a.txt yangyang@yangyang-virtualmachine:~/Desktop$ rm a yangyang@yangyang-virtualmachine:~/Desktop$ ln a.txt a #创键硬链接 yangyang@yangyang-virtualmachine:~/Desktop$ cat a.txt hfijehgwahg hgjehgjwagd hjaehdg yangyang@yangyang-virtualmachine:~/Desktop$ cat a hfijehgwahg hgjehgjwagd hjaehdg yangyang@yangyang-virtualmachine:~/Desktop$ cat a.txt hfijehgwahg hgjehgjwagd hjaehdg 64723882 yangyang@yangyang-virtualmachine:~/Desktop$ cat a hfijehgwahg hgjehgjwagd hjaehdg 64723882 yangyang@yangyang-virtualmachine:~/Desktop$ ll 总用量 16 drwxr-xr-x 2 yangyang rock 4096 6月 27 15:27 ./ drwxr-xr-x 31 yangyang rock 4096 6月 27 14:35 ../ -rw-r--r-- 2 yangyang rock 41 6月 27 15:28 a -rw-r--r-- 2 yangyang rock 41 6月 27 15:28 a.txt yangyang@yangyang-virtualmachine:~/Desktop$ rm a.txt yangyang@yangyang-virtualmachine:~/Desktop$ cat a hfijehgwahg hgjehgjwagd hjaehdg 64723882 【总结】 对于软连接而言,如果软连接和源文件不在同一个目录下,则原文件使用绝对路径,不能使用相对路径 对于硬链接而言,两个文件占用相同大小的磁盘空间,如果源文件被删除,硬链接不受任何影响,正常使用 软连接是常见的形式
11>grep 文本搜索
强大的文本搜索工具,grep允许对文本文件进行模式查找,如果找到匹配模式,grep打印包含模式的所有行 注意:搜索内容串可以是正则表达式 -c:返回匹配到的数目 -i:忽略大小写 -n:显示匹配行以及行号 -v:反向选择,列出没有关键词的行【求反】 演示命令: yangyang@yangyang-virtualmachine:~$ cd Desktop/ yangyang@yangyang-virtualmachine:~/Desktop$ touch a.txt yangyang@yangyang-virtualmachine:~/Desktop$ touch a1.txt yangyang@yangyang-virtualmachine:~/Desktop$ touch a2.txt yangyang@yangyang-virtualmachine:~/Desktop$ ls a a1.txt a2.txt a.txt yangyang@yangyang-virtualmachine:~/Desktop$ ls | grep a1.txt a1.txt #以ls的输出作为grep的输入,进行检索 yangyang@yangyang-virtualmachine:~/Desktop$ ls | grep a a #检索桌面上文件名中包含a的文件 a1.txt a2.txt a.txt yangyang@yangyang-virtualmachine:~/Desktop$ touch b.txt yangyang@yangyang-virtualmachine:~/Desktop$ ls a a1.txt a2.txt a.txt b.txt yangyang@yangyang-virtualmachine:~/Desktop$ ls | grep a a a1.txt a2.txt a.txt yangyang@yangyang-virtualmachine:~/Desktop$ ls | grep -c a #计数 4 yangyang@yangyang-virtualmachine:~/Desktop$ ls | grep -n a #显示行号 1:a 2:a1.txt 3:a2.txt 4:a.txt yangyang@yangyang-virtualmachine:~/Desktop$ ls | grep -v a b.txt #反向检索【否定】 yangyang@yangyang-virtualmachine:~/Desktop$ cat a.txt yuieqwhfije fhhjeanf hfjaehdgj hello yangyang@yangyang-virtualmachine:~/Desktop$ cat a.txt | grep a fhhjeanf #检索a.txt文件中包含a的内容 hfjaehdgj
12>which 查找其他命令所在的位置
注意:显示其他指定命令的路径
演示命令: yangyang@yangyang-virtualmachine:~/Desktop$ which ls /bin/ls yangyang@yangyang-virtualmachine:~/Desktop$ which cd yangyang@yangyang-virtualmachine:~/Desktop$ which cat /bin/cat yangyang@yangyang-virtualmachine:~/Desktop$ which pwd /bin/pwd yangyang@yangyang-virtualmachine:~/Desktop$ which ll #注意:如果是封装的命令,查找不到位置,比如上面的cd和ll
13>type 寻找命令所在的位置,包括命令别名
-a:可以找到所有,包括别名和位置 #type和which的区别:type列出别名和位置,which列出位置 演示命令: yangyang@yangyang-virtualmachine:~/Desktop$ type ls ls 是 `ls --color=auto' 的别名 yangyang@yangyang-virtualmachine:~/Desktop$ type -a ls ls 是 `ls --color=auto' 的别名 ls 是 /bin/ls
14>find 按照指定条件来查找文件
格式:find 【查找路径】 【查找方式】 【查找条件】 -name:匹配名称,默认是精确匹配 -size:匹配文件大小 -atime -n +n:匹配访问内容的时间(-n指n天以内,+n指n天以前) -empty 演示命令: yangyang@yangyang-virtualmachine:~/Desktop$ ls a a1.txt a2.txt a.txt b.txt yangyang@yangyang-virtualmachine:~/Desktop$ find -name a1.txt ./a1.txt #查找文件名为a1.txt的文件 yangyang@yangyang-virtualmachine:~/Desktop$ find -size 1k ./a.txt #查找文件大小等于1k的文件 ./a yangyang@yangyang-virtualmachine:~/Desktop$ find -size +1k . #查找文件大小大于1k的文件 yangyang@yangyang-virtualmachine:~/Desktop$ find -size -1k ./b.txt #查找文件大小小于1k的文件 ./a2.txt ./a1.txt yangyang@yangyang-virtualmachine:~/Desktop$ find -empty #查找空文件 ./b.txt ./a2.txt ./a1.txt
15>locate 查找数据
-i:忽略大小写 -c:不输出寻找结果,仅计算找到的文件数量 -l:仅输出指定的几行, 例如:-l 8,输出8行 -r:后面可以接正则表达式 演示命令: yangyang@yangyang-virtualmachine:~/Desktop$ locate hello /boot/grub/i386-pc/hello.mod #全局查找包含hello的内容 /usr/lib/grub/i386-pc/hello.mod /usr/lib/python2.7/__phello__.foo.py /usr/lib/python2.7/__phello__.foo.pyc /usr/lib/python3.5/__phello__.foo.py /usr/lib/python3.5/__pycache__/__phello__.foo.cpython-35.pyc /usr/share/doc/python3-uno/demo/hello_world_comp.py /usr/share/doc/python3-xlsxwriter/docs/_static/hello01.png /usr/share/doc/syslinux-common/asciidoc/hello.txt /usr/share/locale-langpack/en@boldquot/LC_MESSAGES/hello.mo /usr/share/locale-langpack/en@quot/LC_MESSAGES/hello.mo /usr/share/locale-langpack/en_AU/LC_MESSAGES/hello.mo /usr/share/locale-langpack/en_CA/LC_MESSAGES/hello.mo /usr/share/locale-langpack/en_GB/LC_MESSAGES/hello.mo /usr/share/locale-langpack/zh_CN/LC_MESSAGES/hello.mo yangyang@yangyang-virtualmachine:~/Desktop$ locate /etc/sh /etc/shadow /etc/shadow- /etc/shells
16>sort 给文件内容排序
-f:忽略大小写的差异,例如 A 与 a 视为编码相同; -b:忽略最前面的空格符部分; -n:使用『纯数字』进行排序(默认是以文字型态来排序的); -r:反向排序; -u:就是 uniq,表示唯一的,相同的数据中,仅出现一行代表; -t:分隔符,默认是用 [tab] 键来分隔; -k:以那个区间 (field) 来进行排序的意思 演示命令: yangyang@yangyang-virtualmachine:~/Desktop$ cat a.txt yuieqwhfije fhhjeanf hfjaehdgj hello yangyang@yangyang-virtualmachine:~/Desktop$ sort a.txt #默认按照升序排序 fhhjeanf hello hfjaehdgj yuieqwhfije yangyang@yangyang-virtualmachine:~/Desktop$ sort -t ":" -k 2 a.txt #以:为分隔符,取分隔结果中第2组进行排序 hfj:aehd:gj fhhj:ean:f hello:fhedg:fhjdg yuieq:whfij:e
17>cut 可以从一个文本文件或者文本流中提取文本列
-d :后面接分隔字符。与 -f 一起使用; -f :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思; -c :以字符 (characters) 的单位取出固定字符区间;( -连接区间 ,取的是和的意思) 演示命令: yangyang@yangyang-virtualmachine:~/Desktop$ cat a.txt yuieq:whfij:e fhhj:ean:f hfj:aehd:gj hello:fhedg:fhjdg yangyang@yangyang-virtualmachine:~/Desktop$ cut -d ":" -f 1 a.txt yuieq #提取以:为分隔符的第1个区间的数据 fhhj hfj hello yangyang@yangyang-virtualmachine:~/Desktop$ cut -c 1 a.txt y #提取第一个字符 f h h yangyang@yangyang-virtualmachine:~/Desktop$ cut -c 1,3 a.txt yi #提取第1个和第3个字符 fh hj hl yangyang@yangyang-virtualmachine:~/Desktop$ cut -c 1-3 a.txt yui #提取第1到第3个字符 fhh hfj hel
18>tee 读取标准输入的数据,并将其内容输出成文件【向指定文件中写入内容】
-a:读取原文件内容,并追加新的内容,如果不设置该选项,则新的内容直接覆盖旧的内容 演示命令: yangyang@yangyang-virtualmachine:~/Desktop$ tee a.txt ^C yangyang@yangyang-virtualmachine:~/Desktop$ tee -a a.txt fhajhf #向指定文件中追加内容 fhajhf gjfg gjfg jghqj jghqj gjrgh gjrgh ^C yangyang@yangyang-virtualmachine:~/Desktop$ cat a1.txt yangyang@yangyang-virtualmachine:~/Desktop$ tee a1.txt tuwit #向指定文件中写入内容 tuwit grehwjgh grehwjgh ^C yangyang@yangyang-virtualmachine:~/Desktop$ cat a1.txt tuwit grehwjgh yangyang@yangyang-virtualmachine:~/Desktop$ tee a1.txt a2.txt uuuu #向多个指定文件中写入内容 uuuu ppppp ppppp ^C
19>gedit 打开Linux下的文本编辑器
演示命令: yangyang@yangyang-virtualmachine:~/Desktop$ gedit #打开一个新的文本文件 yangyang@yangyang-virtualmachine:~/Desktop$ gedit a1.txt #打开一个现有的文本文件