linux入门知识以及操作命令大全

2020年03月03日 未雨晴空 0评论 1503阅读 1喜欢

一、linux简介

1.1 linux起源

  • Linux内核最初只是由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
  • Linux是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。
  • Linux 能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

1.2 linux的发行版

说简单点就是将Linux 内核与应用软件做一个打包。Linux 的发行版图如下:
Linux内核

1.3 Linux目录结构介绍

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
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时,也可以设置编辑环境,如寻找字符串、列出行号等
    vim

    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