zoukankan      html  css  js  c++  java
  • Linux基础知识

    1、Linux内核与发行版

      Linux本身指的是一个操作系统的内核,而内核是无法直接使用的,只有既包括内核又包括一些有用的应用程序的一个集合体,即Linux的发行版才是我们所需要的;

      Linux的发行版:Debian(Debian运行起来极其稳定,适合用于服务器)、Gentoo(包含数量众多的软件包)、Ubuntu(Ubuntu是Debian的一款衍生版,也是当今最受欢迎的免费操作系统)、红帽企业级Linux(第一款面向商业市场的Linux发行版)……

    2、GUI和cmdline

      人机交互时,常用GUI或cmdline,Windows、Linux中既有GUI又有cmdline,但Windows中常用GUI,Linux中常用cmdline;

      GUI:图形用户界面,(Graphical User Interface,又称图形用户接口),是指采用图形方式显示的计算机操作用户界面;

      

      cmdline:命令行,(command line);

    3、隐藏文件与非隐藏文件

      Windows:文件隐不隐藏是可以通过设置文件属性来实现的。在Windows中查看隐藏文件方法:菜单栏 工具->文件夹选项->查看->显示所有文件;

      Linux:隐藏文件以.开头,与文件属性无关。在linux中查看隐藏文件用ls -a命令;

    4、绝对路径与相对路径

      路径(pathname):用来标识一个文件在文件系统中存储的位置;

      如:C:Windows est.c    全路径  pathname

        C:Windows        路径   path

        test.c            文件名  name

      绝对路径:从某一盘符c:开始(Windows)或根目录/开始的路径;

      相对路径:相对于现在位置开始的路径;

      如:C:Windows11.c

        C:Windows22.c

        当前在1.c,要去2.c,使用绝对路径:C:Windows22.c

                    相对路径:../2/2.c

    5、Linux常用命令

      (1) ls (list,列表):以列表形式把当前文件夹下的所有文件显示出来;

        ls -a  显示所有文件(包括隐藏文件)

        ls -l  显示文件的详细信息

        可以搭配起来使用:ls -al  ls -la  ls -a -l  ls -l -a

      (2) cd (change directory,变更目录):切换目录;

        cd ..  ..表示上一层目录

        cd .   .表示当前目录

      (3) pwd (print work directory,打印工作目录):打印出当前所在目录的绝对路径;

      (4) mkdir (make directory,创建文件夹):创建空文件夹;

        mkdir -p  级联创建空文件夹

      (5) mv (move,移动):在目录间移动文件,重命名文件;

        mv 源文件pathname 目的文件pathname

      (6) touch:创建空文件;

        touch pathname

      (7) cp (copy,复制):复制文件,文件夹;

        cp 源文件pathname 目的文件pathname

        cp -r  复制文件夹

        cp -f  强制复制

        实际使用时都是用cp -f来复制文件,用cp -rf来复制文件夹

      (8) rm (remove,移除):删除文件,文件夹;

        rm 文件pathname

        rm -r 文件夹pathname

      (9) cat:直接在文件夹下显示文件内容,或向文件输入;

      (10) rmdir (remove directory,移除文件夹):删除空文件夹;

        rmdir与rm -r的区别:rmdir只能删除空文件夹,而rm -r可以删除空文件夹与非空文件夹

      (11) ln (link,链接文件):类似于Windows中的快捷方式(实际上快捷方式和它指向的文件是独立的两个文件,都会占用内存);

        Linux中有两种连接文件:软链接(符号链接),类似于Windows中的快捷方式;

                      创建软链接文件:ln -s 源文件名 符号链接文件名

                    硬链接,实际上和源文件是一模一样的两个东西,每次删除一个文件时,只要它还有其他的硬链接存在,这个文件就不会被真正的删除,

                    只有把这个文件连同它的全部硬链接都删除了,这个文件才会被真正从硬盘上删除;

                      创建硬链接文件:ln 源文件名 链接文件名

      (12) man:查询man手册,获得帮助信息(退出man手册,按Q键);

        man 1 xxx  1表示查询的是Linux命令

        man 2 xxx  2表示查询的是Linux api

        man 3 xxx  3表示查询的是C库函数

      (13) apt-get:在ubuntu中在线安装、卸载软件的程序;

        apt-get install xxx    安装

        apt-get remove xxx   卸载

        为什么需要在线安装软件?

        由于Linux操作系统的发行版,内核版本,定制性等等问题造成了在不同的Linux中软件的不兼容性。要在Linux中安装软件很麻烦,装了软件能不能用不一定。

        ubuntu解决了这个问题,ubuntu就适合某个发行版(ubuntu14.04)的所有软件做了一个列表,然后用户通过apt-get install的方式安装软件,就会实时连接到

        ubuntu的服务器,服务器会根据你的ubuntu版本,给你下载合适的软件来安装。这样确保了软件的兼容性。

    6、ls -l显示的详细信息(-rwxrw-rw-)中:一共10个字符,第一个字符表示文件类型,后面9个表示文件权限;

      文件类型:- 表示普通文件,即文本文件(.txt)、二进制文件等

           d 表示文件夹

            l 表示符号链接文件,后面会用->打印出它所指向的文件

           s 表示socket文件

           p 表示管道文件

    7、vi编辑器:Linux中常用的编辑器,另外还有gedit编辑器等,其vim是vi的升级版,后面提到的vi其实都是vim;

      (1) vi的使用:vi pathname

      (2) vi的命令模式:当vi打开时默认为命令模式,此时键盘上输入的所有东西都被vi当作命令来对待。

          vi的输入模式:输入模式用来向文件输入内容。在命令模式中按A或I键则转入输入模式。进入输入模式后,就可以随意按键盘进行输入了。输入完成后如果要保存,要先退

               回到命令模式(因为保存也是一种命令),即在输入模式下按ESC键退回到命令模式。

      (3) 保存命令:  :wq  保存并退出

                 :w   保存但不退出

               :q    不保存退出

               :q!   不保存强制退出

               :wq!   保存并强制退出

      (4) vi的一些命令(均在命令模式下):

        /xxx      查找xxx

        :num       快速切换到num行

        :set nu      显示行号

        :set nonu    不显示行号

          注:设置永久显示行号,修改vi的配置文件~/.vimrc,在其中输入set nu即可;

        dd       删除光标所在行

        4dd       删除连续行

        nyy        复制,需把光标放在多行的第一行

        p         粘贴到光标所在的下一行

    8、Linux中的权限表示与管理:

      (1) 普通用户与特权用户:

        普通用户:一般情况下我们使用的都是普通用户,每个普通用户只能处理自己的文件,不能访问其他用户的文件,更不能随意处理操作系统的文件;

        特权用户:系统的管理员,对系统内所有文件具有操作权限;

        Windows/Linux中的普通用户可以有很多个,而特权用户在Windows中是Administrator,在Linux中是root;

        在Linux中,普通用户不能cd /root,也不能用apt-get install来装软件,……;

        使用su可以在不同用户间来回切换:su 用户名;

        使用sudo可以不需切换用户而暂时获取root权限;

      (2) Linux中的权限:

        ls -l显示的详细信息(-rwxr-xrw-)中:一共10个字符,第一个字符表示文件类型,后面9个表示文件权限;

        文件类型:- 表示普通文件,即文本文件(.txt)、二进制文件等

             d 表示文件夹

              l 表示符号链接文件,后面会用->打印出它所指向的文件

             s 表示socket文件

             p 表示管道文件

        权限表示:r 表示可读,w 表示可写,x 表示可执行

           如:rwx  可读,可写,可执行

             r-x   可读,不可写,可执行

             rw-   可读,可写,不可执行

        后9个字符,每3个一组,第1组表示文件属主的权限,第2组表示属主所在的组用户的权限,第3组表示其他用户的权限;

    9、虚拟机中的Linux上网:

      (1) VMWare中网络有三种设置:NAT、桥接(bridged)、Host only(该模式仅主机可上网,虚拟机上不了网);

      (2) NAT方式:设置较简单,但不能用在嵌入式开发中。设置步骤如下:

             step1:菜单栏中的虚拟机 -> 设置 -> 硬件 -> 网络适配器,右侧选择NAT模式;

             step2:在命令行中输入vi /etc/network/interfaces,打开该文件,将内容编辑如下:

                  auto lo

                  iface lo inet loopback

                  auto eth0
                  iface eth0 inet dhcp
                  address 192.168.1.141
                  netmask 255.255.255.0
                  gateway 192.168.1.1

                 关键是dhcp处,最后三行可以不要;

             step3:在命令行中执行/etc/init.d/networking  restart 来重启网卡即可;

      (3) 桥接方式:设置较麻烦(相对而言),但可用于嵌入式开发中。设置步骤如下:

             step1:菜单栏中的虚拟机 -> 设置 -> 硬件 -> 网络适配器,右侧选择桥接模式;

             step2:在菜单栏中的编辑 -> 虚拟网络编辑器,选择桥接到自己Windows中可以上网的网卡上(一般就是Wifi网络或者有线网络);

             step3:在命令行中输入vi /etc/network/interfaces,打开该文件,将内容编辑如下:

                  auto lo

                  iface lo inet loopback

                  auto eth0
                  iface eth0 inet dhcp
                  address 192.168.1.141
                  netmask 255.255.255.0
                  gateway 192.168.1.1

                  保存并退出。关键是dhcp处,最后三行可以不要;

               step4:在命令行中执行/etc/init.d/networking  restart 来重启网卡即可;

    10、Linux命令补充:这些命令的掌握与否不影响你的一般操作,因此不必可以去背,除非你是搞Linux运维的,但是如果掌握将有助你熟练操作Linux;

      (1) find:在文件系统中查找一个文件,但得知道其文件名;

        find 大概路径 -name "文件名"

      (2) grep:在文本文件中,查找某个词;

        grep -nr "要查找的符号" 要查找的目录或文件集合    -n表示在查找结果中显示行号,-r表示使用递归查找

      (3) which与whereis:查找一个应用程序(二进制文件)的位置;

        which 文件名      只显示二进制文件的路径

        whereis 文件名     显示二进制文件的路径,和其源码或man手册位置

      (4) uname:查看系统信息;

        uname -a

      (5) 开机与关机:

        shutdown -h now    立即关机

        init 0            关机

        shutdown -r now     立即重启

        reboot            重启

      (6) tree与lstree:显示文件和目录由根目录开始的树形结构;

      (7) mount与umount:挂载磁盘到文件系统中;

        mount -t nfs -o nolock 192.168.1.141:/root/rootfs /mnt    挂载

        umount /mnt    卸载

      (8) 磁盘空间相关:

        df -h    显示已挂载的分区列表

        du -h     以人容易识别的方式列出文件或文件夹的大小

      (9) 用户管理:

        useradd user1    添加一个名为user1的用户

        userdel user2     删除一个名为user2的用户

        passwd user3     为名为user3的用户设置密码

        adduser user4    添加一个名为user4的用户,同时创建宿主目录,用户shell等

        注:adduser是一个脚本,而useradd则是一个二进制应用程序。用adduser创建用户时比较麻烦,但是一次设定完所有的信息;

          而用useradd创建用户时较简单,但是需要另外设置宿主目录,密码那些信息。

      (10) 权限管理:管理系统中文件的权限;

        chmod    change mode,修改文件权限(常用)

        chown     change owner,修改属主

        chgrp      change group,修改文件的组

        权限可以使用数字来表示:r   可读    4

                    w  可写    2

                    x   可执行   1

                    -   无权限   0

        如:rwxr-xrw-对应756

        第1种修改权限的方法:如把权限改为rwxr-xrw-,则修改命令为:chmod 756 文件名

        第2种修改权限的方法:在原来的权限基础上进行修改,即增加或减少某项权限。三个组用户的编码依次为:属主 u  属主所在的组 g  其他用户 o

                 如 :要属主增加可写权限    chmod u+w 文件名

                    其他用户减少可读权限   chmod o-r 文件名

      (11) 文件打包、压缩与解压缩:

        tar -czvf dir.tar.gz dir/      将dir目录打包成dir.tar.gz

        tar -cjvf dir.tar.bz2 dir/       将dir目录打包成dir.tar.bz2

        tar -zxvf dir.tar.gz        解压缩dir.tar.gz

        tar -jxvf dir.tar.bz2         解压缩dir.tar.bz2

      (12) 网络配置命令

        ifconfig eth0 192.168.5.19                  设置IP地址

        ifconfig eth0 up                         启动网卡

        ifconfig eth0 down                       禁用网卡

        ifup eth0                            启动网卡

        ifdown eth0                          禁用网卡

        ifconfig eth0 192.168.5.19 netmask 255.255.255.0      同时设置IP和子网掩码

    (以上所述内容为学习朱老师的嵌入式课程后复习笔记所得,目的是自己复习巩固知识,同时把自己学到的知识分享出来。能力有限,水平一般,如有错误,欢迎指正,谢谢!)

    2017-02-24 22:15:52

  • 相关阅读:
    Recommended Books for Algo Trading in 2020
    Market Making is simpler than you think!
    Top Crypto Market Makers of 2020
    Top Crypto Market Makers, Rated and Reviewed
    爬取伯乐在线文章(五)itemloader
    爬取伯乐在线文章(四)将爬取结果保存到MySQL
    爬取伯乐在线文章(三)爬取所有页面的文章
    爬取伯乐在线文章(二)通过xpath提取源文件中需要的内容
    爬取伯乐在线文章(一)
    爬虫去重策略
  • 原文地址:https://www.cnblogs.com/ARM-kang/p/6435717.html
Copyright © 2011-2022 走看看