一、目录结构【文件结构】
1.Windows文件系统
打开计算机,看到的都是一个个的驱动器盘符,比如C盘,D盘。。。。
注意:每个驱动器都有自己的根目录结构,形成了树型结构
相对路径:没有盘符
绝对路径:有盘符
2.Linux文件系统
ubuntu没有盘符这个概念,只有一个根目录:/
相对路径:从当前默认的路径开始
绝对路径:从根目录/开始的路径
注意:在Linux下,所有内容都被视为文件,目录也被视为文件
lichongchong@ubuntu01:~$ ls Desktop Downloads Pictures PycharmProjects Templates Documents Music Public Software Videos lichongchong@ubuntu01:~$ pwd /home/lichongchong lichongchong@ubuntu01:~$ cd Desktop/ #相对路径 lichongchong@ubuntu01:~/Desktop$ cd .. lichongchong@ubuntu01:~$ cd /home/lichongchong/Desktop/ #绝对路径 lichongchong@ubuntu01:~/Desktop$
Linux目录结构: / : 根目录 #在Linux下有且只有一个根目录,在终端输入/home,告诉系统,从根目录开始,查找home目录下的内容 /boot : boot 配置文件、内核和其它启动时所需的文件 #包括一些连接文件和镜像文件 /etc :存放系统配置有关的文件 #存放所有的系统管理需要的文件和子目录,用户信息都在当前目录下,包括用户名,主机名,和密码 /home :存放普通用户目录 #Linux系统是一个典型的多用户系统,是用户的主目录,每个用户都有一个自己的目录,一般该目录名是以当前用户的用户名命名的 /mnt :硬盘上手动挂载的文件系统 #挂载:把硬盘挂载在文件系统上 #mnt默认是空的,系统提供该目录让用户挂载别的临时文件,例如:挂载光驱,进入该目录就可以查看光驱中的内容 /media :自动挂载(加载)的硬盘分区以及类似CD、数码相机等可移动介质。 #会自动识别一些设备:U盘,光驱等,当识别后,会将识别的设备自动挂载到当前目录下 /cdrom :挂载光盘 /opt : 存放一些可选程序,如某个程序测试版本,安装到该目录的程序的所有数据,库文件都存在同个目录下 #默认是空的,给主机额外安装软件提供的目录,比如:安装mysql数据库,则可以被存放到该目录下 /root : 系统管理员的目录,对于系统来说,系统管理员好比上帝 #超级管理员的用户主目录 /bin :存放常用的程序文件 #binary,二进制文件,可执行的 /sbin :系统管理命令,这里存放的是系统管理员使用的管理程序 #s:super user /tmp :临时目录,存放临时文件 #temp,临时的,系统会定期清理tmp下的内容 /usr :在这个目录下,你可以找到那些不适合放在/bin或/etc目录下的额外的工具。比如游戏、打印工具等。/usr目录包含了许多子目录: #用户的很多的应用程序和文件保存在该目录下,相当于window的program files /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 : 存放设备文件 #device,设备,存放linux的外部设备 /run :代替/var/run目录, #是一个临时文件系统,存储系统启动以来的信息,当系统重启之后,其中的数据会被清除或者被覆盖 /proc : 虚拟文件系统,可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的,该目录的内容不在硬盘上而在内存里; #虚拟目录,它是系统内存的映射,可以通过该目录直接获取系统的信息,也可以修改其中的某些文件 cat /proc/cpuinfo /sys : 和proc一样,虚拟文件系统,可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的,该目录的内容不在硬盘上而在内存里; #掌握 home root etc tmp usr bin, /usr/bin :普通用户信息 sbin,/usr/sbin:超级用户信息 var:varity,日志
二、快捷键
ctrl + alt + t :快速打开终端 ctrl + shift + + :放大终端窗口,放大字体 ctrl + -:缩小终端窗口,缩小字体 tab:自动补全 ctrl + a:回到行首 ctrl + e:回到行尾 ctrl + w:删除一个单词【通过空格区分单词】 ctrl + u :删除光标左边全部的内容 ctrl + k:删除光标右边全部的内容 ctrl + y:恢复由ctrl + w,ctrl + u以及ctrl + k删除的内容 ctrl + l:清屏【实质:翻页】 ctrl + c:中断 ctrl + d:退出终端
三、安装软件
一般分为离线安装【dpkg】和在线安装[apt] 一般情况下,Linux系统分为两大类: 1.RedHat系列:RedHat,Centos,Fedora等 2.Debian系列:Debian,Ubuntu等 yum 和 apt-get的区别 1.apt和apt-get是Debian,Ubuntu等的包管理工具 2.yum是RedHat,Centos,Fedora等的包管理工具 3.yum相对于apt或者apt-get是落后的 RedHat: 1.常见的安装格式为rpm包,格式为:rpm -参数 2.包管理工具:yum 3.支持tar包 Debian: 1.常见的安装格式为deb包,格式:dpkg -参数 2.包管理工具:apt或者apt-get 3.支持tar包
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 存放正在下载的软件包详细信息
sublime:
sublime text3 步骤: 1.添加subline的仓库 sudo add-apt-repository ppa:webupd8team/sublime-text-3 #根据提示按下enter键,建立信任数据库 2.更新软件库 sudo apt update 3.安装sublime text sudo apt install sublime-text-installer #等待软件安装 pip install pygame
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 配置包
wps
#1.定位到deb包所在的位置 cd #2.安装 dpkg -i wps-office....deb 演示命令: lichongchong@ubuntu01:~$ cd Software/ lichongchong@ubuntu01:~/Software$ ls linux-wps pycharm-2017.3.4 lichongchong@ubuntu01:~/Software$ cd linux-wps/ lichongchong@ubuntu01:~/Software/linux-wps$ ls wps-office_10.1.0.5672~a21_amd64.deb wps_symbol_fonts.zip lichongchong@ubuntu01:~/Software/linux-wps$ dpkg -i wps-office_10.1.0.5672~a21_amd64.deb dpkg:错误:所请求的操作需要超级用户权限 lichongchong@ubuntu01:~/Software/linux-wps$ sudo !! #sudo !! 相当于sudo dpkg -i wps-office_10.1.0.5672~a21_amd64.deb ,当执行一条命令没有超级管理员的权限,则再次执行,可以使用sudo !! sudo dpkg -i wps-office_10.1.0.5672~a21_amd64.deb 正在选中未选择的软件包 wps-office。 (正在读取数据库 ... 系统当前共安装有 253363 个文件和目录。) 正准备解包 wps-office_10.1.0.5672~a21_amd64.deb ... 正在解包 wps-office (10.1.0.5672~a21) ... 正在设置 wps-office (10.1.0.5672~a21) ... 正在处理用于 desktop-file-utils (0.22-1ubuntu5.1) 的触发器 ..... 正在处理用于 mime-support (3.59ubuntu1) 的触发器 ... 正在处理用于 shared-mime-info (1.5-2ubuntu0.1) 的触发器 ... 正在处理用于 hicolor-icon-theme (0.15-0ubuntu1) 的触发器 ...
四、常用命令
1.概述
功能:磁盘操作,文件存取,目录操作,进程管理,权限管理等
格式:
command options paras
command :命令名称
options :选项,可以对命令进行控制,根据需求可写可不写
paras:传给命令的参数,根据需求可写可不写,也可以写多个
2.查看帮助文档
1>–help:自带的命令信息,不属于命令,属于选项
注意:任何命令都有–help选项,查看某个指定命令的使用方式以及包含的参数
演示命令: lichongchong@ubuntu01:~$ ls --help
2>man :相当于一个手册,包含了绝大多数命令以及信息【函数使用说明】
格式:man 命令名称
man命令中常用的按键 空格键:向上翻一页 下方向键:向下翻行 上方向键:向上翻行 fn + 左方向键:直接回到首页 fn + 右方向键:直接回到尾页 q:退出帮助文档 /xxx :从上往下进行xxx的搜索 ?xxx :从下往上进行xxx的搜索 n:定位到下一个搜索的关键字 N:定位到上一个搜索的关键字 说明:fn + 左方向键和fn + 右方向键不起作用,则可以使用home和end代替 演示命令: lichongchong@ubuntu01:~$ man ls
3>history 查看执行过的命令
当系统执行过一些命令之后,可以通过上下键查看,但是,一旦终端重启,则上下键则不起作用,就可以使用history
history :只显示最近的1000条命令
history num;显示最近的num条命令
!number:执行指定编号的命令,number为history列出来的执行过的命令的编号
演示命令 lichongchong@ubuntu01:~$ history lichongchong@ubuntu01:~$ history 5 lichongchong@ubuntu01:~$ !1046 ls Desktop Downloads Pictures PycharmProjects Templates Documents Music Public Software Videos lichongchong@ubuntu01:~$ !1047 cd Software/ lichongchong@ubuntu01:~/Software$ cd .. lichongchong@ubuntu01:~$ 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 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$//'\'')"' lichongchong@ubuntu01:~$ ls -a ~/.bash* #查看历史命令的位置 /home/lichongchong/.bash_history /home/lichongchong/.bashrc /home/lichongchong/.bash_logout lichongchong@ubuntu01:~$ gedit /home/lichongchong/.bash_history #打开历史命令所在文件 lichongchong@ubuntu01:~$ vim /home/lichongchong/.bash_history #区别于gedit
3.文件管理
1>ls:列举出当前工作目录的内容[list]
-a 用于显示所有文件和子目录(包括隐藏文件) -A 同-a,但不列出“.”(表示当前目录)和“..”(表示当前目录的父目录) -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来。 (文件大小是字节) -h :和ls单独使用的效果是一样的 -lh 与-l 类似 只不过文件大小显示的是 KB [默认是按照文件名的 abcd 排序的] -lht 与-l -lh 类似 排序是按照修改时间降序排的 -lhtr 按照时间升序排 -r 将目录的内容清单以英文字母顺序的逆序显示 -t 按文件修改时间进行排序 -F 在列出的文件名和目录名后添加标志。例如,在可执行文件后添加“*”,在目录名后添加“/”以区分不同的类型 -R 如果目标目录及其子目录中有文件,就列出所有的文件 #类似文件操作中的递归遍历目录 演示命令: lichongchong@ubuntu01:~$ ls lichongchong@ubuntu01:~$ ls -a lichongchong@ubuntu01:~$ ls -A lichongchong@ubuntu01:~$ ls -l lichongchong@ubuntu01:~$ ls -lh lichongchong@ubuntu01:~$ ls -a -l lichongchong@ubuntu01:~$ ls -al lichongchong@ubuntu01:~$ ll #注意事项 ls -a -l :显示出隐藏文件,格式化的显示文件 简写:ls -al ll :ls -a -l的封装,但是注意:ll并不是Linux的原生命令 #补充: #1 . ---->当前路径 .. ---->上一级路径 注意:对于根目录而言,.和..代表是同一个目录 drwxr-xr-x 2 lichongchong rock 4096 7月 18 2017 Music 第一列:drwxr-xr-x ,总共有10位组成,假设用数字0~9表示 #2.文件的类型 第0位表示文件类型 -:文件 d:目录 b:块设备文件 c:字符设备文件【端口设备文件,例如鼠标,键盘】 l:链接文件 p:管道文件 s:socket文件 #3.权限 第1~9位文件的权限 权限被分为三组,每三位为一组 1~3:当前用户的权限【user/owner】 4~6:用户所属组的权限【group】 7~9:其他组的权限【others】 rwx- r:read,可读权限,也可以使用4表示 w:write,可写权限,也可以使用2表示 x:execute,可执行权限,也可以使用1表示 -:没有任何权限,也可以使用0表示 注意:一个文件对于一个用户有什么样的权限 ,可以使用rwx表示之外,还可以使用数字和表示,文件的最高权限为7【对于一个用户而言,可以修改一个文件的权限】 取值范围为0~7 0:没有任何权限 1:只能执行 2:只能写 3:可写可执行 4:只读 5:可读可执行 6:可读可写 7:可读可写可执行 #4.文件和目录的权限类型 文件: 可读:允许读取其中的内容 可写:任意修改其中的内容 可执行:允许将一个文件作为程序执行 目录: 可读:允许显示目录中的内容 可写:可以在该目录中创建,删除,替换操作 可执行:可以进入该目录,执行基本操作 #5. 第二列 硬链接的个数 #6.第三列和第四列 用户和用户组,显示的是主组,【一个用户可以存在于不同的组中,一个组中可以有多个用户,用户的最初的组为主组,其他的组都被称为附加组】 #7.通配符 * 演示命令: lichongchong@ubuntu01:~$ cd Desktop/ lichongchong@ubuntu01:~/Desktop$ touch a1.txt lichongchong@ubuntu01:~/Desktop$ touch a2.txt lichongchong@ubuntu01:~/Desktop$ touch b.txt lichongchong@ubuntu01:~/Desktop$ ls a1.txt a2.txt b.txt file1.txt lichongchong@ubuntu01:~/Desktop$ ls a* a1.txt a2.txt lichongchong@ubuntu01:~/Desktop$ ls *a ls: 无法访问'*a': 没有那个文件或目录 lichongchong@ubuntu01:~/Desktop$ touch aa.txt lichongchong@ubuntu01:~/Desktop$ touch ba.txt lichongchong@ubuntu01:~/Desktop$ ls *a ls: 无法访问'*a': 没有那个文件或目录 lichongchong@ubuntu01:~/Desktop$ ls *a.txt aa.txt ba.txt lichongchong@ubuntu01:~/Desktop$ #掌握: ls ls 相对路径 ls -l ll 相对路径
2>pwd 查看当前的工作目录【print working directory】
演示命令: lichongchong@ubuntu01:~$ pwd /home/lichongchong lichongchong@ubuntu01:~$ cd Desktop/ lichongchong@ubuntu01:~/Desktop$ pwd /home/lichongchong/Desktop
3>查看文件,会将查询的结果显示到终端上
#1 cat:查看完整的文件内容,从上往下查看 -n :显示每一行的行号,包括空行 -b :显示每一行的行号,不包括空行 #注意:如果文件内容较少可以使用cat tac:查看完整的文件内容,从下往上查看 #注意:没有-n选项 演示命令: lichongchong@ubuntu01:~$ cd Desktop/ lichongchong@ubuntu01:~/Desktop$ cat file1.txt hello fnjawnfkja najwngj126473 \5375y lichongchong@ubuntu01:~/Desktop$ cat -n file1.txt 1 hello 2 fnjawnfkja 3 najwngj126473 4 \5375y lichongchong@ubuntu01:~/Desktop$ tac file1.txt \5375y najwngj126473 fnjawnfkja hello #2 head:查看文件内容,默认查看文件的前十行 tail:查看文件内容,默认查看文件的后十行 -num :查看指定的行数 演示命令: lichongchong@ubuntu01:~/Desktop$ head file1.txt hello fnjawnfkja najwngj126473 \5375y hello fnjawnfkja najwngj126473 \5375y hello fnjawnfkja lichongchong@ubuntu01:~/Desktop$ tail file1.txt najwngj126473 \5375y hello fnjawnfkja najwngj126473 \5375y hello fnjawnfkja najwngj126473 \5375y lichongchong@ubuntu01:~/Desktop$ head -2 file1.txt hello fnjawnfkja lichongchong@ubuntu01:~/Desktop$ tail -2 file1.txt najwngj126473 \5375y lichongchong@ubuntu01:~/Desktop$ #3 less:查看文件 more:查看文件 #注意:按下enter键向上翻一行,按下空格键向上翻一页,按下q退出,类似man的使用 #通过ls或者cat查看目录下的内容,文件中的内容,显示较长的时候,使用less或者more,文件内容较多使用more,文件内容较少使用less #注意:如果文件中的内容一个终端显示屏可以显示的话,则more和cat的作用完全相同, 演示命令: lichongchong@ubuntu01:less file1.txt lichongchong@ubuntu01:more file1.txt #4 wc:一次显示文件行数,字节数以及文件名信息,查看文件的属性 stat:查看文件详细信息,可以获取文件的文件名、大小、权限,最近访问以及最近更改的时间,stat命令的输出信息比ls命令还要详细 #wc和stat用法类似,stat显示的信息更加详细 演示命令: lichongchong@ubuntu01:~/Desktop$ wc file1.txt 268 267 2842 file1.txt lichongchong@ubuntu01:~/Desktop$ stat file1.txt 文件:'file1.txt' 大小:2842 块:8 IO 块:4096 普通文件 设备:801h/2049d Inode:583182 硬链接:1 权限:(0644/-rw-r--r--) Uid:( 1000/lichongchong) Gid:( 1000/ rock) 最近访问:2018-12-18 15:41:07.247759694 +0800 最近更改:2018-12-18 15:40:59.147544240 +0800 最近改动:2018-12-18 15:40:59.151544347 +0800 创建时间:- #5. file:查看文件的类型 演示命令: lichongchong@ubuntu01:~/Desktop$ file file1.txt file1.txt: ASCII text #6. echo:用于在终端输出字符串或变量的值 演示命令: lichongchong@ubuntu01:~$ echo "hello" hello #7 |:管道 作用:将一个命令的输出,可以作为另外一个命令的输入 #8 >:输出重定向,Linux允许将执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中 >>:输出重定向,Linux允许将执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中 #注意:如果文件不存在,则会自动创建,,如果存在,则会覆盖其中的内容 1> 标准正确输出,同上 1>> 标准正确输出,同上 #标准正确输出;当文件以及命令没有任何错误的时候才能正常写入 2> 标准错误输出,同上 2>> 标准错误输出,同上 #标准错误输出:当文件以及命令出现错误的时候,会将错误信息写入到指定文件中 &> 标准正确输出和标准错误输出,同上 将1和2结合在一起了 """ 输出重定向。类似于Python中print的用法 f = open("","w") print("fhad",file=f) """ 演示命令: lichongchong@ubuntu01:ls lichongchong@ubuntu01:touch a1.txt lichongchong@ubuntu01:touch a2.txt lichongchong@ubuntu01:ls > a1.txt lichongchong@ubuntu01:cat a1.txt > a2.txt lichongchong@ubuntu01:ls >> a1.txt lichongchong@ubuntu01:ls 1> a1.txt lichongchong@ubuntu01:ls 1>> a1.txt
4>tree 以树形结构去显示目录结构
-d 只显示文件夹 -f 显示文件的完整路径 -L num :只看前num级的内容 #类似ls的使用,只不过显示的内容更加格式化 演示命令: lichongchong@ubuntu01: tree lichongchong@ubuntu01: tree -d lichongchong@ubuntu01: tree -f lichongchong@ubuntu01: tree -L 3
5>cd 切换工作目录【change directory】
用法:cd 路径[此处可以是相对路径,也可以是绝对路径] 特殊用法: cd 切换到当前用户的主目录,用户登录的时候,默认的目录就是用户的主目录 cd ~ 切换到当前用户的主目录 cd . 切换到当前目录 cd .. 切换到上一级目录 cd - 返回上一次切换的目录 cd # 回到当前用户的主目录 演示命令: lichongchong@ubuntu01:~$ cd lichongchong@ubuntu01:~$ pwd /home/lichongchong lichongchong@ubuntu01:~$ cd ~ lichongchong@ubuntu01:~$ pwd /home/lichongchong lichongchong@ubuntu01:~$ cd . lichongchong@ubuntu01:~$ pwd /home/lichongchong lichongchong@ubuntu01:~$ cd Desktop/ lichongchong@ubuntu01:~/Desktop$ cd .. lichongchong@ubuntu01:~$ cd - /home/lichongchong/Desktop lichongchong@ubuntu01:~/Desktop$ cd - /home/lichongchong lichongchong@ubuntu01:~$ cd # lichongchong@ubuntu01:~$ pwd /home/lichongchong #注意:如果要操作某个文件或者目录,一般都需要切换路径,切换到需要操作的文件或者目录下
6>mv 移动或者重命名文件或者目录【move】
命令格式:mv [参数] 源文件 [目标路径|目标文件名] ------》可以cd到【文件所在路径下】或者【直接通过路径指明文件】 -i 在目标文件存在的时候会询问是否要覆盖 #输入y表示移动成功,覆盖原来的文件,输入n,则表示没有移动 【交互式命令】 -b 当冲突的时候,会对源文件进行备份 演示命令 #重命名:mv 原文件名称 新文件名称 【前提:cd到文件所在的目录下】 #移动:mv 源文件名称 目标目录 【前提:cd到文件所在的目录下】 #重命名 lichongchong@ubuntu01:~$ cd Desktop/ lichongchong@ubuntu01:~/Desktop$ ls a1.txt a2.txt aa.txt ba.txt b.txt file1.txt lichongchong@ubuntu01:~/Desktop$ mv file1.txt hello.txt #重名 lichongchong@ubuntu01:~/Desktop/aaa$ cd .. lichongchong@ubuntu01:~/Desktop$ mkdir bbbb lichongchong@ubuntu01:~/Desktop$ mkdir cccc lichongchong@ubuntu01:~/Desktop$ ls aaa aa.txt bbbb cccc hello.txt lichongchong@ubuntu01:~/Desktop$ mv bbbb hhhh lichongchong@ubuntu01:~/Desktop$ ls aaa aa.txt cccc hello.txt hhhh lichongchong@ubuntu01:~/Desktop$ #移动 lichongchong@ubuntu01:~/Desktop$ ls a1.txt a2.txt aa.txt ba.txt b.txt hello.txt lichongchong@ubuntu01:~/Desktop$ mkdir aaa lichongchong@ubuntu01:~/Desktop$ mv a1.txt aaa/ lichongchong@ubuntu01:~/Desktop$ ls a2.txt aaa aa.txt ba.txt b.txt hello.txt lichongchong@ubuntu01:~/Desktop$ cd aaa/ lichongchong@ubuntu01:~/Desktop/aaa$ ls a1.txt lichongchong@ubuntu01:~/Desktop/aaa$ cd .. lichongchong@ubuntu01:~/Desktop$ mv a2.txt ba.txt b.txt aaa/ lichongchong@ubuntu01:~/Desktop$ ls aaa aa.txt hello.txt lichongchong@ubuntu01:~/Desktop$ cd aaa/ lichongchong@ubuntu01:~/Desktop/aaa$ ls a1.txt a2.txt ba.txt b.txt lichongchong@ubuntu01:~/Desktop/aaa$ lichongchong@ubuntu01:~/Desktop/aaa$ cd .. lichongchong@ubuntu01:~/Desktop$ touch a1.txt lichongchong@ubuntu01:~/Desktop$ mv a1.txt aaa/ lichongchong@ubuntu01:~/Desktop$ touch a1.txt lichongchong@ubuntu01:~/Desktop$ mv -i a1.txt aaa/ mv:是否覆盖'aaa/a1.txt'? n lichongchong@ubuntu01:~/Desktop$ ls a1.txt aaa aa.txt cccc hello.txt hhhh lichongchong@ubuntu01:~/Desktop$ cd aaa/ lichongchong@ubuntu01:~/Desktop/aaa$ ls a1.txt a2.txt ba.txt b.txt lichongchong@ubuntu01:~/Desktop/aaa$
7>cp 复制文件或者目录【copy】
命令格式:cp [参数] 源文件【目录】 目标文件【目录】 -i 在目标文件存在的时候会询问是否要覆盖【交互式复制】 -r 若给出的源文件是一目录文件,此时cp将递归复制该目录下所有的子目录和文件。此时目标文件必须为一个目录名 #单纯拷贝目录,拷贝失败,加上-r,会将整个目录以及子文件,子目录全部拷贝进去 -a 复制的时候保持文件原有属性 -f 对于已经存在的目标文件不提示 -v 显示拷贝进度,#显示文件的路径的映射关系 """ Linux中,拷贝分为几种情况 1.如果目标路径是目录,则会将源文件拷贝到目录的下面 2.如果目标路径是文件,则需要询问要覆盖它 """ 演示命令: lichongchong@ubuntu01:~/Desktop$ ls a2.txt aaa aa.txt ba.txt b.txt hello.txt lichongchong@ubuntu01:~/Desktop$ cd aaa/ lichongchong@ubuntu01:~/Desktop/aaa$ ls a1.txt lichongchong@ubuntu01:~/Desktop/aaa$ cd .. lichongchong@ubuntu01:~/Desktop$ mv a2.txt ba.txt b.txt aaa/ lichongchong@ubuntu01:~/Desktop$ ls aaa aa.txt hello.txt lichongchong@ubuntu01:~/Desktop$ cd aaa/ lichongchong@ubuntu01:~/Desktop/aaa$ ls a1.txt a2.txt ba.txt b.txt lichongchong@ubuntu01:~/Desktop/aaa$ cd .. lichongchong@ubuntu01:~/Desktop$ mkdir bbbb lichongchong@ubuntu01:~/Desktop$ mkdir cccc lichongchong@ubuntu01:~/Desktop$ ls aaa aa.txt bbbb cccc hello.txt lichongchong@ubuntu01:~/Desktop$ mv bbbb hhhh lichongchong@ubuntu01:~/Desktop$ ls aaa aa.txt cccc hello.txt hhhh lichongchong@ubuntu01:~/Desktop$ cd aaa/ lichongchong@ubuntu01:~/Desktop/aaa$ cat ^C lichongchong@ubuntu01:~/Desktop/aaa$ ls a1.txt a2.txt ba.txt b.txt lichongchong@ubuntu01:~/Desktop/aaa$ cd .. lichongchong@ubuntu01:~/Desktop$ touch a1.txt lichongchong@ubuntu01:~/Desktop$ mv a1.txt aaa/ lichongchong@ubuntu01:~/Desktop$ touch a1.txt lichongchong@ubuntu01:~/Desktop$ mv -i a1.txt aaa/ mv:是否覆盖'aaa/a1.txt'? n lichongchong@ubuntu01:~/Desktop$ ls a1.txt aaa aa.txt cccc hello.txt hhhh lichongchong@ubuntu01:~/Desktop$ cd aaa/ lichongchong@ubuntu01:~/Desktop/aaa$ ls a1.txt a2.txt ba.txt b.txt lichongchong@ubuntu01:~/Desktop/aaa$ cd .. lichongchong@ubuntu01:~/Desktop$ ls a1.txt aaa aa.txt cccc hello.txt hhhh lichongchong@ubuntu01:~/Desktop$ cp hello.txt aaa/ lichongchong@ubuntu01:~/Desktop$ ls a1.txt aaa aa.txt cccc hello.txt hhhh lichongchong@ubuntu01:~/Desktop$ cd aaa/ lichongchong@ubuntu01:~/Desktop/aaa$ ls a1.txt a2.txt ba.txt b.txt hello.txt lichongchong@ubuntu01:~/Desktop/aaa$ cd .. lichongchong@ubuntu01:~/Desktop$ cp cccc aaa/ cp: 略过目录'cccc' lichongchong@ubuntu01:~/Desktop$ ls a1.txt aaa aa.txt cccc hello.txt hhhh lichongchong@ubuntu01:~/Desktop$ cd aaa/ lichongchong@ubuntu01:~/Desktop/aaa$ ls a1.txt a2.txt ba.txt b.txt hello.txt lichongchong@ubuntu01:~/Desktop/aaa$ cd .. lichongchong@ubuntu01:~/Desktop$ cp -i aa.txt aaa/ lichongchong@ubuntu01:~/Desktop$ cp -i aa.txt aaa/ cp:是否覆盖'aaa/aa.txt'? y lichongchong@ubuntu01:~/Desktop$ cd cccc/ lichongchong@ubuntu01:~/Desktop/cccc$ touch c1.txt lichongchong@ubuntu01:~/Desktop/cccc$ mkdir c2 lichongchong@ubuntu01:~/Desktop/cccc$ ls c1.txt c2 lichongchong@ubuntu01:~/Desktop/cccc$ cd .. lichongchong@ubuntu01:~/Desktop$ cp cccc aaa/ cp: 略过目录'cccc' lichongchong@ubuntu01:~/Desktop$ cp -r cccc aaa/ lichongchong@ubuntu01:~/Desktop$ cd aaa/ lichongchong@ubuntu01:~/Desktop/aaa$ ls a1.txt a2.txt aa.txt ba.txt b.txt cccc hello.txt lichongchong@ubuntu01:~/Desktop/aaa$ cd cccc/ lichongchong@ubuntu01:~/Desktop/aaa/cccc$ ls c1.txt c2 lichongchong@ubuntu01:~/Desktop/aaa/cccc$ cd . lichongchong@ubuntu01:~/Desktop/aaa/cccc$ cd .. lichongchong@ubuntu01:~/Desktop/aaa$ cd .. lichongchong@ubuntu01:~/Desktop$ cp -v hello.txt cccc/ 'hello.txt' -> 'cccc/hello.txt' lichongchong@ubuntu01:~/Desktop$
8>创建文件或者目录
8.1>mkdir 创建一个新的目录 #默认创建的是空目录 -p:创建出具有嵌套层关系的文件目录 演示命令: lichongchong@ubuntu01:~/Desktop$ mkdir ddd lichongchong@ubuntu01:~/Desktop$ mkdir a/b/c/d mkdir: 无法创建目录"a/b/c/d": 没有那个文件或目录 lichongchong@ubuntu01:~/Desktop$ mkdir -p a/b/c/d lichongchong@ubuntu01:~/Desktop$ mkdir -p b/{c,d,e}/{text1,text2} lichongchong@ubuntu01:~/Desktop$ 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后面可以指定时间,其他的只能把时间修改为当前时间 演示命令: lichongchong@ubuntu01:~/Desktop$ touch file2.txt lichongchong@ubuntu01:~/Desktop$ ls a a1.txt aaa aa.txt b cccc ddd file2.txt hello.txt hhhh lichongchong@ubuntu01:~/Desktop$ touch -d "2 days ago" file3.txt
9>删除文件或者目录
9.1>rmdir 删除给定的目录,注意:只能删除空目录 mkdir 演示命令: lichongchong@ubuntu01:~/Desktop$ mkdir text lichongchong@ubuntu01:~/Desktop$ rmdir text lichongchong@ubuntu01:~/Desktop$ rmdir aaa rmdir: 删除 'aaa' 失败: 目录非空 9.2>rm 删除文件或者目录,可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下面所有子文件和目录都删掉 -r 删除目录,包括非空目录 -ri 交互式删除,每次删除都会进行询问 -rf 强制删除文件或目录【注意:必须在保证目录或者文件确实没用的情况下】 演示命令: lichongchong@ubuntu01:~/Desktop$ mkdir text lichongchong@ubuntu01:~/Desktop$ rmdir text lichongchong@ubuntu01:~/Desktop$ rmdir aaa rmdir: 删除 'aaa' 失败: 目录非空 lichongchong@ubuntu01:~/Desktop$ rm hello.txt lichongchong@ubuntu01:~/Desktop$ ls a a1.txt aaa aa.txt b cccc ddd file2.txt file3.txt hhhh lichongchong@ubuntu01:~/Desktop$ rm aaa rm: 无法删除'aaa': 是一个目录 lichongchong@ubuntu01:~/Desktop$ rm -r aaa lichongchong@ubuntu01:~/Desktop$ ls a a1.txt aa.txt b cccc ddd file2.txt file3.txt hhhh lichongchong@ubuntu01:~/Desktop$ rm -ri aa.txt rm:是否删除普通空文件 'aa.txt'? y lichongchong@ubuntu01:~/Desktop$ ls a a1.txt b cccc ddd file2.txt file3.txt hhhh lichongchong@ubuntu01:~/Desktop$ rm -rf file3.txt lichongchong@ubuntu01:~/Desktop$ rm -rf hhhh/
10>ln 建立链接文件
注意:linux下的链接文件相对于windows下的快捷方式,分为软连接和硬链接
软链接:不占用磁盘空间,源文件删除则链接失效
硬链接:占用磁盘空间,源文件删除对链接无影响
11>grep 文本搜索
强大的文本搜索工具,grep允许对文本文件进行模式查找,如果找到匹配模式,grep打印包含模式的所有行 注意:搜索内容串可以是正则表达式 -c:仅显示找到的行数 -i:忽略大小写 -n:显示匹配行以及行号 -v:反向选择,列出没有关键词的行【求反】 #grep 一般结合管道符使用
12>which 查找其他命令所在的位置
13>type 寻找命令所在的位置,包括命令别名
-a:可以找到所有,包括别名
14>find 按照指定条件来查找文件
格式:find 【查找路径】 【查找方式】 【查找条件】 -name:匹配名称,默认是精确匹配 -size:匹配文件大小 -atime -n +n:匹配访问内容的时间(-n指n天以内,+n指n天以前) -empty 空的文件 #grep和find都用来查找,grep 查找的是管道符前面符号的输出内容 ,find 查找指定路径下的文件
15>locate 查找数据
-i:忽略大小写 -c:不输出寻找结果,仅计算找到的文件数量 -l:仅输出指定的几行, 例如:-l 8,输出8行 -r:后面可以接正则表达式 注意:不管在哪个路径下执行该命令,都是全局查找【在当前系统中】,将包含由指定关键字的内容显示出来
16>sort 给文件内容排序
-f:忽略大小写的差异,例如 A 与 a 视为编码相同; -b:忽略最前面的空格符部分; -n:使用『纯数字』进行排序(默认是以文字型态来排序的); -r:反向排序; -u:就是 uniq,表示唯一的,相同的数据中,仅出现一行代表; -t:分隔符,默认是用 [tab] 键来分隔; -k:以那个区间 (field) 来进行排序的意思
17>cut 可以从一个文本文件或者文本流中提取文本列
-d :后面接分隔字符。与 -f 一起使用; -f :依据 -d 的分隔字符将一段信息分割成为数段,用 -f 取出第几段的意思; -c :以字符 (characters) 的单位取出固定字符区间;( -连接区间 ,取的是和的意思)
18>tee 读取标准输入的数据,并将其内容输出成文件
-a:读取原文件内容,并追加新的内容,如果不设置该选项,则新的内容直接覆盖旧的内容
19>gedit 打开Linux下的文本编辑器