0.Linux组成:
linux内核:管理硬件。 位置在:/boot/
目录之下
lib库:封装内核接口,提供系统调用。
应用程序:和用户交互,提供某项特定的服务。
上面可以看为一层一层的封装。应用程序->Lib库->linux内核。
真正意义上的Linux系统,指的是linux内核(kernel)。
1.文件颜色不一样代表的意思
https://unix.stackexchange.com/questions/94498/what-causes-this-green-background-in-ls-output
2.为何我们第一次进入Linux就是在/root
?为何是~
?
https://unix.stackexchange.com/questions/365759/why-connected-with-linux-we-under-the-root-directory/365761#365761
3.根目录和家目录(主目录) (root directory VS home directory)
在Unix系统下:
The root directory, as always on a Unix system is "/".
Your home directory is "/Users/
4.GNU
参考:http://baike.baidu.com/item/gnu
GNU计划,又称为革奴计划,是由Richard Stallman在1983年9月27日公开发起的。它的目标是创建一套完全自由的操作系统。Richard Stallman最早是在net.unix-wizards新闻组上公布该消息,并附带《GNU宣言》等解释为何发起该计划的文章,其中一个理由就是要“重现当年软件界合作互助的团结精神”。为保证GNU软件可以自由地“使用、复制、修改和发布”,所有GNU软件都有一份在禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款,GNU通用公共许可证(GNU General Public License,GPL)。即“反版权”(或称Copyleft)概念。
GNU 包含3个协议条款:
GPL:GNU通用公共许可证(GNU General Public License)
LGPL:GNU较宽松公共许可证 (GNU Lesser General Public License),旧称 GNU Library General Public License (GNU 库通用公共许可证);
GFDL : GNU自由文档许可证(GNU Free Documentation License )的缩写形式。
5.GNU操作系统
GNU
操作系统是一种由自由软件构成的类 Unix
操作系统,该系统基于 Linux
内核,目标在于建立一个完全相容于UNIX
的自由软件环境。
GNU操作系统中的安装的每个软件都是自由软件,其中部分符合copyleft
。
著佐权(Copyleft[1] )是一个由自由软件运动所发展的概念,是一种利用现有著作权体制来挑战该体制的授权方式。在自由软件授权方式中增加著佐权条款之后,该自由软件除了允许使用者自由使用、散布、修改之外,著佐权条款更要求使用者修改后的衍生作品必须要以同等的授权方式释出以回馈社会。
6.gcc 与 gcc+
gcc:GNU编译器套件
GNU编译套件(GNU Compiler Collection),包括C, C++,Objective-C,Fortran、Java、Ada和Go语言的前端。也包括了这些语言的库(比:libstdc++,libgcj等等)。GCC的初衷是为GNU操作系统专门编写的一款编译器。GNU是彻底的一款自由(尊重用户)软件。
GCC 原名为 GNU C 语言编译器(GNU C Compiler),因为它原本只能处理 C语言。GCC 很快地扩展,变得可处理 C++。后来又扩展能够支持更多编程语言,如Fortran、Pascal、Objective-C、Java、Ada、Go以及各类处理器架构上的汇编语言等,所以改名GNU编译器套件(GNU Compiler Collection)。
7.prec 与 prec-devel
8.SSL
SSL(Secure Sockets Layer 安全套接层),及其继承者 传输层安全(Transport Layer Securety, TLS)是为网络通信提供安全以及数据完整性的一种安全协议。 TLS
与SSL
在传输层对网络连接进行加密。
9.openssl 与 openssl-devel
openssl
是一个安全套接字层密码库,囊括主要的密码算法,常用的密钥和整数封装管理功能以及SSL
协议,并提供非常丰富的应用程序供测试或其他目的使用。
10.管道符号(|
)
|
是unix的一个很强大的功能,符号作为一条竖线:|
。
用法: command 1 | command 2
他的功能是把第一个命令command 1
执行的结果作为command 2
的输入传给command 2
。
eg:
$ ls -s|sort -nr
-s
是file size
,-n
是numberic-sort
, -r
是reverse
,反转该命令列出当前目录中的文档(包含size
),并且把输出送给sort
命令作为输入,sort
命令按照数字递减的顺序吧ls
的输出排序。
$ls -s|sort -n
将文件按从小到大的顺序排列输出。
11.硬连接 vs 软连接
硬连接
指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
软连接
软连接也叫:符号连接Symbolic Link。
软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
12./etc/ld.so.conf
文件
Linux共享库
Linux系统有2类根本不同的Linux课执行程序。
第一类是静态链接的可执行程序。
静态可执行程序包含执行所需要的所有函数,换句话说,他们是完整的
。因为这一原因,静态可执行程序不依赖任何外部库就可以运行。
第二类是动态链接的可执行程序。
我们可以使用ldd
命令来确定某一特定可执行程序是否为静态链接的:
[root@localhost /]# ldd /sbin/sln
不是动态可执行文件
ldd
说明 sln
是静态链接的一种方式。
通常,动态链接的程序比其静态链接的等价程序小得多。不过,静态链接的程序可以在某些低级维护任务中发挥作用。
动态装入器
如果动态可执行程序不包含运行所需的所有函数,Linux 的哪部分负责将这些程序和所有必需的共享库一起装入,以使它们能正确执行呢?答案是动态装入器(dynamic loader),它实际上是您在 ln 的 ldd 清单中看到的作为共享库相关性列出的 ld-linux.so.2 库。动态装入器负责装入动态链接的可执行程序运行所需的共享库。现在,让我们迅速查看一下动态装入器如何在系统上找到适当的共享库。
动态装入器找到共享库要依靠两个文件 — /etc/ld.so.conf
和 /etc/ld.so.cache
。
/etc/ld.so.conf
$ cat /etc/ld.so.conf
/usr/X11R6/lib
/usr/lib/gcc-lib/i686-pc-linux-gnu/2.95.3
/usr/lib/mozilla
/usr/lib/qt-x11-2.3.1/lib
/usr/local/lib
ld.so.conf
文件包含一个所有目录(/lib
和 /usr/lib
除外,它们会自动包含在其中)的清单,动态装入器将在其中查找共享库。
ld.so.cache
但是在动态装入器能“看到”这一信息之前,必须将它转换到 ld.so.cache 文件中。可以通过运行 ldconfig 命令做到这一点:
# ldconfig
当 ldconfig 操作结束时,您会有一个最新的 /etc/ld.so.cache 文件,它反映您对 /etc/ld.so.conf 所做的更改。从这一刻起,动态装入器在寻找共享库时会查看您在 /etc/ld.so.conf 中指定的所有新目录。
Linux 中的
>
与>>
>>
是追加内容
>
是覆盖原有内容Linux网络状态工具ss命令
ss
命令用于显示socket
状态。他可以显示: PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计。
它比其他的工具展示等多tcp喝state信息。它是一个非常实用,快速,有效的跟踪IP连接和sockets的新工具。ss
命令可以提供以下信息:
- 所有的TCP sockets
- 所有的UDP sockets
- 所有的
ssh/ftp/ttp/https
持久连接 - 所有连接到
Xserver
的本地进程 - 实用state(例如:connected, synchronized, SYN-RECV, SYN-SENT,TIME-WAIT),地址,端口过滤
- 所有的state FIN-WAIT-1 tcpsocket 连接以及更多
很多流行的Linux发行版都支持ss以及很多监控工具使用ss命令
熟悉这个工具有助于您更好的发现与解决系统性能问题.强烈建议使用ss命令替代netstat
部分命令,例如netsat -ant/lnt等.
常用ss命令:
ss -l 显示本地打开的所有端口
ss -pl 显示每个进程具体打开的socket
ss -t -a 显示所有tcp socket
ss -u -a 显示所有的UDP Socekt
ss -o state established '( dport = :smtp or sport = :smtp )' 显示所有已建立的SMTP连接
ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接
ss -x src /tmp/.X11-unix/* 找出所有连接X服务器的进程
ss -s 列出当前socket详细信息:
查看正在监听的端口
[root@localhost /]# ss -lnt
nginx 就是监听的80
端口。
@碎月成星 下载也是下载kvm周边的一些管理包和管理工具,比如qemu 和virt-manager 之类的包
16.守护进程
守护进程(daemon)是指在UNIX或其他多任务操作系统中在后台执行的电脑程序,并不会接受电脑用户的直接操控。此类程序会被以进程的形式初始化。守护进程程序的名称通常以字母“d”结尾:例如,syslogd就是指管理系统日志的守护进程。
17.端口放行
windows 2003, 2008, 2012 防火墙放行:
http://bbs.safedog.cn/forum.php?mod=viewthread&tid=65735
18.查看文件大小:
du -sh cirros-0.3.4-x86_64-disk.img
uname -r
显示操作系统发行版本
20.查看单块网卡的信息:
ifconfig eth0
```
21.比如我们配置`/etc/sysconfig/network-scripts/下面的ifcfg-enoxxx`
有的时候,我们加了网卡,系统没有自动生成网卡的配置文件,我们可以拷贝`ifcfg-eno1111`为`ifcfg-eno222`,在里面去修改,但是在其中,必须注意,要把UUID改了,UUID必须为唯一。
还有就是NAME和DEVICE也要修改。
22.搞清楚:软件,程序,进程,守护进程,服务,端口的区别和联系。
23.`df -h`
可以查看挂载情况。