一、Linux的基本思想。
1.一切都是文件。对所有文件(目录、字符设备、块设备、套接字、打印机等)操作,读写都可用fopen()/fclose()/fwrite()/fread()等函数进行处理。将命令、软硬件设施、操作系统、进程等都视为拥有各自特性的文件。
2.由短小精悍单一功能的程序组成。每个小程序都被尽可能编写的更好,都有特定的用途。
3.组合小程序完成大任务。将编写好的有特定功能的小程序通过组合来解决各种实际项目问题。
二、Linux的文件类型。
Linux系统中文件的类型包括:普通文件、目录文件、链接文件、设备文件、管道文件等。其中:
普通文件(-):即流式文件,如文本文件、源码文件、shell脚本等,可以用cat、less、vi等查看或修改内容,例如echo、cp、find等。
目录文件(d):用于表示管理系统中的全部文件,内容包括文件名、子目录名、及其指针,是Linux存储文件名的唯一地方,例如lib、lib64、etc、bin、。
链接文件(l):可以参考Windows当中的快捷方式,有软连接和硬链接之分,更强大。
设备文件(b):表示为装置文件里面的可供存储的接口设备,例如磁盘驱动、光盘驱动。
串行端口设备(c):表示为装置文件里面的串行端口设备,例如鼠标、键盘
三、Linux中库文件的种类及其区别。
Linux中库有两种,分别是静态库和动态库:
静态库文件的后缀为.a,在Linux下一般命名为libxxx.a。在编译时刻,将库中用到的源码调用一次拷贝一次,在链接步骤中,连接器将从静态库文件中取得所需的代码,复制到生成的可执行文件中。因此,整个库中的所有函数都被编译进了目标代码中,但容易造成代码冗余。
动态库文件的后缀为.so,在Linux下一般命名为libxxx.so。相对于静态库,动态库在编译的时候并没有被编译进目标代码中,而是程序执行到相关函数时才调用库中对应的函数,且只用到一份源码。
四、Linux中目录的相关知识。
/boot:跟系统启动相关文件;
/dev:设备文件;
/etc:配置文件;
/home:用户家目录,默认为/home/USERNAME;
/media:挂载点目录,通常用来挂载移动设备(u盘等);
/mnt:挂载点目录,额外临时文件系统(挂载一块硬盘);
/lib:库文件;
/opt(可选目录):可选目录,之前是第三软件的安装目录,现在大部分安装的放在/user/local下面;
/proc内核映射文件:都是进程相关信息,系统启动后才生成;
/user:全局 share read only;
/bin:可执行文件,用户命令;
/sbin:管理命令
/sys:跟硬件设备相关的属性映射文件
/var:可变化的(日志等);
/tmp:临时文件,还有一个/var/tmp;
五:/:、/user、/user/local的区别
/:系统的相关指令,例如:
/bin是系统的一些指令。bin为binary的简写主要放置一些系统的必备执行档例如:cat、cp、chmod df、dmesg、gzip、kill、ls、mkdir、more、mount、rm、su、tar等。
/sbin一般是指超级用户指令。主要放置一些系统管理的必备程式例如:cfdisk、dhcpcd、dump、e2fsck、fdisk、halt、ifconfig、ifup、 ifdown、init、insmod、lilo、lsmod、mke2fs、modprobe、quotacheck、reboot、rmmod、runlevel、shutdown等。
/user:系统相关的指令,例如:
/usr/bin 是你在后期安装的一些软件的运行脚本。主要放置一些应用软体工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome*、 gzip、htpasswd、等。
/usr/sbin 放置一些用户安装的系统管理的必备程式例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等。
/user/local:第三方相关的指令,例如:
/usr/local/bin:第三方程序执行
/usr/local/sbin:第三方程序管理命令
六、Linux命令行
Linux命令行的通用命令格式 命令字 [选项] [参数]
选项:用于调节命令的具体功能
以“-”引导短格式选项(单个字符),例如“-l”
以“--”引”多个短格式选项可以导长格式选项(多个字符),例如“--color写在一起,只用一个“-”引导,例如“-al”
参数:命令操作的对象,如文件、目录名等
1. ls
-a:显示所有文件,包括隐藏文件;
-l:详细信息显示;
-al:所有文件,包括隐藏文件的详细信息显示
2.mkdir
-p:递归创建,例如mkdir –p /home/test/test1/test2
3.pwd
显示当前目录(绝对目录)。
绝对目录:指从根目录“/”开始算;
相对目录:相对是指相对于当前所在目录,其中./表示当前目录,../表示上级目录;
4.rmdir
删除空目录,非空的删不了;
5.cp
-r:复制目录;
-p:保留文件属性;
-i:覆盖文件前询问用户;
-v:显示指令执行过程;
6.mv
-f:如果重复则直接覆盖;
-i:覆盖前询问用户;
-v:显示执行过程信息;
7.rm
-r:删除目录,递归删除;
-f:强制执行;
8.touch
修改时间戳,顺便创建空文件;
Access:访问时间;
Modify:修改时间(文件内容发生变化);
Change:更改时间(文件属性发生变化,只读,文件大小等);
9.cat 显示文件内容
-n:显示行号;
10.more分页显示文件内容
(空格) 翻页
(Enter) 换行
(q或Q) 推出
11.less
和more显示顺序相反;
12.tail 显示文件后面几行
-n:制定行数;
-f:动态显示文件末尾内容(同时打开两个命令窗口,其中一个显示文件后面几行,在另一个窗口中修改目标文件时,前一个窗口会动态显示修改结果);
13.ln
-s:创建软连接
(以ls为例,当为ls创建软连接时,创建的软连接如不进行单独的路径配置,则只能在当前目录下实现ls功能);
14.chomd 改变文件或者目录权限
u(user 属主) +(增加权限) r
chomd g(group 属组) - (减少权限) w
o(other 其他) = (赋予权限) x
a (all 全部)
chomd 777 text1 中777为 111 111 111对应的为 rwxrwxrwx
15.chown 改变文件或目录的所有者
16.chgrp改变文件或目录的所属组