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

  • 相关阅读:
    20145223《Java程序程序设计》课程总结
    20145223《Java程序程序设计》第10周学习总结
    20145223《Java程序程序设计》实验报告5
    20145223《Java程序程序设计》第9周学习总结
    20145223 《Java程序程序设计》实验报告4
    20145223《Java程序程序设计》第8周学习总结
    20145223《Java程序设计》实验报告3
    20145223《Java程序程序设计》第7周学习总结
    20145223《Java程序程序设计》实验报告二
    node_promise
  • 原文地址:https://www.cnblogs.com/ARM-kang/p/6435717.html
Copyright © 2011-2022 走看看