Linux文件和目录操作
一、基本shell操作
1.1 常用Linux快捷键
快捷键 | 说明 |
---|---|
Ctrl + p/n | 上一个命令/下一个命令,等效于键盘的↑↓ |
Ctrl + b/f | 光标向前/后 |
Ctrl + a/e | 光标移动到行头/尾 |
Ctrl + h/d | 删除光标前/后字符 |
Ctrl + u | 删除光标前所有字符 |
Shift+ PageUp | 上翻页 |
Shift+ PageDown | 下翻页 |
Ctrl + Alt + t lUbantu,创建终端 | |
Ctrl + Shift + t | 添加新标签页 |
1.2 提示和命令补齐
Tab补齐,按下一次补齐(命令或目录),按下两次提示(命令或目录)
1.3 常用Linux命令
命令 | 说明 |
---|---|
history | 查看操作历史 |
clear | 清除终端信息 |
pwd | 查看当前目录 |
which | 查看命令的目录 |
man man | 查看手册,九个章节,分别为1.可执行行程序或shell命令;2.系统调用(内核提供的函数);3.库调用(程序库中提供的函数);4.特殊文件(通常位于/dev);5.文件格式和规范(如/etc/passwd);6.游戏;7.杂项;8.系统管理命令;9.内核例程 |
alias | 查看命令别名,设置,例:alias pag='ps aux |
echo | 在显示器上显示数据,普通数据:echo 字符串,显示环境变量:echo $PATH,显示上一次程序退出值:echo $?( $:取值,?:最近一次程序退出时的返回值) |
poweroff | 关机 |
reboot | 重启 |
shutdown | 关机,-t:秒,设定在切换至不同的runlevle之前,警告和删除两信号之间的延迟时间;-k:仅送出警告信息,但不关机;-r:shutdown之后重新开机;-h:shutdown命令之后关机;-n:不经过init,由shutdown指令本身做关机动作;-f:重新开机时,跳过fsck命令,不检查档案系统;-F:重新开机时,强迫做fsck检查;-c:将已经正在shutdown的动作取消 |
二、文件和目录操作相关命令
2.1 文件和目录操作
2.1.1 文件或目录查看
查看目录:
- ls:查看所有目录,-l详细信息(详细信息说明请看这里:Linux命令ls -l详细信息说明),-a展示隐藏文件
- tree:以树状结构展示目录
- pwd:查看当前目录
查看文件内容: - cat fileName:将文件内容一次性输出到终端,如果文件太长,无法在终端全部显示
- more fileName:文件内容分页显示到终端,只能一直向下浏览,不能退回,enter下一行,backspace下一页,ctrl+c或q退出
- less fileName:文件内容分页显示到终端,可以自由上下浏览,enter下一行,backspace下一页,ctrl+c或q退出,ctrl+p或↑滚动到上一行,ctrl+n或↓滚动到下一行
- head -x fileName:x为行,从文件头开始查看前x行的内容,如果没有指定行数,默认显示前10行内容
- tail -x fileName:x为行,从文件尾开始查看后x行的内容,如果没有指定行数,默认显示后10行内容
2.1.2 目录跳转
跳转:cd
跳转邻近目录:cd -
返回家目录(三种):
- cd /home/User
- cd ~
- cd
2.1.3 文件或目录创建
- 创建一个目录:mkdir dirName
- 创建一套目录:mkdir dirName1/dirName2/dirName3 -p
- 创建一个文件:touch fileName(文档末添加写入一行echo “content” >> word.txt,>为全替代文档内容)
2.1.4 文件或目录删除
- 删除一个空目录:rmdir dirName
- 删除一个非空目录:rm -r dirName(递归删除,-i可以进行询问)
- 删除一个文件:rm fileName
2.1.5 文件或目录拷贝
- 拷贝一个文件:cp fileName1 fileName2(fileName1拷贝到fileName2,fileName2不存在时自动创建)
- 拷贝一个文件到指定路径:cp fileName path
- 拷贝一个目录:cp dirName1 dirName2 -r(fileName2不存在时自动创建)
- 拷贝一个目录到指定路径:cp dirName path -r
2.1.6 文件或目录移动、重命名
重命名:
- 文件重命名:mv fileName newFileName
- 目录重命名:mv dirName newDirName
移动: - 移动一个文件到指定目录:mv fileName path
- 移动一个目录到指定目录:mv dirName path
2.2 Linux系统目录结构
ls /查看Linux系统目录
系统目录树状结构
必须掌握的系统目录及说明
目录 | 说明 |
---|---|
/bin | Binary的缩写, 这个目录存放着最经常使用的命令 |
/dev | Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的 |
/etc | 用来存放所有的系统管理所需要的配置文件和子目录 |
/home | 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的 |
/lib | 存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件 |
/media | linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下 |
/mnt | 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了 |
/root | 为系统管理员,也称作超级权限者的用户主目录 |
/usr | 非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录 |
在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。 | |
/etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。 | |
/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。 | |
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。 | |
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。 |
其他目录说明:
- /boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
- /lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
- /opt: 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
- /proc:这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all - /sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
- /selinux: 这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
- /srv: 该目录存放一些服务启动之后需要提取的数据。
- /sys: 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。 - /tmp:这个目录是用来存放一些临时文件的。
- /usr/bin:系统用户使用的应用程序。
- /usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
- /usr/src:内核源代码默认的放置目录。
- /var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
- /run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
2.3 用户目录
路径:
- 绝对路径:从根目录开始到当前目录的完整路径为最对路径
- 相对路径:使用目录符号代表当前位置的路径为相对路径,.代表当前目录,…代表当前目录的上一级目录,-代表相邻目录(cd -,进入到相邻目录)
User@root:~$目录说明:
- User:当前登录用户
- @:at在
- root:主机名
- ~:表示用户的家目录(宿主目录)
- $:当前用户为普通用户(#:当前用户为超级用户),进入超级目录:sudo su,离开超级目录:exit
2.4 文件或目录颜色一般情况
2.5 软链接与硬链接
关于软链接与硬链接的说明请查看这里:Linux命令ls -l详细信息说明
创建:
- 软链接:ln -s path/fileName fileName.soft(path/fileName表示绝对路径下的文件名,这样使得软链接在所有路径下均有效,否则为相对路径,只在创建的目录下有效,fileName.soft为创建的软链接名,加上.soft是方便区分)
指定路径下创建时为ln -s path/fileName path/fileName.soft,此时软链接具有读写执行权限,更改软链接,原文件改变
- 硬链接:ln path/fileName fileName.hard
指定路径下创建时为ln path/fileName path/fileName.hard
2.6 文件和目录属性命令
- wc:wc fileName,查看文件行数,字数,字节数,参数-l为只显行数,-w只显示字数,-c只显示字节数
- od:od fileName -t*,查看二进制文件信息,参数-t指定数据的显示格式(c为ASCII字符;d为有符号十进制数;f为浮点数;o为八进制数;u为无符号十进制数;x为十六进制数)
- du:du -h,disk use,查看某个目录的大小,加-h方便查看
- df:df -hj,disk free,查看磁盘的使用情况,加-h方便查看
2.7 文件权限、用户、用户组相关命令
2.7.1 文件与目录权限
使用ls -l查看,关于详细内容的权限说明请查看这里:Linux命令ls -l详细信息说明
2.7.2 修改文件权限
- 文字设定法:chmod [who] [+|-|=] [mode] fileName/dirName
who:u为文件所有者;g为文件所属组;o为其他人;a为所有的人(不写,默认,可能会出错)
+/-/=:+为添加权限;-为减少权限;=为覆盖原来的权限
mode:r为读;w为写;x为执行 - 数字设定法: chmod nnn fileName/dirName(n为数字,0为-)
-:没有权限
r:4
w:2
x:1
rx:5
rw:6
rwx:7
2.7.3 修改所有者和所属组
- 改变所有者: sudo chown ownName fileName/dirName
- 改变所属组:sudo chown ownName:ownGroup fileName/dirName
或sudo chgrp ownGroup fileName/dirName
2.7.4 查看当前用户
whoami
2.8 查找与检索相关命令
2.8.1 按文件属性查找
- 文件名:sudo find path -name “fileName”,文件名中通配符*省略后面字符,?省略一个字符
- 文件大小:sudo find path -size [+|-]fileSize,+代表大于,-代表小于,大小单位使用k,M
- 文件类型:sudo find path -type -/d/l/b/c/s/p
2.8.2 按文件内容检索
- sudo grep -r “content” path
三、 软件安装与卸载
3.1 在线安装
- apt-get
安装:sudo apt-get install softwareName
移除:sudo apt-get remove softwareName
更新:sudo apt -get update,更新软件列表
清理所有软件安装包:sudo apt-get clean,实际清理的是:/var/cache/apt/archives目录下的.deb文件 - aptitude
安装:sudo aptitude install softwareName
重新安装:sudo aptitude reinstall softwareName
更新:sudo aptitude update,更新软件列表
移除:sudo aptitude remove softwareName
显示状态:sudo aptitude show softwareName
3.2 deb包安装
- 安装:sudo dpkg -i xxx.deb
- 移除:sudo dpkg -r xxx
3.3 源码安装
1.解压缩源代码包
2.进入到安装目录:cd dir
3.检测文件是否确实,创建Makefile,检测编译环境:./configure
4.编译源码,生成库和可执行程序:make
5.把库和可执行程序安装到系统目录下:sudo make install
6.删除和协助软件:sudo make distclean
7.若上述安装步骤不通用,请查看附带的README文件
四、 磁盘管理
4.1 挂载与卸载
1.挂载
- 系统默认挂载目录:/media
- 手动挂载目录:/mnt
挂载非/mnt目录下时,原目录内容被设备内容覆盖隐藏,当设备卸载后原目录内容恢复展示 - 挂载方式:mount deviceName path
检测设备名为sudo fdisk -l
2.卸载
- 卸载时,用户不能再要卸载的目录下,否则卸载失败
- 卸载方式:sudo umount path,一般为paht为/mnt
4.2 磁盘命名
1.磁盘设备种类
- sd:SCSI Device,小型计算机系统接口设备
- hd:Hard Disky,硬盘
- fd :Floppy Disk,软盘
2.盘名
- sda、sdb、sdc、sdd…
- 主分区(最多允许4个):sda1、sda2、sda3、sda4;扩展分区(第一个逻辑分区从sda5开始):sda5、sda6、sda7…
五、 打包和压缩
5.1 基础版
- gzip:.gz格式的压缩包
压缩:gzip fileName
解压:gunzip fileName.gz - bzip2:.bz2格式的压缩包
压缩:bzip2 fileName
解压:bunzip2 fileName.bz2
5.2 进阶版
1.tar
不使用z/j参数,该命令只能对文件或目录打包
- 参数:
c:创建
x:释放
v:显示提示信息
f:指定压缩文件名字
z:使用gzip方式压缩文件,.gz
j:使用bzip2方式压缩文件,.bz2 - 压缩:
tar zcvf xxx.tar.gz fileName/dirName(fileName/dirName为要压缩的文件或目录)
tar jcvf xxx.tar.bz2 fileName/dirNamet - 解压:fu
tar zxvf fileName/dirName.tar.gz -C path(path为解压到的路径)
tar jxvf fileName/dirName.tar.bz2 -C path
2.rar - 压缩:rar a rarName fileName/dirName(rarName为压缩包名不需要指定后缀,因为会自动生成,fileName/dirName为要压缩的文件或目录)
- 解压:rar x rarName path(path为解压到的路径)
3.zip - 压缩:zip -r zipName fileName/dirName(rarName为压缩包名不需要指定后缀,因为会自动生成,fileName/dirName为要压缩的文件或目录)
- 解压:unzip zipName.zip -d path(path为解压到的路径)
总结:
- 压缩:tar/rar/zip + 参数 + 压缩包名(tar加后缀方便区分) + 要压缩的文件或目录
- 解压:tar/rar/unzip + 参数 + 压缩包名(包括后缀) + 参数(rar没有参数) + 解压到的路径
参考
以上为个人整理总结的知识,如有遗漏或错误欢迎留言指出、点评,如要引用,请联系通知,未经允许谢绝转载。
[1]: https://blog.csdn.net/u011503970/article/details/18615537