linux 程序源码(linux打开软件命令)
大家好,关于linux 程序源码很多朋友都还不太明白,今天小编就来为大家分享关于linux打开软件命令的知识,希望对各位有所帮助!
linux系统推荐有哪些linux系统
linux十大最佳系统?
1.Ubuntu。
Ubuntu是基于Debian的开源Linux操作系统。Ubuntu非常流行,许多其他发行版都是从它衍生出来的。Ubuntu服务器对于构建高性能、高可伸缩性、灵活和安全的企业数据中心非常有效。
2.RedHatEnterpriseLinux(RHEL)
RedHatEnterpriseLinux(RHEL),是RedHat开发的用于商业用途的开源Linux发行版。它基于Fedora,RHEL上提供的大量软件都是首先在Fedora上开发和测试的。
3、中兴新支点服务器操作系统(CGSL)
中兴新支点服务器操作系统是国内的服务器系统,由中兴旗下子公司中兴新支点研发,新支点操作系统产品还包括工业操作系统、桌面操作系统等。新支点服务器操作系统是一款具有高可用性、高性能以及良好的安全性、可管理性等特征的电信级操作系统。
4、SUSELinuxEnterpriseServer
SUSELinuxEnterpriseServer是由SUSE构建的开源,稳定且安全的服务器平台。它旨在为物理、虚拟和基于云的服务器提供支持。它非常适合支持可视化和容器的云解决方案。
5、CentOS(社区操作系统)Linux服务器
CentOS是RedHatEnterpriseLinux(RHEL)的稳定且开源的衍生产品,所以在操作上与RHEL兼容。另外CentOS是免费的,因此如果您想使用RHEL又不想通过订阅而支付大量的费用,那么您可以尝试一下。CentOS拥有社区支持,因此您还是可以获得其他社区成员和用户的支持。但毋庸置疑的是,付费版产品的支持和服务会更加周到,有问题也能得到更及时的解决。
十款Linux系统,你应该选择哪一款?
Debian运行起来极其稳定,这使得它非常适合用于服务器。Debian平时维护三套正式的软件库和一套非免费软件库,这给另外几款发行版(比如Ubuntu和Kali等)带来了灵感。Debian这款操作系统派生出了多个Linux发行版。它有37500多个软件包,这方面唯一胜过Debian的其他发行版只有Gentoo。Debian使用apt或aptitude来安装和更新软件。
Debian这款操作系统无疑并不适合新手用户,而是适合系统管理员和高级用户。Debian支持如今的大多数架构(处理器)。
linux系统可以做什么?
Linux操作系统能做的事情非常多。
首先他是一个服务器操作系统,很多网站或者互联网公司的服务器都采用linux操作系统,因为它是开源免费的,拥有成本非常低。
其次,你可以用linux操作系统来完成你的日常工作,给linux装上图形界面安装各种办公软件和专业的软件,就可以完成在其它操作系统上的大多数工作。
Linux系统哪个比较好用?
现在国内大多数Linux相关的图书都是围绕CentOS系统编写的,作者大多也会给出围绕CentOS进行写作的一系列理由,但是很多理由都站不住脚,根本没有剖析到CentOS系统与RHEL系统的本质关系。CentOS系统是通过把RHEL系统释放出的程序源代码经过二次编译之后生成的一种Linux系统,其命令操作和服务配置方法与RHEL完全相同,但是去掉了很多收费的服务套件功能,而且还不提供任何形式的技术支持,出现问题后只能由运维人员自己解决。
经过这般分析基本上可以判断出,选择CentOS的理由只剩下—免费!当人们大举免费、开源、正义的旗帜来宣扬CentOS系统的时候,殊不知CentOS系统其实早在2014年年初就已经被红帽公司“收编”,当前只是战略性的免费而已。再者说,根据GNUGPL许可协议,我们同样也可以免费使用RHEL系统,甚至是修改其代码创建衍生产品。
开源系统在自由程度上没有任何差异,更无关道德问题。
国产Linux操作系统有哪些?
linux属于开源操作系统,所以很多团队或者企业都会对其作为修改加入一些特色功能作为自己的品牌,简单介绍下国产团队或者企业发行的一些操作系统。
1、深度Linux(Deepin)
2、优麒麟(UbuntuKylin)(由中国CCN联合实验室支持和主导的开源项目)
3、中标麒麟(NeoKylin);(银河麒麟与中标普华已在2010年12月16日宣布合并品牌)
4、威科乐恩Linux(WiOS)
5、起点操作系统(StartOS原雨林木风OS);
6、凝思磐石安全操作系统;
7、共创Linux;
8、思普操作系统;
9、中科方德桌面操作系统;
10、中兴新支点操作系统;
11、普华Linux(I-softOS);
12、RT-ThreadRTOS。
linux的源代码linux程序源代码
Linux是开源的,那么如何查看源代码?
Linux的内核源代码可以从很多途径得到。一般来讲,在安装的linux系统下,/usr/src/linux目录下的东西就是内核源代码。
如何查看linux内核源代码?
一般在Linux系统中的/usr/src/linux*.*.*(*.*.*代表的是内核版本,如2.4.23)目录下就是内核源代码(如果没有类似目录,是因为还没安装内核代码)。另外还可从互连网上免费下载。注意,不要总到去下载,最好使用它的镜像站点下载。请在里找一个合适的下载点,再到pub/linux/kernel/v2.6/目录下去下载2.4.23内核。
代码目录结构
在阅读源码之前,还应知道Linux内核源码的整体分布情况。现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成。Linux内核源码的各个目录大致与此相对应,其组成如下(假设相对于Linux-2.4.23目录):
1.arch目录包括了所有和体系结构相关的核心代码。它下面的每一个子目录都代表一种Linux支持的体系结构,例如i386就是IntelCPU及与之相兼容体系结构的子目录。PC机一般都基于此目录。
2.include目录包括编译核心所需要的大部分头文件,例如与平台无关的头文件在include/linux子目录下。
3.init目录包含核心的初始化代码(不是系统的引导代码),有main.c和Version.c两个文件。这是研究核心如何工作的好起点。
4.mm目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管理代码位于arch/*/mm目录下。
5.drivers目录中是系统中所有的设备驱动程序。它又进一步划分成几类设备驱动,每一种有对应的子目录,如声卡的驱动对应于drivers/sound。
6.ipc目录包含了核心进程间的通信代码。
7.modules目录存放了已建好的、可动态加载的模块。
8.fs目录存放Linux支持的文件系统代码。不同的文件系统有不同的子目录对应,如ext3文件系统对应的就是ext3子目录。
Kernel内核管理的核心代码放在这里。同时与处理器结构相关代码都放在arch/*/kernel目录下。
9.net目录里是核心的网络部分代码,其每个子目录对应于网络的一个方面。
10.lib目录包含了核心的库代码,不过与处理器结构相关的库代码被放在arch/*/lib/目录下。
11.scripts目录包含用于配置核心的脚本文件。
12.documentation目录下是一些文档,是对每个目录作用的具体说明。
一般在每个目录下都有一个.depend文件和一个Makefile文件。这两个文件都是编译时使用的辅助文件。仔细阅读这两个文件对弄清各个文件之间的联系和依托关系很有帮助。另外有的目录下还有Readme文件,它是对该目录下文件的一些说明,同样有利于对内核源码的理解。
在阅读方法或顺序上,有纵向与横向之分。所谓纵向就是顺着程序的执行顺序逐步进行;所谓横向,就是按模块进行。它们经常结合在一起进行。对于Linux启动的代码可顺着Linux的启动顺序一步步来阅读;对于像内存管理部分,可以单独拿出来进行阅读分析。实际上这是一个反复的过程,不可能读一遍就理解。
如何编译linux源代码?
1、安装编码源码的编译工具,一般是需要安装gccyuminstallgcc
2、把源码解压tarzxvfuname.tar.gz
3、进入解压的目录执行./configuremakemakeinstall完成编译安装
如何获取linux下命令源码?
命令的源码是一个软件包为单元的,放在一个软件包的源码中。若要下载一个命令的源码,就要把这个命令所属的软件包的源码都下载下来。命令的源码就在下载的源码的相关文件夹内。一般是src文件夹,对应的主文件名称为cmd.c,当中cmd为详细的命令,如ls命令的主程序文件为ls.c。
因为在不同的Linux发行版上。源码的获取方法并不同样。所以以下以Ubuntu和CentOS这两种经常使用的Linux发行版为样例进行说明。
1、Ubuntu中系统命令源码的获取方法
以32位Ubuntu14.04下,获取ls命令的源码为例,能够使用例如以下的方法下载源码:
1)使用which命令查看ls命令的位置,例如以下:
whichls#输出:/bin/ls
2)使用dpkg命令查询ls命令所属的包。例如以下:
dpkg-S/bin/ls#输出:coreutils:/bin/ls
3)使用apt-get命令来下载ls命令所在的包的源码。例如以下:
apt-getsourcecoreutils
注:
1)在使用dpkg时。若出现错误。能够使用sudo命令使其以root权限运行。
2)使用apt-getsource下载的源码保存到当前文件夹下。
。此外,当我们知道了命令所属的包后,也能够到对应的官方站点下载。
2、CentOS中系统命令源码的获取方法
以32位CentOS6.6下,获取ls命令的源码为例,能够使用例如以下的方法下载源码:
1)配置源码的源
在CentOS中,源的配置文件为:/etc/yum.repos.d/CentOS-Base.repo,改动该文件须要root权限。
打开该文件,查看该文件的内容,在本人的机子上,该文件的内容例如以下:
#CentOS-Base.repo
#
#ThemirrorsystemusestheconnectingIPaddressoftheclientandthe
#updatestatusofeachmirrortopickmirrorsthatareupdatedtoand
#geographicallyclosetotheclient.YoushouldusethisforCentOSupdates
#unlessyouaremanuallypickingothermirrors.
#
#Ifthemirrorlist=doesnotworkforyou,asafallbackyoucantrythe
#remarkedoutbaseurl=lineinstead.
#
#
name=CentOS-$releasever-Base
mirrorlist=$releaseverarch=$basearchrepo=os
#baseurl=$releasever/os/$basearch/
gpgcheck=1
gpgkey=
#releasedupdates
name=CentOS-$releasever-Updates
mirrorlist=$releaseverarch=$basearchrepo=updates
#baseurl=$releasever/updates/$basearch/
gpgcheck=1
gpgkey=
#additionalpackagesthatmaybeuseful
name=CentOS-$releasever-Extras
mirrorlist=?
release=$releaseverarch=$basearchrepo=extras
#baseurl=$releasever/extras/$basearch/
gpgcheck=1
gpgkey=
#additionalpackagesthatextendfunctionalityofexistingpackages
name=CentOS-$releasever-Plus
mirrorlist=$releaseverarch=$basearchrepo=centosplus
#baseurl=$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=
#contrib-packagesbyCentosUsers
name=CentOS-$releasever-Contrib
mirrorlist=$releaseverarch=$basearchrepo=contrib
#baseurl=$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=
该文件里有两个变量:releasever和basearch。分别表示release版本号和分支,如本人的机子上,这两个值分别为6和i386。注意。releasever并不会细分为次级版本号。即不会是6.6之类的。
从该文件的内容能够知道,该文件共同拥有5个节。也就是说本人的机子的软件来源有5处,分别为base、updates、extras、centosplus和contrib。所以仅仅须要为例如以下的5处软件源指定其源码的源就可以。在文件的末尾加上例如以下的内容:
name=CentOS-$releasever-Basesrc
baseurl=
gpgcheck=1
gpgkey=
name=CentOS-$releasever-Updatessrc-centos
baseurl=
gpgcheck=1
gpgkey=
name=CentOS-$releasever-Extrassrc-centos
baseurl=
gpgcheck=1
gpgkey=
name=CentOS-$releasever-Plussrc-centos
baseurl=
gpgcheck=1
gpgkey=
name=CentOS-$releasever-Contribsrc-centos
baseurl=
gpgcheck=1
gpgkey=
因为不同的版本号设置会有所不同,所以其设置会有所不同,方法可总结为例如以下:
(1)gpgkey与该文件里已有的节的gpgkey同样
(2)为了确认文件的存在和情况,能够打开站点查看详细的情况,再依据详细的情况来填写
(3)设置baseurl时须要依据自己的系统的版本号来设置,如本人的机子为CentOS-6.6,则在设置时,相关的_数就设置为6.6。即后接的子路径为6.6。
该文件的作用是为yum其及相关工作的下载提供一个源。如在使用yumdownloader(以下会讲到)下载源码时。会发生例如以下动作:
(1)下载$baseurl/repodata/repomd.xml文件。若该repomd.xml文件比系统中的新。更新系统中的对应的repomd.xml
(2)下载$baseurl/SPackages/中的对应的源码rpm包。
2)使用which命令查看ls命令的位置,例如以下:
whichls
#输出:/bin/ls
3)使用rpm命令查询ls命令所属的包,例如以下:
rpm-qf/bin/ls
#输出:coreutils-8.4-37.el6.i686
4)yumdownloader是一个从RPM源下载RPM的程序,能够使用yumdownloader命令安装源码。例如以下:
yumdownloader--sourcecoreutils-8.4-37.el6.i686
注:
(1)若yumdownloader命令没有安装,则能够使用此命令安装:yuminstallyum-utils。
(2)下载的文件在当前文件夹下。能够使用_数--destdir指定下载到哪一个文件夹。
5)使用yumdownloader下载到的是一个安装包文件rpm,能够使用例如以下的命令查询rpm中的tar文件:
rpm-qplcoreutils-8.4-37.el6.src.rpm|greptar
#输出:coreutils-8.4.tar.xz
6)使用rpm2cpio命令将rpm包文件转换成cpio归档文件,再使用cpio命令,从cpio归档文件复制提取出一个归档文件。出例如以下:
rpm2cpiocoreutils-8.4-37.el6.src.rpm|cpio-idvcoreutils-8.4.tar.xz
#输出:
#coreutils-8.4.tar.xz
#9561blocks
cpio的man解释为:cpiocopiesfilesintoanarchive
-i:与--extract等同。提取之意
-d:与--make-directories等同,当有须要时创建一个载入文件夹
-v:列出文件的处理过程
7)使用tar命令对coreutils-8.4.tar.xz压缩包进行解压缩,例如以下:
tar-xvf./coreutils-8.4.tar.xz
至此,命令的源码获取完毕。
利用linux系统开放源代码的特点?
(1)免费、没有版权。每个人都可以用。
(2)开源,源代码开放。用户可以根据自己的需要进行修改源码。
(3)内核遵守GPL协议:每个人都可以修改、使用、发布linux,但是修改后需要发布修改后的源代码。每个人都在为linux做贡献,众人拾柴火焰高。
(4)稳定性、安全性高。
(5)很多大型网站都用Linux服务器。
linux系统中如何安装程序、软件的几种方法
在Windows下安装软件时,只需运行软件的安装程序(setup、install等)或者用zip等解压缩软件解开即可安装,运行反安装程序(uninstall、unware、卸载等)就能将软件清除干净,完全图形化的操作界面,简单到只要用鼠标一直点击下一步就可以了。而Linux好象就不一样了,很多的初学者都抱怨在Linux下安装和卸载软件非常地困难,没有像使用Windows时那么直观。其实在Linux下安装和卸载软件也非常简单,同样也有安装向导或解压安装的方式,不相同的只不过是除了二进制形式的软件分发外,还有许许多多以源代码形式分发的软件包,下面就来详细地讲一讲这些软件的安装与卸载:
一、二进制分发软件包的安装与卸载
Linux软件的二进制分发是指事先已经编译好二进制形式的软件包的发布形式,其优点是安装使用容易,缺点则是缺乏灵活性,如果该软件包是为特定的硬件/操作系统平台编译的,那它就不能在另外的平台或环境下正确执行。
1、*.rpm形式的二进制软件包
安装:rpm-ivh*.rpm
卸载:rpm-e packgename
说明:RPM(RedHat Packge Manager)是RedHat公司出的软件包管理器,使用它可以很容易地对rpm形式的软件包进行安装、升级、卸载、验证、查询等操作,安装简单,而卸载时也可以将软件安装在多处目录中的文件删除干净,因此推荐初学者尽可能使用rpm形式的软件包。rpm的参数中-i是安装,-v是校验,-h是用散列符显示安装进度,*.rpm是软件包的文件名(这里的*.rpm特指*.src.rpm以外的以rpm为后缀的文件);参数-e是删除软件包,packgename是软件包名,与软件包的文件名有所区别,它往往是文件名中位于版本号前面的字符串,例如apache-3.1.12-i386.rpm和apache-devel-3.1.12-i386.rpm是软件包文件名,它们的软件包名称分别是apache和apache-devel。更多的rpm参数请自行参看手册页:man rpm。
如果你不喜欢在字符界面下安装或卸载这些软件包,完全可以在X-Window下使用图形界面的软件包管理程序,如glint、xrpm这样的图形接口,或者是KDE的kpackge等,这样对软件包的安装、升级、卸载、验证和查询就可以通过点击鼠标来轻松完成。
2、*.tar.gz/*.tgz、*.bz2形式的二进制软件包
安装:tar zxvf*.tar.gz或 tar yxvf*.bz2
卸载:手动删除
说明:*.tar.gz/*.bz2形式的二进制软件包是用tar工具来打包、用gzip/bzip2压缩的,安装时直接解包即可。对于解压后只有单一目录的软件,卸载时用命令rm-rf软件目录名;如果解压后文件分散在多处目录中,则必须一一手动删除(稍麻烦),想知道解压时向系统中安装了哪些文件,可以用命令tar ztvf*.tar.gz/tar ytvf*.bz2获取清单。tar的参数z是调用gzip解压,x是解包,v是校验,f是显示结果,y是调用bzip2解压,t是列出包的文件清单。更多的参数请参看手册页:man tar。
如果你更喜欢图形界面的操作,可以在X-Window下使用KDE的ArK压缩档案管理工具。
3、提供安装程序的软件包
这类软件包已经提供了安装脚本或二进制的安装向导程序(setup、install、install.sh等),只需运行它就可以完成软件的安装;而卸载时也相应地提供了反安装的脚本或程序。例如SUN公司的StarOffice办公软件套件就使用名为setup的安装程序,而且在软件安装后提供反安装的功能,目前这种类型的软件包还比较少,因其安装与卸载的方式与Windows软件一样,所以就无需多讲了。
二、源代码分发软件包的安装与卸载
Linux软件的源代码分发是指提供了该软件所有程序源代码的发布形式,需要用户自己编译成可执行的二进制代码并进行安装,其优点是配置灵活,可以随意去掉或保留某些功能/模块,适应多种硬件/操作系统平台及编译环境,缺点是难度较大,一般不适合初学者使用。
1、*.src.rpm形式的源代码软件包
安装:rpm-rebuild*.src.rpm
cd/usr/src/dist/RPMS
rpm-ivh*.rpm
卸载:rpm-e packgename
说明:rpm--rebuild*.src.rpm命令将源代码编译并在/usr/src/dist/RPMS下生成二进制的rpm包,然后再安装该二进制包即可。packgename如前所述。
2、*.tar.gz/*.tgz、*.bz2形式的源代码软件包
安装:tar zxvf*.tar.gz或 tar yxvf*.bz2先解压
然后进入解压后的目录:
./configure配置
make编译
make install安装
卸载:make uninstall或手动删除
说明:建议解压后先阅读说明文件,可以了解安装有哪些需求,有必要时还需改动编译配置。有些软件包的源代码在编译安装后可以用make install命令来进行卸载,如果不提供此功能,则软件的卸载必须手动删除。由于软件可能将文件分散地安装在系统的多个目录中,往往很难把它删除干净,那你应该在编译前进行配置,指定软件将要安装到目标路径:./configure--prefix=目录名,这样可以使用rm-rf软件目录名命令来进行干净彻底的卸载。与其它安装方式相比,需要用户自己编译安装是最难的,它适合于使用Linux已有一定经验的人,一般不推荐初学者使用。
关于Linux下软件的安装与卸载lanche已经讲了这么多,但可能还会有人问怎么知道一个tar.gz/bz2包是二进制文件包呢还是源代码包?如果你用过压缩工具就会明白,压缩包未必就是软件,它也可能是备份的许多图片,也可能是打包在一起的普通资料,要分辨它到底是什么最好的办法就是查看包里的文件清单,使用命令tar ztvf*.tar.gz/ tar ytvf*.bz2或者在X-Window下使用图形化的ArK压缩档案管理工具都可以,源代码包里的文件往往会含有种种源代码文件,头文件*.h、c代码源文件*.c、C++代码源文件*.cc/*.cpp等;而二进制包里的文件则会有可执行文件(与软件同名的往往是主执行文件),标志是其所在路径含有名为bin的目录(仅有少数例外)。原来这么简单呀,还不快点自己试试!