olu

学习路径和总结

linux(一)

linux中,存放配置文件的是在/etc目录下,而存放命令的则是在/bin /sbin / usr/bin / usr/sbin中,命令当然都是以文件形式存放的。/sbin/中存放的是基本系统命令例如ifconfig、dump等,只有root可以执行,是super bin。而/bin存放的是普通命令例如ls 、chmod、kill等,root和普通用户都可以执行。/usr/bin里面存放的用户后期安装的软件的运行脚本,例如gzip、gcc、man等。/usr/sbin中安装的是用户管理系统的命令脚本。而且在root的PATH变量中必须包含有这四个路径,因为在命令行输入的命令实际能够执行是因为linux能够通过PATH变量里面指定的路径及其顺序找到该命令对应的运行脚本,找不到则command not found。

linux中wget是一个软件包下载程序,而curl也是通过url的方式获得所需的软件包。

要把自己的脚本或者目录的路径加入PATH变量中需要修改PATH,就是给PATH列表中增加一个路径。如果在命令行中使用PATH=$PATH:dir则只对当前对话有效,登出或重启之后则消失。如果在自己的~/.bash_profile中修改PATH,则需要在PATH列表中加入一个dir,这只对本用户有效。如果在/etc/profile中修改,则需要在export一行下面新增加一行export PATH=$PATH:dir即可永久且对所有用户生效。动态重启的命令就是source /etc/profile,而查看PATH的命令是echo $PATH。

scp是跨主机的文件复制工具,复制代表着上传和下载。采用cp是本主机的复制操作,而rsync和scp都是跨主机文件传输工具。scp占用系统资源少。使用的方法就是scp [option] [原路径] [目标路径],其中如果需要远程目录则形式为user_name@ip:path。之后需要输入登陆密码即可传输。

密码学基本知识:加密的方法分为两种,一种单钥一种双钥,单钥对于密钥的保存非常重要因为密钥就只有一个。双钥有两把钥匙,一个公钥一个私钥。公钥和私钥是一一对应的关系,有一把公钥就必然有一把与之对应的、独一无二的私钥,反之亦成立。所有的(公钥, 私钥)对都是不同的。 用公钥可以解开私钥加密的信息,反之亦成立。同时生成公钥和私钥应该相对比较容易,但是从公钥推算出私钥,应该是很困难或者是不可能的。公钥用来加密信息,私钥用来数字签名。双钥加密典型算法RSA。假设有三个人A/B/C,C生成了自己的私钥,将公钥给了A和B,A和B对C进行数据传输使用该公钥进行加密,C再通过私钥进行解密即可。C给A数据传输时,先通过hash函数对数据生成digest摘要,再用私钥对digest进行加密生成signature数字签名,将其附在数据后面一齐发送给A,A收到整个数据之后使用公钥对signature进行解密得到digest,再对数据本身应用hash函数得到一个digest,两者对比确认数据是否被篡改过。为了证明A手中的公钥确实是对应C的私钥的,需要C在证书中心CA(certificate authority)对公钥进行认证,证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)。之后C给A发送数据时在signature之后附上自己的数字证书即可。A收到数据之后使用CA的公钥对数字证书进行解密,拿到真正的C的公钥,之后再进行解密。https就是一个应用,服务器端发回的网页是通过自己的私钥进行加密的,连同本身的数字证书传回,浏览器根据本身的证书管理器对数字证书验证,依据受信任的根证书颁发机构一项检查网页是否通过,如果通过则使用该机构的公钥进行加密得到网页的公钥,再进行解密得到数据部分。

ssh:一种网络协议,用于计算机之间的加密登陆。ssh的实现版本有很多,包括linux的openssh,windows的putty等。要使用ssh需要两者均安装了ssh软件。ssh采用了公钥进行加密,(1)远程主机收到用户的登录请求,把自己的公钥发给用户。(2)用户使用这个公钥,将登录密码加密后,发送回来。(3)远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。但是一旦中间人截获用户的登陆请求,将自己的公钥发给用户,用户登陆发送密码,中间人截获密码,登陆到远程主机就完蛋了。而且https是有CA的而ssh没有,每个人都是自己发公钥。ssh提供了公钥登陆可以省去密码的传输,所谓"公钥登录",就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来。远程主机用事先储存的公钥进行解密,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。ssh提供第二种级别(基于密匙的安全验证)需要依靠密钥,也就是你必须为自己创建一对密钥,并把公用密钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在你在该服务器的家目录下寻找你的公钥,然后把它和你发送过来的公钥进行比较。如果两个密钥一致,服务器就用公用密钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私钥解密再把它发送给服务器。用这种方式,你必须知道自己的密钥。

linux中挂载的概念:linux中文件组织形式是树形结构的,windows和dos也是树形的,但是linux只有一棵树,最顶层是根目录,其他节点是从根目录往下索引的。而windows是根据盘符(就是C盘、D盘、E盘等)创建多个并列级别的树形文件组织结构。这是软件管理系统。文件系统指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次结构。linux会将这些分属不同分区的、单独的文件系统按一定的方式形成一个系统的总的目录层次结构,这个就是“挂载”,将一个文件系统的顶层目录挂到另一个文件系统的子目录上,使它们成为一个整体,称为挂载。把该子目录称为挂载点。挂载点必须是目录,一个分区挂载在一个已存在的目录上,这个目录可以不为空,但挂载后这个目录下以前的内容将不可用。挂载前要了解linux是否支持所要挂载的文件系统格式。挂载时使用mount命令:mount [-参数][-设备名称][-挂载点],注意文件或者说目录不一定是磁盘中的,光盘、某种外设、软盘、其他OS的目录都是可以作为挂载点的。一个操作系统的运行离不开对文件的操作,因此必然要拥有并维护自己的文件系统。linux文件系统使用索引节点来记录文件信息,作用像windows的文件分配表。索引节点是一个结构,它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号。linux文件系统将文件索引节点号和文件名同时保存在目录中。所以,目录只是将文件的名称和它的索引节点号结合在一起的一张表,目录中每一对文件名称和索引节点号称为一个连接。对于一个文件来说有唯一的索引节点号与之对应,对于一个索引节点号,却可以有多个文件名与之对应。因此,在磁盘上的同一个文件可以通过不同的路径去访问它。可以用ln命令对一个已经存在的文件再建立一个新的连接,而不复制文件的内容。连接有软连接和硬连接之分,软连接又叫符号连接。它们各自的特点是:硬连接:原文件名和连接文件名都指向相同的物理地址。目录不能有硬连接;硬连接不能跨越文件系统(不能跨越不同的分区)文件在磁盘中只有一个拷贝,节省硬盘空间;由于删除文件要在同一个索引节点属于唯一的连接时才能成功,因此可以防止不必要的误删除。符号连接:用ln -s命令建立文件的符号连接符号连接是linux特殊文件的一种,作为一个文件,它的数据是它所连接的文件的路径名。类似windows下的快捷方式。可以删除原有的文件而保存连接文件,没有防止误删除功能。

linux中软件的快捷启动方式都是在/usr/share/applications/目录中存放的,要建立某个软件的启动快捷方式则需要在该目录中新建一个desktop文件,并在启动配置两个关键的内容,一个是软件启动脚本.sh文件路径,一个是软件的icon图标,之后将desktop复制到桌面就可以了。

debain系的linux系统包括ubuntu的系统清理方法:第一,通过df -h命令可以直接查看系统各个磁盘空间占用情况。大多数占用较多的目录未/var  /lib 和/usr。在任一目录中通过du -h -x --max-depth=1可以得到该目录中文件占用空间大小。/lib/modules目录中存放的安装的系统内核,linux是不会在安装新的内核之后删除旧有的内核的,会被保留,在/lib/modules中存放,可以通过du -h -x --max-depth=1看到。而通过uname -a可以得到系统正在使用的哪个内核,通过dpkg --get-selections|grep linux-image可以看到已经安装了哪些内核,保留正在使用内核和最近的一个内核,其他通过sudo apt-get purge generic_name header_name删除;第二,/var/log目录存放的是应用日志文件,没用的可以直接删除;第三,通过du -h /var/cache/apt/archives可以看到已经安装的软件包,linux安装软件默认不会清楚软件包的,即使卸载某个软件也不会删除他的软件包。所以删除已卸载的软件的软件包的方法:sudo apt-get autoclean。清除所有的软件包的方法sudo apt-get clean。清除孤立软件包的命令sudo apt-get autoremove;清理浏览器缓存。

事实上linux的链接文件很有用处,包括软链接和硬链接。例如之前安装eclipse时如果通过在/xxx/eclipse/目录中直接启动eclipse可以运行,并且他可以自动检测到系统安装的jre的目录位置。但是我在/usr/share/applications/目录中添加他的desktop文件通过该文件启动的时候就不能找到/jre/bin/java导致无法启动,所以需要在/xxx/eclipse/目录中加入已经安装的jre目录的才能找到,但是如果把已经安装的180MB的jre目录再拷贝过来太浪费空间,所以可以通过在/xxx/eclipse中建立一个/jre目录在其中添加一个bin作为软链接指向已经安装的jre/bin目录就可以找到了。

scp操作:http://www.cnblogs.com/bravehunter/p/5653317.html

linux命令详细梳理:http://www.cnblogs.com/hujiapeng/p/5162539.html

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ingwfj/article/details/78234770
文章标签: linux
个人分类: linux
想对作者说点什么? 我来说一句

LINUX一应用程序开发

2010年01月08日 9.17MB 下载

linux按键驱动讲解

2009年09月29日 4KB 下载

linux常用命令(一).part2.rar

2010年04月17日 9.54MB 下载

linux常用命令(一).part1.rar

2010年04月17日 9.54MB 下载

linux系统管理测试一

2010年09月14日 96KB 下载

linux常用命令(一).part3.rar

2010年04月17日 9.54MB 下载

没有更多推荐了,返回首页

不良信息举报

linux(一)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭