linux命令源码 Linux命令源码

如何编译linux源代码首先uname -r看一下你当前的linux内核版本
1、linux的源码是在/usr/src这个目录下,此目录有你电脑上各个版本的linux内核源代码,用uname -r命令可以查看你当前使用的是哪套内核 , 你把你下载的内核源码也保存到这个目录之下 。
2、配置内核 make menuconfig,根据你的需要来进行选择,设置完保存之后会在当前目录下生成.config配置文件,以后的编译会根据这个来有选择的编译 。
3、编译 , 依次执行make、make bzImage、make modules、make modules
4、安装,make install
5、.创建系统启动映像 , 到 /boot 目录下,执行 mkinitramfs -o initrd.img-2.6.36 2.6.36
6、修改启动项,因为你在启动的时候会出现多个内核供你选择 , 此事要选择你刚编译的那个版本,如果你的电脑没有等待时间,就会进入默认的,默认的那个取决于 /boot/grub/grub.cfg 文件的设置 , 找到if [ "${linux_gfx_mode}" != "text" ]这行,他的第一个就是你默认启动的那个内核 , 如果你刚编译的内核是在下面,就把代表这个内核的几行代码移到第一位如:
menuentry 'Ubuntu, with Linux 3.2.0-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
gfxmode $linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 roquiet splash $vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
当然你也可以修改 set default="0"来决定用哪个,看看你的内核在第几位 , default就填几,不过我用过这种方法,貌似不好用 。
重启过后你编译的内核源码就成功地运行了,如果出现问题 , 比如鼠标不能用,usb不识别等问题就好好查查你的make menuconfig这一步,改好后就万事ok了 。
最后再用uname -r看看你的linux内核版本 。是不是你刚下的那个呢!有没有成就感?
linux内核源码安装起因:想查看链表list.h源码,但系统中没有找到
经过一番搜索 , 总结下安装步骤:
此时需要安装一个mock , 并新建一个mockbuild用户
4、命令行执行
5、回到根目录下 /root/rpmbuild ,可以看到SPECS文件夹cd到这个文件夹
执行 rpmbuild -bp --target = $ (uname -m) kernel.spec
如果提示rpmbuild not find , 需要先安装rpmbuild, yum install rpmbuild
6、运行后会出现错误,提示
执行
7、依赖包安装完成后,再次执行
至此,安装完成 。
求Linux下命令的源代码,1.ash
(1)简介
ash --a shell
这是由Kenneth Almquist在1989年编写的,ash是Linux下的许多命令解释器中的一个,它的许多特性接近于SYSTEM V的shell 。
(2)部分参数说明
ash [ -efIijnsxz ] [efIijnsxz ] [ -c命令] [ 参数 ]
-c 命令linux命令源码:若用-c参数,则ash从标准输入中读入命令(在执行完-c带的命令之后) 。
-slinux命令源码:若用-s参数,则ash从标准输入中读入命令(在执行完-c带的命令之后) 。
如果不跟-c -s参数则ash以所跟的第一个参数为文件名,从此文件中读入命令 。如无参数则ash缺省设定-s参数,从标准输入中读入命令,直到输入exit 。
如果参数0的第一个字母是"-"则ash确定为login shell,ash将从/etc/profile或用户的根目录中的.profile读入相应的设置和环境变量 。
-e:若用-e参数 , 则ash执行命令后返回值为非零值时则退出ash 。
-f:若用-f参数,则ash关闭自动产生文件名功能 。
-j:打开伯克利UNIX风格的工作控制 。
-n:读入命令但是并不执行 。
(3)范例
ash -c ls
ash执行ls这个命令后退回原先的目录和shell 。
ash -s
ash执行一个新的shell,现在可以在这个shell中工作,按(Ctrl-D)或输入exit后,则退回原先的目录和shell,所设定的环境变量返回原先的值 。
2.at
(1)简介
at,batch , atq,atrm:安排、检查、删除队列中的工作 。
由Thomas Koenig编写 。
(2)部分参数说明
at [-V] [-q队列] [-f文件名] [-mldbv] 时间
at -c 作业 [作业…]
atq [-V] [-q队列] [-v]
atrm [-V] 作业 [作业…]
batch [-V] [-q队列] [-f文件名] [-mv] [时间]
at在设定的时间执行作业 。
atq列出用户排在队列中的作业,如果是超级用户,则列出队列中的所有工作 。
atrm删除队列中的作业 。
batch用低优先级运行作业,只要系统的loadavg(系统平均负载)1.5(或者在atrun中设定的值)它就开始执行作业 。
-V:若用-V参数 , 则显示版本号到标准错误输出 。
-q队列:若用-q参数 , 则指定可选队列名称,队列名称可以是a到z或A到Z之间的任意字母 。at的缺省队列名是c,batch的缺省队列名是E,队列的字母顺序越高,则队列的优先级越低 。如果是大写字母的话则提交给batch,如果atq使用-q参数,则只显示这个队列中的作业 。
-m:执行完作业后即使此作业并没有输也给提交作业的用户发送提示mail 。
-f文件名:从文件中读取作业 。
-l:等于atq 。
-d:等于atrm 。
-b:等于batch 。
时间:这是用户设定的作业开始执行的时间 。时间的格式分成三个部分:时间、日期、偏移量 。可接受的时间形式是HHMM或HH:MM,在一天中指定的时间运行,如果时间过去linux命令源码了就在第二天执行 。可以在时间后加入AM或PM使其在上午或下午运行,也可以指定在哪一天执行,给出日期的格式应为MMDDYY或MM/DD/YY或MM.DD.YY , 也可以给出偏移量:
时间+计数时间间隔
时间间隔可以是minutes,hours,days,weeks 。
也可以指定today让作业在今天执行,指定tommorow让作业在明天执行 。
(3)注意事项
如果没有指定-f选项,是at从标准输入读入所有的命令,所以可以通过管道、重定向或交互输入来输入命令 。
超级用户可以在任何情况下使用at系列的命令 。一般用户使用at系列命令的权利由文件/etc/at.allow,/etc/at.deny控制 。如果/etc/at.allow存在 , 则只有列在这个文件中的用户才能使用at系列的命令 。如果/etc/at.allow文件不存在,则检查/etc/at.deny这个文件 。只要不列在这个文件中的用户都可以使用at系列的命令 。缺省的配置是/etc/at.deny,是一个空文件,这表明所有的用户都可以使用at系列的命令 。
(4)范例
at -f work 4pm3 days
在三天后下午4点执行文件work中的作业 。
at -f work 10am Jul 31
在七月31日上午10点执行文件work中的作业 。
【linux命令源码 Linux命令源码】3.banner
banner:打印大标题 。
banner在标准输出上打印高质量的标题,如果没有输入要打印的文字,则其等待从标准输入输入一行文字 。其标题由"*"组成 。由Mark Horton编写 。
(2)部分参数说明
/usr/bin/banner [ -wn ]信息
-w宽度 输出宽度从131到n , n缺省为80列 。
(3)注意事项
不能打印字符: ,,[,] , \,^,_,{,},|,- 。信息长度为10个英文字符,如果用空格分开字符串,还是连续打印字符串,两个字符串可以被括在引号(")中 。这命名banner把这些字任串置于同一行中 。
4.bash
(1)简介
bash:GNU Bourne-Again Shell
自由软件基金会(Free Software Foundation Inc)拥有bash版权 。
bash是Linux下的许多命令解释器中的一个,同sh兼容 , 并且包含了ksh和csh中一些有用的特性 。遵从IEEE Posix Shell and Tools specification(IEEE Working Group 1003.2) 。
如何查看linux命令源代码和函数源代码1. 以搜索ls命令源码为例linux命令源码,先搜索命令所在包linux命令源码,命令如下:
lpj@lpj-linux:~$ which ls
/bin/ls
2. 用命令搜索该软件所在包,代码如下:
lpj@lpj-linux:~$ dpkg -S /bin/ls
coreutils: /bin/ls
3. 从上一步中可以知道ls命令linux命令源码的实现在包coreutils中,用apt安装(说安装有些歧义,主要是区分apt-get -d)该包linux命令源码的源代码然后解压,代码如下:
sudo apt-get source coreutils
cd /usr/src/coreutils-XXX #XXX表示版本号
sudo tar zxvf coreutils-XXX.tar.gz
或者只下载源码,然后手动打补丁再解压,代码如下:
sudo apt-get -d source coreutils
cd /usr/src
tar zxvf coreutils-XXX.tar.gz
gzip -d coreutils-XXX.diff.gz #这一步会生成coreutils-XXX.diff文件
patch -p0coreutils-XXX.diff
cd coreutils-XXX
tar zxvf coreutils-XXX.tar.gz
OK,这几步执行完后,就可以进入/usr/src/coreutils-XXX/coreutils-XXX/src中查看各命令对应的源代码linux命令源码了
请问linux下的系统命令是不是开源的? 比如sort,awk等等,如果是的话,在哪可以找到源代码?Linux是开源的linux命令源码,它自带的功能强大的命令也是开源的linux命令源码,也就是说,我们可以获得这些命令的源代码并研究它 。那究竟如何获得系统的命令的源代码呢?
命令的源代码是一个软件包为单元的,放在一个软件包的源代码中,若要下载一个命令的源代码,就要把这个命令所属的软件包的源代码都下载下来 。命令的源代码就在下载的源代码的相关目录内 , 通常是src目录,相应的主文件名为cmd.c,其中cmd为具体的命令 , 如ls命令的主程序文件为ls.c 。可查阅“Linux命令大全”了解Linux命令 。
linux下wsdl2java获取源码命令运行命令WSDL2Java 。
生成服务端代码命令是WSDL2Javauriwsdl文件全路径p包名dxmlbeanss,sssdssio生成的java代码存放路径 。生成客户端包代码命令是WSDL2Java至uriwsdl文件全路径p包名dxmlbeansso生成的java代码存放路径 。
源码就是指编写的最原始程序的代码 。运行的软件是要经过编写的,程序员编写程序的过程中需要他们的语言 。音乐家用五线谱和音符,建筑师用图纸和笔 , 那程序员的工作的语言就是源码了 。
linux命令源码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Linux命令源码、linux命令源码的信息别忘了在本站进行查找喔 。

    推荐阅读