linux入门知识以及操作命令大全 2020年03月03日 未雨晴空 0评论 250阅读 1喜欢 阅读模式 隐藏边栏 显示边栏 # 一、linux简介 ## 1.1 linux起源 * Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。 * Linux是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。 * Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。 ## 1.2 linux的发行版 说简单点就是将Linux 内核与应用软件做一个打包。Linux 的发行版图如下:  ## 1.3 Linux目录结构介绍  * bin >bin是Binary的缩写, 这个目录存放着最经常使用的命令。 * boot >这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 * dev >dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。 * etc >这个目录用来存放所有的系统管理所需要的配置文件和子目录。 * home >用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 * lib >这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 * media >linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。 * mnt >系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在*mnt*上,然后进入该目录就可以查看光驱里的内容了。 * opt >这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 * sbin >就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 * sys >这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个 文件系统 sysfs 。 >sysfs文件系统集成了下面3种文件系统的信息: > + 针对进程信息的proc文件系统 > + 针对设备的devfs文件系统 > + 针对伪终端的devpts文件系统。 >该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。 * tmp >这个目录是用来存放一些临时文件的。 * usr >这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。 * var >这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 ## 1.4 linux文件颜色代表含义 1. 蓝色:表示目录 2. 绿色:表示可执行文件 3. 红色:表示压缩文件 4. 浅蓝色:表示链接文件 5. 白色:表示文本文件 6. 黄色:表示设备文件 ## 1.5 linux文件权限  **如一列文件信息如下:** ``` drwxr-xr-x. 103 root root 12288 Aug 13 07:28 etc ``` * 第一列(drwxr-xr-x) >包含文件类型和所属主,所属组以及其他组用户对此文件的操作权限,共10位,其中第一位描述此文件的类型; >* 前三位(rwx)为所属主(user)的操作权限 >* 中间三位(r-x)为所属组(group)用户的操作权限 >* 最后三位(r-x)为其他组(others)用户的操作权限; >* d 表示此文件为目录文件 >* \- 表示此文件位文本文件 >* | 表示此文件为链接文件 >* b 表示此文件为设备文件 >* r 可读 >* w 可写 >* x 可执行 * 第二列(103) >为链接时表示占用的节点(node),若为目录时表示此目录下的文件个数 * 第三列(root) >表示此文件的所属主 * 第四列(root) >表示此文件的所属组 * 第五列(12288) >表示此文件的大小 * 第六七八列 >表示此文件的创建或修改时间 * 第九列 >表示此文件的文件名,如果前面有一个"."则表示为隐藏文件 # 二、linux命令 ## 2.1 ls命令 > ls:列出目录内容 语法:ls [选项] [文件或者目录] * `ls -a :显示所有文件,包含隐藏文件(以"."开头)` * `ls -l :长格式显示文件的详细信息` * `ls -t :以时间排序,ls命令默认是按照文件名称排序` * `ls -al :列出当前目录下所有的文件信息(包括隐藏文件,特殊目录)` * `ls -r :反向排序` * `ll :列出当前目录下的文件信息` ## 2.2 cd命令 > 语法:cd [目录] * `pwd:打印当前目录` * `ll :查看当前目录下的内容` * `cd / :切换到根目录` * `cd ~ :切换到当前用户目录` * `cd . :表示当前目录,` * `cd .. :表示上一级目录` * `cd - :表示前一个目录` ## 2.3 mkdir命令 > 语法:mkdir 【选项】 【目录】 * `-p :父目录不存在情况下先生成父目录` * `mkdir a :当前目录下创建文件夹a` * `mkdir /root/b :在根目录下的root下创建目录b` * `mkdir -pv /root/c/e/d :在根目录下的root下创建目录结构c/e/d` ## 2.4 创建文件 > touch:创建文本文件或修改文本文件时间 注意:如果文本文件不存在则创建,如果存在则更新文本文件最后操作时间为当前系统时间; * `查看当前系统时间:date` ```bash ln -sf /usr/share/zoneinfo/posix/Asia/Shanghai /etc/localtime #将系统时间改为上海所在的时区 ``` ## 2.5 cp命令 > cp:复制文件 语法:cp [选项] [源文件或目录] [目标文件或目录] 选项: -r :递归复制子文件,用于复制目录时 -a :复制时保留源文件的所有属性(包括权限,时间等) * `cp install.log install02.log` * `cp -b install.log install02.log :如果覆盖文件时,可以将源文件做一个备份` * `cp ./install.log ../ :将当前目录下的install.log复制到父级目录` * `cp /root/install.log /bin/1.txt :将/root下的install.log文件复制到根目录下的bin目录下的1.txt中` ## 2.6 mv命令 > mv:移动(重命名)文件 mv [选项][源文件或目录][目标文件或目录] > 选项: > -f :若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录 * `mv /root/install.log /root/a/ :移动文件` * `mv /root/install.log /root/test.log :重命名文件` ## 2.7 rm命令 > rm:删除文件 语法:rm 【选项】 【文件】 > 选项 : > -f :不提示,强制删除文件或者目录 > -r :递归处理。将指定目录下的所有文件及子目录一并处理 * `rm -rf /root/ :目录名称` ## 2.8 cat命令 > cat:查看文件的内容 > 语法:cat [选项] 文件 > 选项: > -b :显示行号,空白行不显示行号 > -n :显示行号,包括空白行 ## 2.9 more命令 > more:分页查看文件内容,还支持直接跳转行等功能 语法:more [文件] * `enter :向下n行,需要定义,默认为1行` * `空格键 :向下滚动一屏或ctrl+F` * `B :返回上一屏或ctrl+F` * `q :退出more` ## 2.10 less命令 > less:分页查看文件内容,通过空格查看下一页,q键则退出查看,方向上下回翻; 语法:less [选项] [文件] > -m :显示类似more命令的百分比 > -N :显示每行的行号 * `空格键 :前进一页` * `b :后退一页` * `d :前进半页` * `u :后退半页` * `回车键 :前进一行` * `y :后退一行` * `/字符串 :向下搜索` * `?字符串 :向上搜索` * `v :进入vim编辑器` * `左右方向键 :相当于水平滚动条` * `q :退出` * `head:查看文件头部内容,默认显示前10行` > head [选项] [文件] 选项: > -n 显示文件前n行的内容 > -c nk 显示文件前nKB的内容 ## 2.11 tail命令 > tail:查看文件尾部内容,默认显示末尾10行,不指定文件时,作为输入信息进行处理,常用查看日志文件 > 语法:tail [必要参数] [选择参数] [文件] > 选项: > -f :动态显示文件尾部内容,用于查看日志,按Ctrl+C组合键退出 > -n<行数> :显示行数 > -c nk :显示文件末尾nKB的内容 > -f :动态显示文件尾部内容,用于查看日志,按Ctrl+C组合键退出; ## 2.12 wc命令 > wc:显示文件的行、单词、与字节统计信息 wc 【选项】 【文件】 > 选项: > -c :显示文件字节统计信息 > -l :显示文件行数统计信息 > -w :显示文件单词统计信息 ## 2.13 find命令 > find: 搜索文件 语法:find [路径] [选项] [表达式选项] > 选项: > -empty :查看空白文件 > -name :按照文件名查找 > -iname :按文件名查找且不区分大小写 > -mtime :按照创建时间查找 > -type :按照文件类型查找文件(f),目录(d),链接(l) > -user : 按用户查找 * `find . -name '*.txt' :查找后缀为.txt的文件` * `find /etc -name 'host*' :在etc目录下查找文件包含host的文件` * `find . -type f :查找文件` * `find . -mtime -2 :查找2天内修改过的文件` ## 2.14 gzip命令 > gzip:压缩与解压缩(无法压缩目录) > gzip [选项] [文件] > 选项: -d :解压 * `gzip /a/b/c/a.txt 将文件压缩为a.txt.gz` * `gzip -d /a/b/c/a.txt.gz` ## 2.15 bzip2 > bzip2:压缩与解压缩(无法压缩文件夹) > bzip2 【选项】 【文件】 选项: > -d 解压 ## 2.16 tar命令 > tar:打包与解包 > 语法:tar [选项] [文件] > 选项: > -c :压缩 > -x :解压 > -f :指定压缩或者解压的文件名称 > -j :是否需要用bzip2压缩 > -z :是否需要用gzip压缩 > -v :显示压缩过程 * `常用解压参数组合:zxvf` * `常用压缩参数组合:zcvf` 如: * `tar -czvf /a/b/c/a.txt.gz.tar a/b/c/a.txt 打包时不能在前加"/";` * `tar -xzvf /a/b/c/a.txt.gz.tar` ## 2.17 管道命令 > * Linux提供管道符号"|"。作用是"命令1"的输出内容将作为"命令2"的输入内容。一般是和grep命令一起使用 > * 格式:命令1|命令2 ## 2.18 grep命令 > grep全称是global regular expression print表示全局正则表达式版本 功能:用户过滤、搜索的特定字符。可使用正则表达式能多种命令配合使用,使用上是十分灵活 格式:grep [参数] [过滤条件] [文件] 参数: -i :忽略字符大小写的差别 * `grep -i hello 111.txt :查看111.txt文件中含有hello字符串的内容` * `cat 111.txt|grep -i hello 111.txt :查看111.txt文件中含有hello字符串的内容` ## 2.19 vi或vim命令 ### 2.19.1 基本操作 * `输入"vim [文件名]"进入"一般模式"` * `按下"i"从一般模式进入"插入模式"` * `按下"esc"从"插入模式"退出到"一般模式"` * `在"一般模式"下输入":wq"退出编辑` ### 2.19.2 vi基本概念 基本上vi可以分为三种状态,分别是命令模式,插入模式,底行模式,各模式的功能区分如下: * 命令行模式 >控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入插入模式下,或者到底行模式 * 插入模式 >只有在插入模式下才可以做文字输入,按ESC可以回到命令行模式 * 底行模式 >将文件保存或退出vi时,也可以设置编辑环境,如寻找字符串、列出行号等  ### 2.19.3 常用命令 * 插入(命令模式下) > i :在光标前插入 > shift+i :在光标当前行首部插入 > a :在光标后插入 > shift+a :在光标当前行末尾插入 > o :在光标当前行的下一行插入新行 > shift+o :在光标当前行的上一行插入新行 * 复制或粘贴(命令模式下) > yy :单行复制,将光标移动到将要复制的行处 nyy :多行复制,将光标移动到将要复制的首行处 p :粘贴,将光标移动到将要粘贴的行处 * 定位(命令模式下) > gg :到文本的第一行 shift+g :到文本的最后一行 * 删除(命令模式下) > dd :删除光标所在行 ndd :删除n行 * 退出(命令模式下) > :q :退出vi > :q! :强制退出不保存 > :w :保存不退出 > :wq :保存后退出 ## 2.20 ps命令 >功能:ps命令是process status的缩写,提供对进程的一次性查看 格式:ps [参数] > -e :此参数的效果和指定"A"参数相同,显示所有程序 > -f :显示UID,PPIP,C与STIME栏位 * `ps aux|grep -i ping` * `ps -ef|grep -i ping` ## 2.21 kill命令 > kill功能:删除执行中的程序或工作 > 语法:kill [参数] [程序] * `kill -9 表示强制终止` * `kill -9 pid` ## 2.22 ifconfig命令 > 功能:显示网络设备 ## 2.23 ping命令 > 功能:测试与目标主机的连通性 > 命令:ping 主机名或者id地址 ## 2.24 chmod命令 > 功能:变更文件或者目录的权限 > 语法:chmod[参数][<权限范围><符号><权限代号>] > -R :递归处理。将指定目录下的所有文件及子目录一并处理 ### 2.24.1 权限范围的表示法如下: * `u:User,即文件或目录的拥有者` * `g:Group,即文件或目录的所属群组` * `o:Other,除了文件或目录的拥有者或所属群组,其他用户皆属于这个范围` * `a:All,即全部的用户,包含拥有者,所属群组以及其他用户` ### 2.24.2 权限符号: * `+ :添加权限` * `- :移除权限` ### 2.24.3 权限代号: > r:读取权限,数字代号为4 > w:写入权限,数字代号为2 > x:执行权限,数字代号为1 > -:不具有任何权限,数字代号为0 > 每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。即我们可以用用三个8进制数字分别表示拥有者 、群组 、其它组( u、 g 、o)的权限详情,并用chmod直接加三个8进制数字的方式直接改变文件权限 若要同时设置 rwx (可读写运行) 权限则将该权限位设置为4+2+1= 7 若要同时设置 rw- (可读写不可运行)权限则将该权限位设置为4+2=6 * 设置所有人可以读写及执行`chmod 777 file` * 设置拥有者可读写,其他人不可读写执行`chmod 600 file` * `chmod u-rwx xxx` :取消xxx目录,用户“读写执行”权限 * `chmod g-rwx xxx` :取消xxx目录,组“读写执行”权限 * `chmod 777 xxx` :给xxx目录添加所有权限 © 著作权归作者所有,欢迎转载,转载请说明出处:未雨晴空博客,谢谢理解! 喜欢 打赏 分享 上一篇 下一篇 发表评论 取消回复 电子邮件地址不会被公开。 表情 请输入以http或https开头的URL,格式如:https://oneisall.top 提交评论