linux简单入门

Posted Edison.W

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux简单入门相关的知识,希望对你有一定的参考价值。

目录

Linux简介

Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它支持32位和64位硬件,能运行主要的Unix工具软件、应用程序和网络协议。
Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。----来自百度

Linux目录结构

linux没有像windows一样的盘符该鸟,所有文件都在根目录下存储。

  • 绝对路径:以根目录为起点,完整地表示到目标文件或目录的路径。

    • 比如就是/home/kali/1,表示的就是根目录下home目录下kali目录下的1文件
  • 相对路径:以当前目录为起点,完整地表示到目标文件或目录的路径。比如./kali/1

/ bin :基本程序,存放着最经常使用的命令
/boot:存放linux启动时的引导文件
/ dev :设备信息
/etc:存放系统管理所需的配置文件
/home:普通用户家目录
/lib:存放最基本的动态链接共享库,类似windows里的dll文件。
/media:系统识别的一些U盘、光驱等设备挂载到这个目录下
/mnt:默认临时挂载目录
/opt:这是给主机额外安装软件所摆放的目录
/proc:进程信息
/root:root用户家目录
/run:是一个临时文件系统,存储系统启动以来的信息
/sbin:存放的是系统管理员使用的系统管理命令
/srv:存放一些服务启动之后需要提取的数据
/sys:内核文件系统
/tmp:存放临时文件,重启后清空
/usr:用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录
/var:存放日志等不断扩充的文件目录

Linux文件命令

  • linux命令遵循一定的基本格式:Command [options] [argument] 也就是命令 [选项] [参数]

文件处理命令

  • ls:命令显示指定工作目录下的内容,如果不提
    供参数,ls将在当前目录上运行。

    • 选项与参数:
      -a:列出指定目录下的所有文件和子目录(包括以“.”开头的隐藏文件)。
      -l:使用长格式显示文件或目录的详细属性信息。

    • ls -al:使用格式化列出隐藏文件

  • touch:更新已存在的文件的事件标签,若文件不存在则创建一个新的文本文件

  • mkdir:创建目录

    • 参数:
      -p:若路径中目录不存在,则创建新目录
      mkdir -p dir/1/2/3/4创建多层目录
      -v:查看文件创建过程
  • cp:将一个或多个源文件复制到指定目录

    • 参数:
      -r :递归处理,将指定目录下的文件及子目录一并处理
      -p:拷贝的同时不修改文件属性,包括所有者,所属组,权限和时间
  • mv:命令用于移动或重命名目录或文件

    • 参数:
      -b: 若需覆盖文件,则覆盖先前备份
      -f:强制的意思,如果文件已经存在,不会询问直接覆盖
  • rm:用于删除一个文件或目录

    • 参数:
      -f:强制删除文件或目录
      -rf:选项-r与-f结合,删除目录中所有文件和子目录,且不一一确定
      -i:在删除文件或目录对要删除的内容逐一进行确认
  • rmdir:删除目录

    • 比如 rmdir dir
  • pwd:显示当前目录绝对路径
    cd命令:改变当前工作目录
    cd ~ //进入home目录,~表示home目录,每个用户的home目录不同,root用户的home目录为/root,其他用户的home目录默认为/home/用户名
    cd / 回到根目录
    cd … 回到上一级目录

文件查看命令

常用文件查看命令

  • cat

    • 原意:concatenate and display files
    • 文件功能:打印文件内容到输出设备
    • 格式:cat 文件名
    • 实例: cat 123.txt
    • 选项和参数
      -b:列出行号,仅针对非空白行号显示,空白行不标行号;
      -n:打印出行号,连同空白行也会有行号,与-b的选项不同
  • more

    • 查看file的内容(一页一页的显示档案内容)
    • 空格键(space):代表向下翻一页
      回车键(Enter):代表向下翻一行
      b 键:往前查看一页;
      q 键:退出。
  • head:

    • 查看file的前10行
    • head -n 20 fliename 查看前20行
  • tail:

    • tail -n 文件名查看文件的后n行
    • tail -2 filename 查看一个文件的最后两行
      tail -n +100 只列出100行及以后的数据
  • grep命令可以在指定文本文件中匹配字符串,输出匹配字符串所在行的全部内容。

    • 命令格式: grep [选项] 关键字 查找范围
    • 常用选项
      -e:指定字符串做为查找文件内容
      -n: 在显示符合样式的那一行之前,标示出该行的行号
      -r:以递归的方式查找符合条件的文件,并打印出该字符串所在行的内容

编辑文件

  • vi编辑器

vi/vim 的介绍

是linux中最通用的文本编辑器,vim编辑器是从vi发展出来的一个性能能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计,vim与vi编辑器完全兼备

vi/vim 三种模式:命令模式/一般模式(command mode)、插入模式(input mode)、末行模式/指令命令模式(last line mode)。

插入模式:

在一般模式下按下键盘【i, I, o, O, a, A】进入插入模式,屏幕的左下方会出现【–INSERT–】的字样,表示当前模式下,用户可以编辑修改文本的内容。按下【Esc】则退出编辑模式。

末行模式/指令命令模式:

在一般模式下按下键盘【: / ?】任意一个,光标移动到最下面一行,进入末行模式。可以查找数据、替换、可保存文件、退出 vi、显示行号等操作。

  • 复制粘贴:
    yy 复制光标所在行
    p 粘贴
    dd 删除光标所在行(实际是剪切)
    x 删除当前光标所在的字符
    X(大写) 删除当前光标前一个字符
    光标移动:
    h 左移 j 下移 k 上移 l 右(四个箭头也可以上下左右移动)
    H 当前屏幕第一行
    M 当前屏幕中间
    L 当前屏幕最后一行

命令模式
:或者/
w 保存
q 退出
wq 或 x 保存退出
q!不保存强制退出
wq!强制保存并退出,管理员才有权限

Linux的用户和组介绍

用户

  • Linux用户类型分为三类:超级用户、系统用户和普通用户
  • 超级用户:用户名为root或USER ID(UID)为0的账号,具有一切权限,可以操作系统中的所有资源。Root用户可以进行基础的文件操作及特殊的系统管理,可以修改系统中的任何文件。
  • 系统用户 UID 为 1~999: Linux 系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏围。
  • 普通用户 UID 从 1000 开始:是由管理员创建的用于日常工作的用户,能够使用Linux的大部分资源,一些特定的权限受到控制。用户只对自己的目录有写权限,读写权限受一定的限制,有效保证了系统安全性。
  • 需要注意的是,UID 是不能冲突的,而且管理员创建的普通用户的 UID 默认是从 1000开始的(即使前面有闲置的号码)。

用户组

  • 有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,此时最好的方式是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中。那么,所有用户就具有了和组一样的权限,这就是用户组。
  • 用户和用户组的对应关系有以下 4 种:
    • 一对一:一个用户可以存在一个组中,是组中的唯一成员;
    • 一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限;
    • 多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限
    • 多对多:多个用户可以存在多个组中,也就是以上 3 种关系的扩展。

相关命令
id 查看当前用户身份信息
id user 查看user用户身份信息
whoami 查看当前登录用户名

sudo 以管理员身份执行命令,普通用户默认无法使用sudo命令,需要将用户添加到wheel组当中

su - username是用来改变当前用户的,如:su - root,就是将当前用户切换为root连同环境变量一同切换到root用户,用了su - root之后,下面所有的命令就可以不用打sudo了,因为当前用户已经是管理员root了。同时当从 root用户切换到普通用户时不需要输入密码,而从普通用户切换成 root用户需要进行验证;


  • useradd 创建新的用户
  • 格式:user [选项] 用户名
  • 选项:-d制定用户的家目录 ; -u指定用户逇默认UID; -g制定一个初始的用户基本组

  • passwd 修改用户密码、过期时间、认证信息等
  • 格式:passwd [选项] [用户名]
  • 参数
    • -l 锁定用户,禁止其登录
      -u 解除锁定,允许用户登录
      -d 使该用户可用空密码登录系统
      -e 强制用户在下次登录时修改密码

  • userdel 命令用于删除用户
  • 格式为“userdel [选项] 用户名”。
  • -r //同时删除用户及用户家目录

  • usermod用于修改用户的属性
  • 格式为“usermod [选项] 用户名”。
  • 参数
    • -d -m 参数-m 与参数-d 连用,可重新指定用户的家目录并自动把旧的数据转移过去
      -u 修改用户的 UID
      -g 变更所属用户组
      -G 变更附加用户组
      -l 修改用户名称

Linux权限管理

之前写过,点这里看

每个文件的权限针对三类对象进行定义:

  • 它的所有者(由u表示)
  • 它的所有组(由g代表),代表该组的所有成员
  • 其他(由o表示,除所有者和所有组的用户)

  • 以下三个命令控制与文件关联的权限:
  1. chmod 更改文件的权限
  2. chown 更改文件的所有者
  3. chgrp 更改所有者组

chmod 修改文件权限
选项
-R : 对目标目录下的所有文件与子目录进行相同的权限变更(以递归的方式逐个变更)

示例:
chmod o=w file 表示给其他人授予写入file这个文件的权限
chmod go-rw file 表示删除file中组群和其他人的读和写的权限


chgrp 更改文件的属组

语法格式
chgrp 选项 username filename

选项
-R:进行递归的持续变更,亦即连同次目录下的所有档案都变更

linux入门基础知识及简单命令介绍

linux入门基础知识介绍

1、计算机硬件组成介绍

计算机主要由cpu(运算器、控制器),内存,I/O,外部存储等构成。

    cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作。不能从硬盘中直接取数据。

    内存从外部存储中取出数据供cpu运存。内存的最小单位是字节(byte)

备注:由于32的cpu逻辑寻址能力最大为32内存单元。因此32位cpu可以访问的最大内存空间为:4GB,算法如下:

2^32=2^10*2^10*2^10*2^2

  =1024*1024*1024*4bits

  =1024*1024*4Kbit

  =1024*4Mbit

  =4Gbit

32位cpu可以有4Gbit种变化,但是由于内存最小单位是字节,因此可以访问的内存空间是4GByte


2、操作系统组成及系统功能

    一个完整的linux操作系统由内核(kernel)+gun开源程序组成,因此linux的完整叫法又叫GUN\linux

    kernel的作用是:隐藏底层硬件,并向上一层提供驱动接口(ABI:application binary interface)。

    

3、linux主流发行版及开源协议

    linux是一个开源协议的产物,他由很多linux开发人员共同完成。

    所谓开源就是开放源代码,源代码需经过编译器编译成二进制格式才能被机器所认识。但是不是每个人都可以有能力对源码进行编译,因此有些厂商或组织将他们编译成二进制,提供给用户直接使用。这种将源码编译成二进制的厂商或组织即为liunx发行商,发布的linux产品即为发行版。

    主流的发行版有:

        debian 二次发行版ubuntu\knopix

        redhat 二次发行版redhat enterprise(RHEL企业版),以及基于二次RHEL发行的再次发行版centos(企业版)

        sls  二次发行版 slack ware ,基于slackware发行的S.U.S.E(企业版)和opensuse(个人版)。

    其中redhat和sls有商业公司支持,debian是社区支持。


    所有的开源产品必须有一种协定被大家所遵守并接受,因此有了开源协议。

    开源协议主要有如下几种:GPL、LGPL、BSD、APACHE

gpl:所有的人都可以随便使用源代码,但是只要引用了gpl协议中的代码,就必须开放源代码。

lgpl:如只调用库文件,则不必开放源代码

BSD和apache则相对宽松,只要不以作者的名义发布软件就可以。


4、程序包管理器介绍

    一个完整的程序包括如下部分:二进制可执行文件、库文件、配置文件、帮助文件。

    程序包管理器的作用是管理程序包的安装、载知询、升级等作用。

    linux主流发行版程序包管理器:

        debian:dpkg

        redhat:rpm

        suse:rpm


    winodws程序包格式是.exe或msi,linux程序包格式ELF,查看linux程序包命令:]# file 命令路径

如:

        [[email protected] ~]# file /bin/cat
        /bin/cat: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses         shared libs), for GNU/Linux 2.6.18, stripped
        [[email protected] ~]#


5、linux操作接口介绍及分类

    linux操作交互窗口有两种:GUI图形界面(gnome、kde)、CLI命令行接口。

    CLI接口主要有如下几种:

        物理终端:console

        虚拟终端:ttys     对应目录:/dev/tty#   //#代表终端号码 ,在终端界面中按ctrl+alt+[f1-f7]

        伪终端:pty        对应目录:/dev/pts/   ,   远程桌面、图形界面的终端

        

6、linux哲学思想介绍

    linux哲学思想有如下几点:

        遵循一切皆文件,硬件设备也会被用文件的方式体现。

        由众多的小程序拼凑而成


7、linux入门命令介绍:

ifconfig:查看ip地址,也可以使用ip  addr list

[[email protected] ~]# ifconfig

[[email protected] ~]# ip addr list


echo:回显命|p>[[email protected] ~]# echo hello word
hello word


tty:此命令主要用显示在哪个终端上

[[email protected] ~]# tty
/dev/pts/0


startX:启动图形界面,centos7中,在哪个终端上显示

export:


pwd:输出目录所在路径

[[email protected] ~]# pwd
/root


history:显示历史命令记录


shutdwon :关机命令

     shutdown  [OPTION]...   TIME [MESSAGE]

        option:

            -r:reboot重启

            -h:halt  关机命令

            -c:取消shutdown操作

            -k:发送提示信息,并不执行e擏作


         time:

                now:立即执行相应操作

                 hh:mm  :在几点几分执行操作

                +m :当前时间起几分钟后执行操作

    

poweroff:关机或重启命令

 --verbose :用于debug信息。


reboot:等同于poweroff


hwclock:显示系统硬件时间,等同于clock

[[email protected] ~]# hwclock
Mon 28 Aug 2017 04:06:55 PM CST  -0.625266 seconds
[[email protected] ~]# clock
Mon 28 Aug 2017 04:07:09 PM CST  -0.500248 seconds
[[email protected] ~]#


hwclock的命令选项:

-s, --hctosys;Set the System Time from the Hardware Clock.将硬件时间同步到系统时间
-w, --systohc; Set the Hardware Clock to the current System Time.将系统时间同步到硬件时间


        date:显示、设置系统时间,系统启动时从硬件读取时间,启动后将不在使用硬件时间,而是使用系统时间。

[[email protected] ~]# date
Mon Aug 28 16:17:10 CST 2017

命令使用格式:

        显示时间  

      date [OPTION]... [+FORMAT]

               FORMAT

                +%d:天

                +%m:月

                +%y:年

                +%M:分钟

                +%H:时

                +%S:秒


    设置时间

        date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

        [[email protected] ~]# date 082816312017.30
        Mon Aug 28 16:31:30 CST 2017




cd:切换目录命令

        ]#cd    :不加参数,表示切回用户家目录

        ]#cd ~ :表示切回用户家目录,~表示用户家目录

        ]#cd - :表示在当前目录和上一次目录间来回切换。此时涉及两个变量PWD和OLDPWD

                

8、linux命令分类及帮助信息分类

    linux命令分为内嵌命令和外部命令。

   查看命令属于内嵌命令或外部命令:

        ]# type  命令

      如  [[email protected] ~]# type cd
            cd is a shell builtin            //内嵌命令

            [[email protected] ~]# type cat
            cat is /bin/cat                //外部命令


    内嵌命令帮助:]#help  命令

        如:[[email protected] ~]# help cd
                cd: cd [-L|-P] [dir]
                Change the shell working directory.

    外部命令帮助:

      ①  ]#命令  --help

         如:[[email protected] pts]# ls --help
                Usage: ls [OPTION]... [FILE]...
                List information about the FILEs (the current directory by default).
                Sort entries alphabetically if none of -cftuvSUX nor --sort.

        
      ②]#man  命令

            [[email protected] pts]# man   #    命令    //#表示章节
       man命令使用格式:

man  [-acdfFhkKtwW]  [--path]  [-m  system] [-p string] [-C config_file] [-M pathlist] [-P pager] [-B browser] [-H htmlpager] [-S section_list]
       [section] name ...

man章节介绍
       1      User Commands       //普通用户,系统用户命令使用帮助
       2      System Calls            //系统调用使用帮助
       3      C Library Functions            //c库函数功能使用帮助
       4      Devices and Special Files        //设备和特殊文件使用帮助
       5      File Formats and Conventions    //文件格式和协议使用帮助
       6      Games et. Al.                            //游戏帮助
       7      Miscella

       8      System Administration tools and Deamons    //系统管理员及守护进程帮助


9、linux系统目录命名规则

        可以使用除了/以外的任意字符,但是不建议使用特殊字符和空格

        目录名严格区分字符大小写

        目录名长度不能超过255个字符

        同一目录下的目录和文件不能同名。


10、linux中字符引用介绍:

        ‘    ’:强引用,字符的含义发生改变

          ”“   :弱引用,字符的如是变量,则显示变量值,改变原来字符的值。

[[email protected] ~]# echo ‘$PWD‘
$PWD
[[email protected] ~]# echo "$PWD"
/root



以上是关于linux简单入门的主要内容,如果未能解决你的问题,请参考以下文章

VirtualProtectEx 的 Linux 等效项?

Linux/Unix学习笔记—— 入门

系统 day67 Linux入门

Linux入门及企业服务器知识学习笔记

Linux入门

linux学习入门标准教程