linuxsl命令源码 编写linux的ls命令

如何查看linux系统源码

例如:想在Linux系统下查看cat命令工具的源码,方法如下:

创新互联公司是一家集网站建设,汤阴企业网站建设,汤阴品牌网站建设,网站定制,汤阴网站建设报价,网络营销,网络优化,汤阴网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

1、查看工具的路径

$ whereis cat

cat: /bin/cat /usr/share/man/man1/cat.1.gz

2、查看工具所属的包

$ dpkg -S /bin/cat

coreutils: /bin/cat

coreutils就是cat的源码包名

3、下载工具源码包

$ sudo apt-get source coreutils

[sudo] password for lizh: 

正在读取软件包列表... 完成

正在分析软件包的依赖关系树       

正在读取状态信息... 完成       

需要下载 10.8MB 的源代码包。

获取:1  maverick/main coreutils 8.5-1ubuntu3 (dsc) [1,891B]

获取:2  maverick/main coreutils 8.5-1ubuntu3 (tar) [10.7MB]

获取:3  maverick/main coreutils 8.5-1ubuntu3 (diff) [21.5kB]

下载 10.8MB,耗时 42秒 (254kB/s)                                            

gpgv: 于 2015年07月06日 星期一 13时49分55秒 CST 创建的签名,使用 RSA,钥匙号 21B2133D

gpgv: 无法检查签名:找不到公钥

dpkg-source: 警告: 对 ./coreutils_8.5-1ubuntu3.dsc 校验签名失败

dpkg-source: info: extracting coreutils in coreutils-8.5

dpkg-source: info: unpacking coreutils_8.5.orig.tar.gz

dpkg-source: info: applying coreutils_8.5-1ubuntu3.diff.gz

linux命令之ls -al

ls -al命令来观察文件权限,每个文件的权限都用10位表示,其中第一段占1位,表示第一个字符代表这个文件的类型(目录,文件或链接文件)。

若为“d”则是目录,若为“-”则是文件,若为“l”则表示链接文件,若为“”则表示为设备文件里面的可供存储的周边设备,若为“c”则表示为设备文件里面的串行端口设备,如键盘鼠标。

第二段占3位,表示权限,均为[rwx]的三个参数的组合。其中r表示可读,w表示可写,x表示可执行,如果没有权限,则会显示减号“-”。

扩展资料:

Linux命令注意事项:

Linux的命令(也包括文件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的。

Linux常用的命令:

clear,这个命令是用来清除屏幕的,它不需要任何参数,和dos下面的cls具有相同的功能,如果你觉得屏幕太紊乱,就可以使用它清除屏幕上的信息。

目录切换(cd),使用cd(Change Directory)命令可以在不同目录之间切换。

列出目录中的文件(ls),在Linux命令行终端中使用的最多的命令就是这个ls,它可以帮助我们列出当前目录下都有哪些文件。

参考资料来源:百度百科-Linux命令

求Linux下命令的源代码,

1.ash

(1)简介

ash --a shell

这是由Kenneth Almquist在1989年编写的,ash是Linux下的许多命令解释器中的一个,它的许多特性接近于SYSTEM V的shell。

(2)部分参数说明

ash [ -efIijnsxz ] [ +efIijnsxz ] [ -c命令] [ 参数 ]

-c 命令:若用-c参数,则ash从标准输入中读入命令(在执行完-c带的命令之后)。

-s:若用-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,在一天中指定的时间运行,如果时间过去了就在第二天执行。可以在时间后加入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 4pm + 3 days

在三天后下午4点执行文件work中的作业。

at -f work 10am Jul 31

在七月31日上午10点执行文件work中的作业。

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源代码

首先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 ro quiet splash $vt_handoff

initrd/boot/initrd.img-3.2.0-35-generic

}

当然你也可以修改 set default="0"来决定用哪个,看看你的内核在第几位,default就填几,不过我用过这种方法,貌似不好用。

重启过后你编译的内核源码就成功地运行了,如果出现问题,比如鼠标不能用,usb不识别等问题就好好查查你的make menuconfig这一步,改好后就万事ok了。

最后再用uname -r看看你的linux内核版本。是不是你刚下的那个呢!有没有成就感?


当前名称:linuxsl命令源码 编写linux的ls命令
网页路径:http://hbruida.cn/article/dodsope.html