linux入门学习内容

为了更好的用python,在此学习linux操作系统,用做记录,忘记时可以查看。

1.简介 (略)

2.安装(略)

3.linux系统启动过程

1)内核的引导;

当计算机打开电源后,首先是bios开机自检,按照bios中设置的启动设备(硬盘)启动。

操作系统接管硬件以后,首先读入/boot目标下的内核。

linux入门学习内容_第1张图片

2)运行init;

inti是系统所有进程的起点。没这个进程,系统中任何进程都不会启动。

init程序首先是需要读取配置文件/ect/intittab.

linux入门学习内容_第2张图片

运行级别

许多程序需要开机启动。在linux叫做‘守护进程’(daemon)。

init一大任务就是去运行这些开机启动的程序。

linux允许为不同的场合,分配不同的开机启动程序,这就叫‘运行级别“。

linux入门学习内容_第3张图片

linux系统有7个运行级别

3)系统初始化;

init有一配置文件其中一行为si::sysinit:/ect/rc.d/rc.sysinit,调用执行rc.sysinit。且是一个bash shell的脚本。主要完成一些系统初始化的工作。rc.sysinit是每一个运行级别都要首先运行的重要脚本。

主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及其他的一些需要优先执行的任务。

/etc/rc.d/rc5.d/中的rc启动脚本通常是K或S开头的连接文件,对于以 S 开头的启动脚本,将以start参数来运行。

而如果发现存在相应的脚本也存在K打头的连接,而且已经处于运行态了(以/var/lock/subsys/下的文件作为标志),则将首先以stop为参数停止这些已经启动了的守护进程,然后再重新运行。

这样做是为了保证是当init改变运行级别时,所有相关的守护进程都将重启。

至于在每个运行级中将运行哪些守护进程,用户可以通过chkconfig或setup中的"System Services"来自行设定。

linux入门学习内容_第4张图片

4)建立终端;

rc执行完毕后,返回init。这时基本系统环境已经设置好了。各种守护进程也已经启动。

init接下来打开6个终端,以便用户登录系统。在inittab中的以下6行就是定义了6个终端:

1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

从上面可以看出在2、3、4、5的运行级别中都将以respawn方式运行mingetty程序,mingetty程序能打开终端、设置模式。

同时它会显示一个文本登录界面,这个界面就是我们经常看到的登录界面,在这个登录界面中会提示用户输入用户名,而用户输入的用户将作为参数传给login程序来验证用户的身份。 

5)用户登录系统;

一般来说,用户有三种登录方式:

(1)命令行登录

(2)ssh登录

(3)图像界面登录

linux入门学习内容_第5张图片

图形模式与文字模式的切换方式

Linux预设提供了六个命令窗口终端机让我们来登录。

默认我们登录的就是第一个窗口,也就是tty1,这个六个窗口分别为tty1,tty2 … tty6,你可以按下Ctrl + Alt + F1 ~ F6 来切换它们。

如果你安装了图形界面,默认情况下是进入图形界面的,此时你就可以按Ctrl + Alt + F1 ~ F6来进入其中一个命令窗口界面。

当你进入命令窗口界面后再返回图形界面只要按下Ctrl + Alt + F7 就回来了。

 

linux入门学习内容_第6张图片

linux关机

正确的关机流程 sync>shutdown>reboot>halt

sync 将数据由内存同步到硬盘中。

shutdown 关机指令。

shutdown -h 10 在10分钟之后关机。

shutdown -h now 系统马上关机

shutdown -h +10十分钟后关机

shutdown -r now马上重启

shutdown -r +10 系统10分钟后重启

reboot 重启 等于 shutdown -r now

halt 关闭系统,等同于shutdown -h now 和poweroff

注意:最后总结一下,不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。

linux的系统目录结构

登录系统后,在当前窗口输入命令:

ls

linux入门学习内容_第7张图片

  • /bin
    bin是Binary的缩写, 这个目录存放着最经常使用的命令。

  • /boot:
    这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。

  • /dev :
    dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。

  • 0/etc:
    这个目录用来存放所有的系统管理所需要的配置文件和子目录。

  • /home
    用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用 户的账号命名的。

  • /lib
    这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。

  • /lost+found
    这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。

  • /media
    linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。

  • /mnt
    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。

  • /opt
     这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。

  • /proc
    这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。

  • /root
    该目录为系统管理员,也称作超级权限者的用户主目录。

  • /sbin
    s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。

  • /selinux
     这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。

  • /srv
     该目录存放一些服务启动之后需要提取的数据。

  • /sys
     这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。

    sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。

    该文件系统是内核设备树的一个直观反映。

    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。

  • /tmp
    这个目录是用来存放一些临时文件的。

  • /usr
     这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。

  • /usr/bin:
    系统用户使用的应用程序。

  • /usr/sbin:
    超级用户使用的比较高级的管理程序和系统守护程序。

  • /usr/src:内核源代码默认的放置目录。

  • /var
    这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。

.:代表当前的目录,也可以用./表示

..代表上一层目录也可以用../来表示。

解压和压缩ELF是一种用于二进制文件,可执行文件,目标代码,共享库和核心转储式文件。

~:表示家目录。

-:表示切换到目前目录之前的目录。

文件类型精要

1.普通文件

一组信息的信息存储单位。

可以保存任何数据。内容可以是ascii文本,源代码,shell脚本及各种文档。也可以是二进制程序代码。

2.目录文件

一种特殊类型的文件。其中存储的是一系列文件名及其信息节点号。除了存储内容不同之外。目录用于提供文件名、信息节点与文件数据之间的关联关系。

3.链接文件

类似于Windows系统的快捷方式,把同一数据或程序赋予不同的文件名。

分为硬链接文件(不能跨越文件系统)和软链接文件两种。

4.设备文件

设备文件的发明令用户能够读写普通文件一样访问外部设备,不必涉及各种I/O设备的具体操作。

常用的设备文件类型有字符特殊文件。用字母“c”表示。块特殊文件,用“b”表示。

 命令行

command options objects #linux命令行通用格式

command表示linux的命令

options表示命令选项

objects表示多操作的文件。

o o复数表示一个命令可以具有多个数据和多个操作对象。

eg:

ls -lF /

ls是command。options参数有两个,分别是l和F,表示长格式和根据文件类型显示不同颜色。obj的操作对象是根目录/ 

登录系统的用户都是普通用户,在自己的家目录。除此之外的地方主要是超级用户root的地盘。所以权限受限。sudo命令的基本功能就是临时把普通用户变为超级用户。图形界面还有gksu。

在命令行进行文件管理

1.在命令行中复制文件或目录使用cp命令

2.删除文件 rm

3.创建一个文件可以使用touch命令,不过创建的是一个空文件。

创建目录就用mkdir命令。

4.移动文件 mv命令

mv hello src 将文本文件hello移动到src目录

mv src dest 再将sic目录移动到dest目录。

5.浏览文本文件

命令行浏览ascii文件,如源代码,shell脚本等,用cat命令

eg: cat .bashrc

浏览隐藏文件bashrc。 

pwd命令当前所在的路径

 

6.执行可执行文件

ubuntu有两种可执行文件。一种是脚本。实质就是一个具有执行权限的ascii文件。一种是ELF可执行文件。以上两种都不具有可执行权限,用如下命令添加可执行权限:

chmod +x execute_file

有了可执行权限即可执行:

./execute_file

这样能在files中执行的操作命令行多数都能完成了。

解压和压缩

首先用tar工具打包,将多个文件打包成一个文件。然后再使用.bz2,.gz和.xz等程序压缩。

1.打包压

tar zcvf pack.tar.gz pack/   #打包后压缩为一个.gz格式的压缩包

tar jvcf pack.tar.bz2 pack/ #打包后压缩为一个.bz2格式的压缩包

2.解包压缩

tar zxvf pack.tar.gz. -C pack/ #解包压缩到pack文件夹

tar jxvf pack.tar.bz2 -C pack/ #解包压缩到pack文件夹

3.查看压缩包

只是进行查看压缩包,可以用:

tar tvf pack.tar.gz #查看.gz格式的压缩包

tar tvf pack.tar.bz2  #查看。。

文件权限

系统从文件出发,把用户分为文件属主、同组用户和其他用户三类。其他用户的权限最大。

1)读(r)权限

文件能被访问,但不能被修改。

2)写(w)权限

3)执行(x)权限

可以运行文件。

可以通过 

ls -l来查看权限

ls是显示当前文件夹下的所有文件,而且是显示非隐藏文件,显示包括隐藏和非隐藏文件用 ls -a,隐藏文件的写法一般是最前面有个点 .

/home/huangcc/Pictures/Screenshot from 2018-07-24 15-38-48.png

ubuntu默认访问权限

利用umask命令

制定umask值,则使用如下命令:

umask xxx     #xxx表示访问权限代码 三位八进制的数据。

通过权限符号修改访问权限

通过chmod命令修改文件或目录的访问权限。

chmod 指定权限 文件或目录

指定权限可以用权限符号表示:

u:文件属主

g:同组用户

o:其他用户

a:所有用户

使用加号,减号,等号表示增加,撤销,赋予相应的访问权限

r:读

w:写

x:执行

用chmod修改权限

ubuntu软件包后端处理工具

常见的命令行工具:dpkg,apt-get ,aptitude

dpkg是最底层的后端程序,会被其他基于它之上的后端程序调用,是安装,卸载,查询和配置DEB软件包的真正实施者。

后两者比dpkg高级一点,可以调用dpkg

后端自动化软件包管理工具主要有:apt-cache、apt-get、aptitude

后端最底层软件包管理工具——dpkg

sudo dpkg -c package_name.deb 查看软件包所含的内容

sudo dpkg -I package_name.deb 查看软件包的详细信息

sudo dpkg -i package_name.deb 安装软件包

sudo dpkg -r package_name 卸载已安装的软件包

sudo dpkg-reconfigure package_name   重新配置一个已经安装的软件包,多用于安装某个软件失败后。。

1.使用apt-cache/apt-get命令

apt-cache工具在软件包等信息搜索指定的关键字,格式如下:

sudo apt-cache search keyword

执行这种操作之后,可以通过apt-get命令安装程序。

sudo apt-get install package_name

删除软件包

sudo apt-get remove package_name

彻底删除:

sudo apt-get --purge remove package_name

跟新软件仓库列表:

sudo apt-get upgrade

2.使用aptitude

通常是将其作为命令行来使用。

用法同1

3.tasksel安装一组软件包

可以一次性安装被成为任务(task)的一组软件包,执行一组预定义的安装指令集。

用法也类似1

vim运行c文件

在vim写好c文件后

esc退出编辑模式,然后:wq保存退出

编译: gcc -o 编译后的名字 编译前的名字

运行:./编译后的名字

按esc退出编辑模式,w保存,q退出 ;:wq保存退出。

强制退出   q!

每次进入vim过后必须要按i才能进行编辑模式也就是插入模式,在按i之前叫做普通模式,普通模式中比如按x是删除文字,如果在插入模式中删错了东西,可以按esc再按u就可以恢复。除了按i可以进入编辑模式之外,还可以按a。

运行python文件

python 文件名

安装Python3第三方库numpy,scipy,matplotlib:

sudo apt install python3-pip 
pip3 install numpy 
pip3 install scipy 
pip3 install matplotlib

通过man查询可知: 
u 代表用户. 
g 代表用户组. 
o 代表其他. 
a 代表所有.

 

配置vim:

~表示在用户目录下

输入命令行:vi~/.vimrc进入配置文件。

 

你可能感兴趣的:(linux入门学习内容)