为了更好的用python,在此学习linux操作系统,用做记录,忘记时可以查看。
1)内核的引导;
当计算机打开电源后,首先是bios开机自检,按照bios中设置的启动设备(硬盘)启动。
操作系统接管硬件以后,首先读入/boot目标下的内核。
2)运行init;
inti是系统所有进程的起点。没这个进程,系统中任何进程都不会启动。
init程序首先是需要读取配置文件/ect/intittab.
运行级别
许多程序需要开机启动。在linux叫做‘守护进程’(daemon)。
init一大任务就是去运行这些开机启动的程序。
linux允许为不同的场合,分配不同的开机启动程序,这就叫‘运行级别“。
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"来自行设定。
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预设提供了六个命令窗口终端机让我们来登录。
默认我们登录的就是第一个窗口,也就是tty1,这个六个窗口分别为tty1,tty2 … tty6,你可以按下Ctrl + Alt + F1 ~ F6 来切换它们。
如果你安装了图形界面,默认情况下是进入图形界面的,此时你就可以按Ctrl + Alt + F1 ~ F6来进入其中一个命令窗口界面。
当你进入命令窗口界面后再返回图形界面只要按下Ctrl + Alt + F7 就回来了。
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 命令,把内存中的数据写到磁盘中。
登录系统后,在当前窗口输入命令:
ls
/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 。
该文件系统是内核设备树的一个直观反映。
当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/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
利用umask命令
制定umask值,则使用如下命令:
umask xxx #xxx表示访问权限代码 三位八进制的数据。
通过权限符号修改访问权限
通过chmod命令修改文件或目录的访问权限。
chmod 指定权限 文件或目录
指定权限可以用权限符号表示:
u:文件属主
g:同组用户
o:其他用户
a:所有用户
使用加号,减号,等号表示增加,撤销,赋予相应的访问权限
r:读
w:写
x:执行
用chmod修改权限
常见的命令行工具: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 重新配置一个已经安装的软件包,多用于安装某个软件失败后。。
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
通常是将其作为命令行来使用。
用法同1
可以一次性安装被成为任务(task)的一组软件包,执行一组预定义的安装指令集。
用法也类似1
在vim写好c文件后
esc退出编辑模式,然后:wq保存退出
编译: gcc -o 编译后的名字 编译前的名字
运行:./编译后的名字
按esc退出编辑模式,w保存,q退出 ;:wq保存退出。
强制退出 q!
每次进入vim过后必须要按i才能进行编辑模式也就是插入模式,在按i之前叫做普通模式,普通模式中比如按x是删除文字,如果在插入模式中删错了东西,可以按esc再按u就可以恢复。除了按i可以进入编辑模式之外,还可以按a。
python 文件名
sudo apt install python3-pip
pip3 install numpy
pip3 install scipy
pip3 install matplotlib
通过man查询可知:
u 代表用户.
g 代表用户组.
o 代表其他.
a 代表所有.
配置vim:
~表示在用户目录下
输入命令行:vi~/.vimrc进入配置文件。