Linux学习笔记(目录结构、常用命令)

Linux学习笔记(目录结构、常用命令) 第一部分一些Linux基础知识1、Linux目录结构以下是对这些目录的解释/root 该目录为系统管理员也称作超级权限者的用户主目录。/bin bin是Binary的缩写, 这个目录存放着最经常使用的命令。/etc 这个目录用来存放所有的系统管理所需要的配置文件和子目录。/home 用户的主目录在Linux中每个用户都有一个自己的目录一般该目录名是以用户的账号命名的。/opt 这是给主机额外安装软件所摆放的目录。比如你安装一个Tomcat就可以放到这个目录下。默认是空的。/var 这个目录中存放着在不断扩充着的东西我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。/boot 这里存放的是启动Linux时使用的一些核心文件包括一些连接文件以及镜像文件。/dev dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备在Linux中访问设备的方式和访问文件 的方式是相同的。/lib 这个目录里存放着系统最基本的动态连接共享库其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。/media Linux系统会自动识别一些设备例如U盘、光驱等等当识别后linux会把识别的设备挂载到这个目 录下。/mnt 系统提供该目录是为了让用户临时挂载别的文件系统的我们可以将光驱挂载在/mnt/上然后进入该目录就可以查看光驱里的内容了。/sbin s就是Super User的意思这里存放的是系统管理员使用的系统管理程序。/usr 这是一个非常重要的目录用户的很多应用程序和文件都放在这个目录下类似于windows下的program files目录。bin 和 sbin在 Linux 中绝大多数可执行文件都是保存在 /bin 、 /sbin 、 /usr/bin 、 /usr/sbin/bin binary 是二进制执行文件目录主要用于具体应用/sbin system binary 是系统管理员专用的二进制代码存放目录主要用于系统管理/usr/bin user commands for applications 后期安装的一些软件/usr/sbin super user commands for applications 超级用户的一些管理程序2、绝对路径和相对路径Linux中有两种路径绝对路径、相对路径绝对路径路径有/(根目录)开头一直到路径的最后一层第一个/代表根目录。比如/dir1/AA/BB/CC绝对路径是从根目录开始一层一层往下找一直找到最后一层文件或文件夹。相对路径不是以根目录开头的路径。比如 AA/BB/CC。相对路径是从当前文件夹里边开始找第一层一直找到最后一层文件夹或文件。特殊的相对路径~代表当用用户的主目录.代表当前目录..代表上一级目录-代表切换目录之间所在的目录3、linux命令格式Linux命令由命令名 选项 参数 三部门构成。命令名是命令的唯一标识选项可以通过不同的选项来实现不同的功能。参数参数是命令处理的对象或数据如果命令后边不加参数则默认处理的对象是当前文件夹。命令书写的注意事项1命令名 选项 参数三者之间要用空格隔开。2linux命令是严格区分大小写的该大写时必须大写该小写时必须小写。3为了区分选项和参数一般会在选项前加一个-或者两个-4选项可以有多个多个选项之间也是用空格隔开一般情况选项之间顺序无所谓。5多个选项也可写在一起只保留第一个-6参数也可有多个多个参数之间也是用空格隔开4、一些小知识1在输入路径的过程中当前路劲下如果以某个字母或某几个字母开头的文件只有一个时可以按Tab键系统会自动补全该文件的名称。2可以使用上下键切换到最近你刚敲过的命令3可以使用history K 查看最近敲过K条命令直接history会显示最近敲过的1000条命令4ctrlc 结束某个正在运行的命令要查看某个命令的用法可以使用1命令名 --help 以高效简洁方式显示命令用法2man 命令名 显示命令的详细用法或者显示命令的操作手册5、Linux 下文件和目录的特点Linux 文件 或者 目录 名称最长可以有 256 个字符参数 含义以 . 开头的文件为隐藏文件需要用 -a 参数才能显示. 代表当前目录… 代表上一级目录第二部分一些常用的Linux命令一、基本命令1、ls查看对应的文件夹里边包含了哪些文件或文件夹。如果加参数则查看的是当前文件夹里边包含哪些文件或文件夹用法ls 选项 参数-l 以长格式显示文件内容。 第一列代表文件类型-代表普通文件l代表链接文件d代表文件夹-h 以易于阅读的方式显示文件大小-a 显示所有的文件包含隐藏文件以及.和..-A 显示除过.和.. 之外的所有文件夹包含隐藏文件。-t 按照文件修改时间降序倒序排列一般和-l一起使用-S 按照文件大小降序排列一般和-l一起使用-r 按照修改时间、大小升序排列一般和-t一起使用或者和-S一起使用-d 只显示文件夹本身ls还支持模糊搜索*代表任意0个或多个字符 *abc以abc结尾的文件、abc*以abc开头的文件、*abc* 包含了abc这三个连续字符的文件代表任意单个字符abc 以abc结尾的四个字符的文件名、abc以abc开头的四个字符的文件名[]匹配括号里的任意一个字符 [a-z]匹配a到z之间的任意一个字母、[0-9]匹配任意数字、[x1,x2,x3,...xn]匹配集合里边任意一个元素、[h-q]匹配h到q之间任意一个字母、[0-9,a-z,A-Z]匹配任意数字字母2、file查看文件的具体类型用法file 文件3、cd切换目录用法cd 路径4、pwd查看当前目录所在路径用法pwd二、文件操作命令1、touch创建空文件用法touch f1 f2 ... fn-t 修改文件编辑日期2、mkdir创建文件夹用法mkdir d1 d2 ... dn-p依次创建目录创建有层级关系的目录-v显示创建的过程。例创建一个多级目录mkdir -p ./a/b3、cp复制文件或文件夹用法cp 目标文件 目的地路径-r递归复制文件夹里边所有的子文件及子文件夹复制文件夹必须要加-i覆盖前询问不加-i也会询问-v显示复制的结果-p保留原文件日期属性4、mv移动或者重命名文件或文件夹用法mv 目标文件 目的地路径-i覆盖前询问不加-i时也会询问-f覆盖前不询问-v显示移动结果5、rm删除文件或文件夹用法rm 目标文件或文件夹-i删除前询问不加时也会询问-r删除文件夹时必须要加-f删除前不询问一般删除文件夹时和-r一起使用-v显示删除的结果例删除一个多级目录rm -rf ./a6、ln创建链接文件链接文件有两种类型一种叫软链接一种叫硬链接软链接相当于给一个文件或文件夹创建了一个快捷访问方式软连接里边存放的是目标文件的路径。相当于windows里边的快捷访问方式。硬链接相当于给文件起了一个别名如果一个文件有多个名字时我们删除该文件时只有把所有的名字都删了这样改文件才算是真的删了。一般会给比较重要的文件起别名防止文件被误删。硬链接只能给文件创建不能给文件夹创建。用法ln 选项 目标文件路径 链接文件路径-s创建软链接-d创建硬链接三、参看文件内容类命令1、cat满屏显示文件内容用法cat 选项 文件路径-n 显示所有行编号-b 显示非空行的编号-s 有多个连续空行时只显示一个空行附加用法cat f1f2 用文件f1的内容覆盖文件f2的内容cat f1f2 将文件f1的内容续写到文件f2后边cat f1 f2f3 将文件f1和f2的内容续写到文件f3后边快速清空文件内容cat 空文件f3 用空文件覆盖f3f3 直接清空echo f3 用一个空行覆盖f3查看内存使用情况cat /proc/meminfo查看CPU信息cat /proc/cpuinfo2、tac反向显示文件内容跟cat显示方式签好相反用法tac 文件路径3、more按照百分比显示文件内容可以按f或空格翻页可以按回车键往下翻一行用法more 文件路径4、less也可以按照百分比显示文件内容同时可以输入/字符串来搜索并标亮该字符串。用法less -M 文件路径5、head默认显示文件前10行用法head 文件路径-n K 显示文件前K行例查看/etc/profile 的前 100 行内容应该是# head -n 100 /etc/profile6、tail默认显示文件后10行用法tail 文件路径-n K 显示文件后K行-f 动态显示内容内容会自动刷新要结束可以按Ctrlc例①查看/etc/profile 的最后 50 行内容应该是# tail -n 50 /etc/profile②动态查看日志文件tail -f log_file7、echoecho 文字内容echo 会在终端中显示参数指定的文字通常会和 重定向 联合使用四、文件编辑命令1、vi、vimvi 创建一个文件并编辑它最后保存退出时命名vi new_file 创建命名一个文件并编辑它vi file 编辑一个已存在文件进入vi后有三种模式普通模式、插入模式编辑模式、命令模式普通模式xshell左下角最后一行显示文件名或什么都不显示插入模式xshell左下角最后一行显示--innsert--命令模式xshell左下角最后一行显示模式转换方式普通模式——插入模式 输入i插入模式——普通模式 安Esc键普通模式——命令模式 输入命令模式——普通模式 删除无法有插入模式直接转换为命令模式也无法有命令模式直接转化插入模式常见命令q 退出没有编辑文件内容下退出q 不保存退出。wq 保存并退出五、文件权限类命令r read可读、查看权限r4w write可写、可编辑权限w2x excute可执行、可操作权限x1- 没有对应的权限-0rwx r-x r-x前三位代表属主文件拥有者对文件拥有的权限、中间三位代表属组用户(同一个用户组同一个角色的用户)拥有的权限后三位代表其他用户拥有的权限例在Linux系统中一个文件的访问权限是755其含义是什么?该文件所有者对该文件具有读、写、执行权限该文件所有者所在组用户及其他用户对该文件具有读和执行权限1、chmod修改文件或文件夹的权限用法chmod 选项who operator permission文件或文件夹用法二chmod 选项 数字组合 文件或文件夹-v显示修改结果-R递归操作修改文件夹的时候同时修改其子文件子文件夹的权限who修改谁的权限u 属主g 属组o 其他用户a 所有用户operator代表操作有加权限取消权限加权限-取消权限permission代表权限r read可读、查看权限w write可写、可编辑权限x excute可执行、可操作权限2、chown修改文件夹或文件属主文件拥有者用法chown 选项 新的用户 文件或文件夹-v显示修改结果-R修改文件夹及其子文件子文件夹的属主。3、chgrp修改文件夹或文件属组用户组、角色用法chgrp 选项 新的用户组 文件或文件夹六、文件、文本搜索类命令1、find查找文件或文件夹所在路径用法find 搜索范围 选项 搜索关键字-name 按照文件名搜索支持模糊搜索-iname 按照文件名搜索不区分大小写-user 按照文件属主搜索-group 按照文件属组搜索-type 按照文件类型搜索f普通文件d文件夹l链接文件-path 按照路径搜搜一般路径多这样写 *关键字*如果有多个搜索条件时可以用-a 或者 -o连接-a表示且关系可以省略-o表示或关系不可省略在当前用户家目录中查找haha.txt文件find ~/ name haha.txt2、grep到某个文件中搜索包含该字符串的行并将包含该字符串的行显示出来。用法grep 字符串 文件路径-i 忽略大小写-n 输出匹配的行号-C K 除了显示符合样式的那一行之外并显示该行之前后的内容-v 显示不包含匹配文本的所有行--colorauto 该改字符串用颜色标注出来管道 |管道可以将第一个命令执行的结果作为第二个命令的输入参数传递给第二个命令比如ps -ef|grep firefox|grep -v grepgrep和find的区别? grep 都有哪些用法?①grep 用于在文件内容中按模式字符串/正则表达式匹配行它的使用权限是所有用户。ls -l | grep ‘^a’ 通过管道过滤ls -l输出的内容只显示以a开头的行。grep -i pattern files 不区分大小写地搜索。默认情况区分大小写②find 用于在文件系统中按属性如名称、类型、时间、大小等查找文件。-name 按照文件名查找文件。find /dir -name filename 在/dir目录及其子目录下面查找名字为filename的文件find . -name “*.c” 在当前目录及其子目录用“.”表示中查找任何扩展名为“c”的文件-type 查找某一类型的文件诸如 b – 块设备文件。 d – 目录。 c – 字符设备文件。 p – 管道文件。 l – 符号链接文件。 f – 普通文件。find /etc -type d –print 在/etc目录下查找所有的目录find . ! -type d –print 在当前目录下查找除目录以外的所有类型的文件find /etc -type l –print 在/etc目录下查找所有的符号链接文件七、用户、用户组管理命令1、useradd、adduser新增用户用法useradd 新用户名2、passwd设置或更新用户密码用法passwd 用户名 回车3、userdel删除用户用法;userdel 用户名-r删除用户的同时删除其主目录4、su切换用户用法su 用户名5、groupadd新增用户组用法groupadd 新的用户组名6、groupdel删除用户组用法groupdel 用户组名7、gpasswd管理用户组用法gpasswd 选项 用户 用户组-a 将用户加入用户-A 将用户设置为该用户组的管理员-d 将用户从用户组中删除8、groups查看用户所属用户组用法groups 用户名也可以使用id 用户名 或者 grep 用户名 /etc/group八、系统管理类命令1、ps静态显示系统进程表进程就是正在运行的应用程序用法ps 选项ps -ef 用标准格式列出系统中‌所有进程‌的完整格式信息UID、PID、PPID、STIME、CMD 等。ps -aux 查看系统里所有进程同时显示进程状态以及进程资源利用情况。查看某个应用程序有没有启动ps -ef|grep 应用程序进程名|grep -v grep例如检查 java 进程是否存在ps -ef |grep java2、top实时动态显示系统整体的运行情况用法toptop -d K 每隔开秒刷新一次默认每隔三秒刷新3、kill给进程发送信号指令用法kill -序号 进程号 或者 kill 指令明 进程号-l 查看指令列表kill -9 pid 结束某个进程4、alias给命令起别名用法alias 别名“命令组合”一般不要起别名可以给一些比较复杂的选项较多命令组合起别名。查看有哪些别名直接alias删除别名unalias 别名5、uname查看内核/OS/CPU信息uname -a 查看内核版本uname -r 查看处理器架构uname -m6、shutdown关机7、reboot重启九、磁盘管理类命令1、df显示文件系统的空间使用情况用法df [选项]-a 显示所有文件系统的磁盘使用情况包括0块block的文件系统-k 以k字节为单位显示。-h 以可读性较好的方式显示。-T 显示文件系统类型。2、du统计文件或文件夹大小用法du 选项 文件或文件夹du默认显示文件夹中每一层文件夹的大小不显示文件大小要想显示每一层子文件的内容需要加-als默认显示文件夹中第一次文件夹和文件大小不显示下一层文件夹内容要想显示每一层子文件的内容需要加-R-a 递归地显示指定目录中各文件及子孙目录中各文件占用的数据块数。-b 以字节为单位列出磁盘空间使用情况系统缺省以k字节为单位。-k 以1024字节为单位列出磁盘空间使用情况。-c 最后再加上一个总计系统缺省设置。-h 使用便于阅读的方式展示。3、free查看内存的使用情况模式free [选项]-b 以Byte为单位显示内存使用情况。-k 以KB为单位显示内存使用情况。-m 以MB为单位显示内存使用情况。十、网络管理类命令1、ifconfig查看或设置网络配置用法ifconfig 查看网络配置ifconfig 网卡名称 192.168.91.116 修改ip地址ifconfig 网卡名称 down/up 关闭网卡/启动网卡2、ipconfig查看IP地址3、ping查看当前主机和目标主机之间网络连接情况。用法ping 选项 目标主机的ip或域名-c设置完成要求回应的次数-f极限检测0间隔大量ping-i指定收发信息的间隔时间单位为秒-l设置在送出要求信息之前先行发出的数据包的个数3、netstat显示网络连接、路由表和网络接口信息查看某个端口号有没有被占用netstat -anp|grep :端口号查看当前机器listen的所有端口netstat -tlnp、sudo netstat -tuln、ss -tuln十一、备份压缩命令1、tar打包、压缩、解包、解压命令用法tar 选项 压缩包 目标文件-v显示结果-f指定归档后的文件-c 生成包或者压缩包生成压缩包时需要加压缩格式选项-z gzip格式压缩包-j bzip2格式压缩包-x 解包或者解压缩包解压缩包要加上压缩包格式。-t 查包的内容或压缩包的内容压缩包需要加上压缩格式。例把一个文件夹打包压缩成-tar.gz的命令以及解压拆包.tar.gz的命令?tar zcvf xxx.tar.gz filetar zxvf xxx.tar.gz2、zip把文件压缩成zip格式模式zip [选项] [压缩后的文件名] [文件或者目录]-r 递归操作将文件夹及其子文件子文件夹一并压缩文件夹必须加-r-v 显示压缩过程3、unzipunzip命令用于解压缩zip文件。unzip [选项] [目标文件]-v 执行时显示详细信息-d 指定解压缩后的文件存储目录-l 显示压缩文件包含的文件4、gzipgzip命令用于压缩文件。gzip是个使用广泛的压缩程序文件经它压缩过后其名称后面会多出.gz的扩展名。5、rarrar解压rar压缩包是一个第三方命令linux内核里并没有需要单独安装模式rar [选项] [压缩包]a 添加文件到压缩包或生成压缩包lb只看压缩包包含什么文件e 解压缩包十二、程序安装类命令linux安装包有两类二进制的安装包、源码安装包二进制安装包安装包开发后经过编译了不可以进行二次开发安装过程比较简单且安装过程是一个完整的整体要么安装成功要么安装失败。源码安装包安装包开发后没有经过编译安装包可以进行二次开发安装过程比较复杂安装过程需要现设置安全前的一些参数设置比如安装路径的设置然后需要编译然后才进行安装操作。1、rpm可以进行二进制软件包的安装、卸载、升级等操作。用法rpm 选项 软件包-i 安装软件install-e 卸载软件 delete-U 更新升级软件update-v 显示过程-h 显示安装进度-q 查看是否安装了某个软件包querry源码安装包安装过程一共三步1.使用./configure 设置安装前的一些参数配置执行完后会生成makefile文件makefile文件用于指导编译如果这一步操作出现问题则无法进行下一步编译操作。2.make 编译源代码3.make install 安装源代码例如一个名叫xx系统的安装步骤xx系统是一款BS模式的应用程序。采用的LAMP架构L代表操作系统是linuxA代表Apache阿帕奇网络服务管理系统M代表mysql数据库管理系统P代表PHP开发语言搭建过程1.先安装依赖应程序2.安装apache网络服务管理系统安装好之后需要设置端口号还要开机自启动3.安装mysql数据库管理系统然后设置端口号添加管理员账户并给管理员授权。4.安装php开发语言然后调试apache让其支持php5.将xx系统代码包放到apache对应的文件夹下然后通过浏览器打开配置界面连接数据库创建管理员生成测试数据即可。2、yumyum Yellow dog Updater, Modified是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基于RPM包管理能够从指定的服务器自动下载RPM包并且安装可以自动处理依赖性关系并且一次安装所有依赖的软体包无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令。十三、常见场景的应用1.查看占用CPU使用率最高的进程?①top命令可实时查看系统中各进程资源占用情况包括CPU使用率②htop是top命令的增强版③查看 CPU 占用最高的前 K 个进程ps -aux | sort -k3nr | head -K2.如何过滤文件内容中包含ERROR的行?grep “ERROR” file_namecat file_name | grep “ERROR”findstr ERROR file_name3.查看某进程号?①ps aux 用BSD的格式来显示进程ps aux | grep 用户名②ps -ef 用标准格式列出系统中‌所有进程‌的完整格式信息UID、PID、PPID、STIME、CMD 等。例如检查 java 进程是否存在ps -ef |grep java4.如何查询出tomcat的进程并杀掉这个进程写出linux命令?ps -ef | grep tomcatkill -9 tomcat_port5、查看系统硬盘空间的命令?df -h参考文件史上最全的Linux常用命令汇总超全面赶紧收藏史上最全的Linux常用命令汇总超全面超详细收藏这一篇就够了-腾讯云开发者社区-腾讯云https://zhuanlan.zhihu.com/p/429854667Linux操作系统基础五Linux的目录结构-腾讯云开发者社区-腾讯云