linux命令--RUN
linux命令一、linux各种版本linux命令是对Linux系统进行管理的命令。
对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。
linux命令在系统中有两种类型:内置Shell命令和Linux命令。
二、Linux基本操作命令首先介绍一个名词“控制台(console)”,它就是我们通常见到的使用字符操作界面的人机接口,例如dos。
我们说控制台命令,就是指通过字符界面输入的可以操作系统的命令,例如dos命令就是控制台命令。
我们现在要了解的是基于Linux操作系统的基本控制台命令。
有一点一定要注意,和dos命令不同的是,Linux的命令(也包括文件名等等)对大小写是敏感的,也就是说,如果你输入的命令大小写不对的话,系统是不会做出你期望的响应的。
2.1 模式切换1、由字符到图型#startx或#init 52、由图形到字符#logout或init 33、注销#logout或exit或ctrl+d4、关机#poweroff或init 0或shutdown now或 halt -p5、重启#reboot或init 6或shutdown -r now2.2 获得帮助#help提供内部命令的帮助#man或info提供外部命令的帮助。
如果你的英文足够好,那完全可以不靠任何人就精通linux,只要你会用man。
Man实际上就是察看指令用法的help,学习任何一种UNIX类的操作系统最重要的就是学会使用man这个辅助命令。
man是manual(手册)的缩写字,它的说明非常的详细,但是因为它都是英文,看起来非常的头痛。
建议大家需要的时候再去看man,平常吗,记得一些基本用法就可以了。
2.3 lsls [list]这个命令就相当于dos下的dir命令一样,这也是Linux控制台命令中最为重要几个命令之一。
ls最常用的参数有三个: -a -l -F。
ls -aLinux上的文件以“.”开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示一般文件名外,连隐藏文件也会显示出来。
ls -l(这个参数是字母L的小写,不是数字1)这个命令可以使用长格式显示文件内容,如果需要察看更详细的文件资料,就要用到ls -l这个指令。
例如我在某个目录下键入ls -l可能会显示如下信息(最上面两行是我自己加的):位置1 2 3 4 5 6 7文件属性文件数拥有者所属者group 文件大小建档日期文件名drwx------ 2 Guest users 1024 Nov 21 21:05 Mail-rwx--x--x 1 root root 89080 Nov 7 22:41 tar*-rwxr-xr-x 1 root bin 5013 Aug 15 9:32 uname*lrwxrwxrwx 1 root root 4 Nov 24 19:30 zcat->gzip-rwxr-xr-x 1 root bin 308364 Nov 29 7:43 zsh*-rwsr-x--- 1 root bin 9853 Aug 15 5:46 su*下面,我为大家解释一下这些显示内容的意义。
第一个栏位,表示文件的属性。
Linux的文件基本上分为三个属性:可读(r),可写(w),可执行(x)。
但是这里有十个格子可以添(具体程序实现时,实际上是十个bit位)。
第一个小格是特殊表示格,表示目录或连结文件等等,d表示目录,例如drwx------;l表示连结文件,如lrwxrwxrwx;如果是以一横“-”表示,则表示这是文件。
其余剩下的格子就以每3格为一个单位。
因为Linux是多用户多任务系统,所以一个文件可能同时被许多人使用,所以我们一定要设好每个文件的权限,其文件的权限位置排列顺序是(以-rwxr-xr-x为例):rwx(Owner)r-x(Group)r-x(Other)这个例子表示的权限是:使用者自己可读,可写,可执行;同一组的用户可读,不可写,可执行;其它用户可读,不可写,可执行。
另外,有一些程序属性的执行部分不是X,而是S,这表示执行这个程序的使用者,临时可以有和拥有者一样权力的身份来执行该程序。
一般出现在系统管理之类的指令或程序,让使用者执行时,拥有root身份。
第二个栏位,表示文件个数。
如果是文件的话,那这个数目自然是1了,如果是目录的话,那它的数目就是该目录中的文件个数了。
第三个栏位,表示该文件或目录的拥有者。
若使用者目前处于自己的Home,那这一栏大概都是它的账号名称。
第四个栏位,表示所属的组(group)。
每一个使用者都可以拥有一个以上的组,不过大部分的使用者应该都只属于一个组,只有当系统管理员希望给予某使用者特殊权限时,才可能会给他另一个组。
第五栏位,表示文件大小。
文件大小用byte来表示,而空目录一般都是1024byte,你当然可以用其它参数使文件显示的单位不同,如使用ls –k 就是用kb来显示一个文件的大小单位,不过一般我们还是以byte为主。
第六个栏位,表示创建日期。
以“月,日,时间”的格式表示,如Aug 15 5:46表示8月15日早上5:46分。
第七个栏位,表示文件名。
我们可以用ls –a显示隐藏的文件名。
ls –F(注意,是大写的F)使用这个参数表示在文件的后面多添加表示文件类型的符号,例如*表示可执行,/表示目录,@表示连结文件,这都是因为使用了-F这个参数。
但是现在基本上所有的Linux发行版本的ls都已经内建了-F参数,也就是说,不用输入这个参数,我们也能看到各种分辨符号。
2.4 cdcd [change directory]这个命令是用来进出目录的,它的使用方法和在dos下没什么两样,所以我觉得没什么可说的,但有两点我补充一下。
首先,和dos不同的是Linux 的目录对大小写是敏感的,如果大小写没拼对,你的cd操作是成功不了的。
其次,cd如果直接输入,cd后面不加任何东西,会回到使用者自己的Home Directory。
假设如果是root,那就是回到/root.这个功能同cd ~是一样的。
2.5 mkdir、rmdirmkdir [make directory] rmdir [remove directory]mkdir命令用来建立新的目录,rmdir用来删除已建立的目录,这两个指令的功能不再多加介绍,他们同dos下的md,rd功能和用法都是基本一样的。
2.6 cpcp [copy]这个命令相当于dos下面的copy命令,具体用法是:cp –r 源文件(source) 目的文件(target)参数r是指连同源文件中的子目录一同拷贝。
熟悉dos的读者用起这个命令来会觉得更方便,毕竟比在dos下面要少敲两下键盘。
2.7 rmrm [remove]这个命令是用来删除文件的,和dos下面的rm(删除一个空目录)是有区别的,大家千万要注意。
rm命令常用的参数有三个: -i,-r,-f。
比如我现在要删除一个名字为test的一个文件:rm –i test系统会询问我们:“rm:remove ‘test’?y”,敲了回车以后,这个文件才会真的被删除。
之所以要这样做,是因为linux不象dos那样有undelete 的命令,或者是可以用pctool等工具将删除过的文件救回来,linux中删除过的文件是救不回来的,所以使用这个参数在删除前让你再确定一遍,是很有必要的。
rm –r 目录名:这个操作可以连同这个目录下面的子目录都删除,功能上和rmdir相似。
rm –f 文件名(目录名):这个操作可以进行强制删除。
2.8 mvmv [move]这个命令的功能是移动目录或文件,引申的功能是给目录或文件重命名。
它的用法同dos下面的move基本相同,这里不再多讲。
当使用该命令来移动目录时,他会连同该目录下面的子目录也一同移走。
如果你想给一个文件或目录重命名时可以用以下方法:mv 原文件名(目录)新的文件名(目录)。
2.9 du,dfdu [disk usage]du命令可以显示目前的目录所占的磁盘空间,df命令可以显示目前磁盘剩余的磁盘空间。
如果du命令不加任何参数,那么返回的是整个磁盘的使用情况,如果后面加了目录的话,就是这个目录在磁盘上的使用情况(这个功能可是dos没有的呦)。
不过我一般不喜欢用du,因为它给出的信息是在是太多了,我看不过来,而df这个命令我是最常用的,因为磁盘上还剩多少空间对我来说是很重要的。
2.10 catcat[concatenate]这个命令是linux中非常重要的一个命令,它的功能是显示或连结一般的ascii文本文件。
cat是concatenate的简写,类似于dos下面的type命令。
它的用法如下:cat text 显示text这个文件;cat file1 file2 依顺序显示file1,file2的内容;cat file1 file2>file3 把file1,file2的内容结合起来,再“重定向(>)”到file3文件中。
“〉”是一个非常有趣的符号,是往右重定向的意思,就是把左边的结果当成是输入,然后输入到file3这个文件中。
这里要注意一点是file3是在重定向以前还未存在的文件,如果file3是已经存在的文件,那么它本身的内容被覆盖,而变成file1+file2的内容。
如果〉左边没有文件的名称,而右边有文件名,例如:cat >file1:结果是会“空出一行空白行”,等待你输入文字,输入完毕后再按[Ctrl]+[c]或[Ctrl]+[d],就会结束编辑,并产生file1这个文件,而file1的内容就是你刚刚输入的内容。
这个过程和dos里面的copy con file1的结果是一样的。
另外,如果你使用如下的指令:cat file1>>file2:这将变成将file1的文件内容“附加”到file2的文件后面,而file2的内容依然存在,这种重定向符〉〉比〉常用,可以多多利用。
2.11 more,less这是两个显示一般文本文件的指令。
如果一个文本文件太长了超过一个屏幕的画面,用cat来看实在是不理想,就可以试试more和less两个指令。
More指令可以使超过一页的文件临时停留在屏幕,等你按任何的一个键以后,才继续显示。
而less除了有more的功能以外,还可以用方向键往上或往下的滚动文件,所以你随意浏览,阅读文章时,less是个非常好的选择。
2.12 pwdpwd [print working directory]pwd [--help][--version]说明:执行pwd指令可立刻得知您目前所在的工作目录的绝对路径名称。
Linux命令大全完整版
Linux命令大全完整版目录目录 (I)1. linux系统管理命令 (1)adduser (1)chfn(change finger information) (1)chsh(change shell) (1)date (2)exit (3)finger (4)free (5)fwhois (5)gitps(gnu interactive tools process status) (5)groupdel(group delete) (6)groupmod(group modify) (6)halt (7)id (7)kill (8)last (8)lastb (8)login (9)logname (9)logout (9)logrotate (9)newgrp (10)nice (10)procinfo(process information) (11)ps(process status) (11)pstree(process status tree) (14)renice (15)rlogin(remote login) (16)rsh(remote shell) (16)rwho (16)screen (17)shutdown (17)sliplogin (18)su(super user) (18)sudo (19)suspend (19)swatch(simple watcher) (20)tload (20)top (21)uname (21)useradd (22)userconf (22)userdel (23)usermod (23)vlock(virtual console lock) (24)w (24)who (25)whoami (25)whois (25)2. linux系统设置命令 (27)alias (27)apmd(advanced power management BIOS daemon) (27)aumix(audio mixer) (27)bind (29)chkconfig(check config) (29)clock (30)crontab (31)declare (31)depmod(depend module) (32)dircolors (32)dmesg (33)enable (33)eval (33)export (33)fbset(frame buffer setup) (34)grpconv(group convert to shadow password) (35)grpunconv(group unconvert from shadow password) (35)hwclock(hardware clock) (35)insmod(install module) (36)kbdconfig (36)lilo(linux loader) (37)liloconfig (38)lsmod(list modules) (38)minfo (38)mkkickstart (39)modinfo(module infomation) (39)modprobe(module probe) (39)mouseconfig (40)ntsysv (41)passwd(password) (41)pwconv (41)pwunconv (42)rdate(receive date) (42)resize (42)rpm(redhat package manager) (43)set (46)setconsole (47)setenv(set environment variable) (48)setup (48)sndconfig (48)SVGAText Mode (49)timeconfig (49)ulimit (50)unalias (50)unset (51)3. linux文档编辑命令 (52)col (52)colrm(column remove) (52)comm(common) (52)csplit(context split) (53)ed(editor) (53)egrep (54)ex (54)fgrep(fixed regexp) (54)fmt(fromat) (54)fold (55)grep (55)ispell(interactive spelling checking) (57)jed (58)joe (58)join (60)look (61)mtype (61)rgrep(recursive grep) (62)sed(stream editor) (63)sort (64)spell (65)tr(translate character) (65)uniq (65)wc(word count) (66)4. linux压缩备份命令 (67)ar (67)bunzip2 (68)bzip2 (68)bzip2recover (69)compress (69)cpio(copy in/out) (70)dump (72)gunzip(gnu unzip) (73)gzexe(gzip executable) (74)gzip(gnu zip) (74)lha (75)restore (76)tar(tape archive) (77)unarj (80)unzip (81)zip (82)zipinfo (83)5.linux文件管理命令 (85)diff(differential) (85)diffstat(differential status) (86)file (87)git(gnu interactive tools) (90)gitview(gnu interactie tools viewer) (91)ln(link) (91)locate (92)lsattr(list attribute) (92)mattrib (93)mc(midnight commander) (93)mcopy (94)mdel (94)mktemp (95)mmove (95)mread (95)mren (96)mshowfat (96)mtools (96)mtoolstest (96)mv (97)od(octal dump) (97)paste (98)patch (99)rcp(remote copy) (101)rhmask (101)rm(remove) (101)slocate(secure locate) (102)split (102)tee (103)tmpwatch(temporary watch) (103)touch (103)umask (104)which (105)cat (105)chattr(change attribute) (106)chgrp(change group) (106)chmod(change mode) (107)chown(change owner) (108)cksum(check sum) (109)cmp(compare) (109)cp(copy) (110)cut (111)indent (111)6.linux文件传输命令 (115)bye (115)ftp(file transfer protocol) (115)ftpcount (115)ftpshut(ftp shutdown) (115)ftpwho (116)ncftp(nc file transfer protocol) (116)tftp(trivial file transfer protocol) (116)uucico (116)uucp (117)uupick (118)uuto (119)7. linux磁盘管理命令 (120)cd(change directory) (120)df(disk free) (120)dirs (121)du(disk usage) (121)edquota(edit quota) (122)lndir(link directory) (123)ls(list) (123)mcd (125)mdeltree (125)mdu (126)mkdir(make directories) (126)mlabel (126)mmd (127)mmount (127)mrd (127)mzip (127)pwd(print working directory) (128)quota (128)quotacheck (128)quotaoff (129)quotaon (129)repquota(report quota) (130)rmdir(remove directory) (130)rmt(remote magnetic tape) (130)stat(status) (131)Tree (131)umount (132)8. linux磁盘维护命令 (133)badblocks (133)cfdisk (133)dd (134)e2fsck(ext2 file system check) (134)ext2ed(ext2 file system editor) (136)fdisk (137)fsck.ext2(file system check-second filesystem) (137)fsck(file system check) (138)fsck.minix(file system check-minix filesystem) (139)fsconf(file system configurator) (139)hdparm(hard disk parameters) (139)losetup(loop setup) (141)mbadblocks (141)mformat (141)mkbootdisk(make boot disk) (142)mkdosfs(make Dos file system) (143)mke2fs(make ext2 file system) (143)mkfs.ext2 (144)mkfs(make file system) (144)mkfs.minix (145)mkfs.msdos (145)mkinitrd(make initial ramdisk images) (145)mkisofs(make iso file system) (145)mkswap (147)mpartition (148)sfdisk (148)swapoff (149)swapon (149)symlinks(symbolic links) (149)sync (150)9. linux网络通讯命令 (151)dip (151)getty(get teletypewriter) (151)mingetty (152)ppp-off (152)smbd(samba daemon) (152)telnet (153)uulog (154)uustat (154)uux (155)cu(call up) (156)dnsconf(dns configurator) (157)efax (158)httpd(http daemon) (159)ifconfig (159)mesg (160)minicom (161)nc (161)netconf (162)netstat (162)ping (163)pppstats(point to point protocol status) (164)samba (164)setserial (165)shapecfg(shaper configuration) (165)smbd(samba daemon) (166)statserial(status ofserial port) (166)talk (166)Tcpdump (167)testparm(test parameter) (168)traceroute (168)tty(teletypewriter) (169)uuname (169)wall(write all) (170)write (170)ytalk (170)arpwatch(ARP watcher) (170)apachectl(Apache control interface) (171)smbclient(samba client) (171)pppsetup (172)10. linux电子邮件与新闻组命令 (173)archive (173)ctlinnd(control the internet news daemon) (173)elm (173)getlist (174)inncheck(inn check) (174)mail (175)mailconf (175)mailq(mail queue) (175)messages (176)metamail (176)mutt (177)nntpget (178)pine (178)slrn (180)11. linux其他命令 (181)reconfig (181)startx(start X Window) (181)xconfigurator (181)XF86Setup (182)xlsatoms (182)xlsclients (183)xlsfonts (183)yes (184)1. linux系统管理命令adduser功能说明:新增用户帐号。
Linux关机命令详解
在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的,通过本文的介绍,希望你可以更加灵活的运用各种关机命令。
1.shutdownshutdown命令安全地将系统关机。
有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。
因为linux与windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。
而在系统关机前使用shutdown命令﹐系统管理员会通知所有登录的用户系统将要关闭。
并且login指令会被冻结﹐即新的用户不能再登录。
直接关机或者延迟一定的时间才关机都是可能的﹐还可能重启。
这是由所有进程〔process〕都会收到系统所送达的信号〔signal)决定的。
这让像vi之类的程序有时间储存目前正在编辑的文档﹐而像处理邮件〔mail〕和新闻〔news〕的程序则可以正常地离开等等。
shutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevel。
Runlevel 0被用来停机〔halt〕﹐runlevel 6是用来重新激活〔reboot〕系统﹐而runlevel 1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也没有-r参数给shutdown。
要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些动作﹐你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。
shutdown 参数说明:[-t] 在改变到其它runlevel之前﹐告诉init多久以后关机。
[-r] 重启计算器。
[-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。
[-h] 关机后关闭电源〔halt〕。
[-n] 不用init﹐而是自己来关机。
不鼓励使用这个选项﹐而且该选项所产生的后果往往不总是你所预期得到的。
Linux命令学习总结:详解reboot命令
Linux命令学习总结:详解reboot命令命令简介:该命令⽤来重启Linux系统。
相当于Windows系统中的restart命令。
命令语法:/sbin/reboot [-n] [-w] [-d] [-f] [-i]或reboot [-n] [-w] [-d] [-f] [-i]命令参数:参数长参数描叙-d重新启动时不把数据写⼊记录⽂件/var/tmp/wtmp-f强制重新开机,不调⽤shutdown指令的功能。
-h在系统关机或poweroff之前,将所有的硬盘处于待机模式-i关闭⽹络设置之后再重新启动系统-n保存数据后再重新启动系统-p When halting the system, do a poweroff. This is the default when halt is called aspoweroff-w仅做测试,并不真的将系统重新开机,只会把重开机的数据写⼊/var/log⽬录下的wtmp记录⽂件--help显⽰命令在线帮助使⽤⽰例:1: 查看reboot命令的帮助信息[root@DB-Server ~]# reboot --helpusage: reboot [-n] [-w] [-d] [-f] [-h] [-i]-n: don't sync before halting the system-w: only write a wtmp reboot record and exit.-d: don't write a wtmp record.-f: force halt/reboot, don't call shutdown.-h: put harddisks in standby mode.-i: shut down all network interfaces.[root@DB-Server ~]# man reboot[root@DB-Server ~]# man rebootHALT(8) Linux System Administrator鈥檚 Manual HALT(8)NAMEhalt, reboot, poweroff - stop the system.SYNOPSIS/sbin/halt [-n] [-w] [-d] [-f] [-i] [-p] [-h]/sbin/reboot [-n] [-w] [-d] [-f] [-i]/sbin/poweroff [-n] [-w] [-d] [-f] [-i] [-h]DESCRIPTIONHalt notes that the system is being brought down in the file /var/log/wtmp, and then either tells the kernel to halt, reboot or poweroff the system.If halt or reboot is called when the system is not in runlevel 0 or 6, in other words when it鈥檚 running normally, shutdown will be invoked instead (with the -h or -r flag). For more info see the shutdown(8) manpage.The rest of this manpage describes the behaviour in runlevels 0 and 6, that is when the systems shutdown scripts are being run.OPTIONS-n Don鈥檛 sync before reboot or halt. Note that the kernel and storage drivers may still sync.-w Don鈥檛 actually reboot or halt but only write the wtmp record (in the /var/log/wtmp file).-d Don鈥檛 write the wtmp record. The -n flag implies -d.-f Force halt or reboot, don鈥檛 call shutdown(8).-i Shut down all network interfaces just before halt or reboot.-h Put all harddrives on the system in standby mode just before halt or poweroff.-p When halting the system, do a poweroff. This is the default when halt is called as poweroff.DIAGNOSTICSIf you鈥檙e not the superuser, you will get the message 鈥榤ust be superuser鈥? Users logged in locally on the console can call halt, reboot, and poweroff without supplying the root password, due to pam_console (8).NOTESUnder older sysvinit releases , reboot and halt should never be called directly. From release 2.74 on halt and reboot invoke shutdown(8) if the system is not in runlevel 0 or 6. This means that if halt or reboot cannot find out the current runlevel (for example, when /var/run/utmp hasn鈥檛 been initializedcorrectly) shutdown will be called, which might not be what you want. Use the -f flag if you want to do a hard halt or reboot.The -h flag puts all harddisks in standby mode just before halt or poweroff. Right now this is only implemented for IDE drives. A side effect of puttingthe drive in standby mode is that the write cache on the disk is flushed. This is important for IDE drives, since the kernel doesn鈥檛 flush the write-cache itself before poweroff.The halt program uses /proc/ide/hd* to find all IDE disk devices, which means that /proc needs to be mounted when halt or poweroff is called or the -hswitch will do nothing.AUTHORMiquelvanSmoorenburg,******************SEE ALSOshutdown(8), init(8), pam_console(8)Nov 6, 2001 HALT(8)(END)2:强制重新开机,不调⽤shutdown指令的功能[root@DB-Server ~]# reboot -f3:关闭⽹络设置之后再重新启动系统[root@DB-Server ~]# reboot -iBroadcast message from root (pts/1) (Mon Jul 28 11:31:28 2014):The system is going down for reboot NOW!4:保存数据后再重新启动系统[root@DB-Server ~]# reboot -nBroadcast message from root (pts/1) (Mon Jul 28 11:33:57 2014):The system is going down for reboot NOW!5:重新启动时不把数据写⼊记录⽂件/var/tmp/wtmp[root@DB-Server ~]# reboot -dBroadcast message from root (pts/2) (Mon Jul 28 11:23:26 2014):The system is going down for reboot NOW!以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
Linuxreboot全过程
Linuxreboot全过程⼀、版本说明嵌⼊式Linux 下⾯的reboot命令看似简单,但出问题时定位起来发现别有洞天。
下⾯就按在shell下执⾏reboot命令之后程序的执⾏过程进⾏解析。
Busybox:1.23.2 ——制作跟⽂件系统,/sbin/reboot程序的由来Libc:2.6.1 ——标准C库Linux kernel:2.6.35 ——内核版本⼆、流程简介如图所⽰是reboot的简要流程图。
普通的reboot是通过busybox为⼊⼝,进⼊halt_main函数,然后给init进程发送SIGTERM信号,init进程接收到信号后给其他进程发送终⽌信号,最后调⽤C库函数reboot,reboot通过系统调⽤sys_reboot进⼊内核,内核将整个系统重启。
其中在shell中执⾏reboot –f则通过halt_main直接调⽤C函数reboot,不经过init进程。
三、代码详解1.reboot命令端执⾏reboot命令,busybox检查当前命令为reboot,进⼊函数halt_main,reboot,halt和poweroff都会进⼊这个函数,不同的命令发送的信号和执⾏的操作不同。
现只分析reboot的情况。
代码如下int halt_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;int halt_main(int argc UNUSED_PARAM, char **argv){static const int magic[] = {RB_HALT_SYSTEM,RB_POWER_OFF,RB_AUTOBOOT};static const smallint signals[] = { SIGUSR1, SIGUSR2, SIGTERM };int delay = 0;int which, flags, rc;/* Figure out which applet we're running */for (which = 0; "hpr"[which] != applet_name[0]; which++)continue;/* Parse and handle arguments */opt_complementary = "d+"; /* -d N *//* We support -w even if !ENABLE_FEATURE_WTMP,* in order to not break scripts.* -i (shut down network interfaces) is ignored.*/flags = getopt32(argv, "d:nfwi", &delay);sleep(delay);write_wtmp();if (flags & 8) /* -w */return EXIT_SUCCESS;if (!(flags & 2)) /* no -n */sync();/* Perform action. */rc = 1;if (!(flags & 4)) { /* no -f *///TODO: I tend to think that signalling linuxrc is wrong// pity original author didn't comment on it...if (ENABLE_FEATURE_INITRD) {/* talk to linuxrc *//* bbox init/linuxrc assumed */pid_t *pidlist = find_pid_by_name("linuxrc");if (pidlist[0] > 0)rc = kill(pidlist[0], signals[which]);if (ENABLE_FEATURE_CLEAN_UP)free(pidlist);}if (rc) {/* talk to init */if (!ENABLE_FEATURE_CALL_TELINIT) {/* bbox init assumed */rc = kill(1, signals[which]);} else {/* SysV style init assumed *//* runlevels:* 0 == shutdown* 6 == reboot */execlp(CONFIG_TELINIT_PATH,CONFIG_TELINIT_PATH,which == 2 ? "6" : "0",(char *)NULL);bb_perror_msg_and_die("can't execute '%s'",CONFIG_TELINIT_PATH);}}} else {rc = reboot(magic[which]);}if (rc)bb_perror_nomsg_and_die();return rc;}该函数判断reboot是否带了 -f 参数,如果带了,直接调⽤reboot调⽤C函数库如果没带,则通过kill(1, signals[which]);给init进程发送SIGTERM信号。
run文件运行方法
run文件运行方法
运行.run文件的一般步骤如下:
1. 打开终端:按下Ctrl + Alt + T键来打开一个终端窗口。
2. 进入文件目录:使用cd命令进入包含.run文件的目录。
例如,如果.run 文件位于主目录下的Downloads文件夹中,则可以运行命令“cd
~/Downloads”。
3. 修改权限:运行命令“chmod +x 文件名.run”,将.run文件设为可执行。
注意将“文件名”替换为实际的文件名。
4. 运行.run文件:输入命令“./文件名.run”来运行.run文件。
同样,将“文件名”替换为实际的文件名。
5. 按照提示操作:根据.run文件的要求,可能会出现安装向导或其他提示信息。
按照相应的指示进行操作。
6. 完成安装:完成运行和操作后,安装程序将会自动完成。
可以在终端上观察该过程并查看输出。
请注意,根据具体的.run文件,安装过程可能会有所不同。
一些.run文件可能需要额外的依赖项或运行其他命令来完成安装。
因此,建议在运行之前查看相关文档或网站的说明。
如何在Linux终端中调试程序
如何在Linux终端中调试程序在Linux系统中,终端是开发者和系统管理员经常使用的重要工具。
通过终端,我们可以执行各种命令和操作,包括程序的编译、运行和调试。
本文将介绍在Linux终端中如何进行程序调试的方法和技巧。
一、安装调试工具要在Linux终端中进行程序调试,首先需要安装相应的调试工具。
常用的调试工具包括GDB (GNU调试器)和LLDB (LLVM调试器)。
这两个工具都是开源的,可以通过包管理器来安装。
1. 使用GDB进行程序调试GDB是Linux中最常用的调试工具之一。
下面是GDB的安装方法:```$ sudo apt-get install gdb```安装完成后,可以通过以下命令来验证安装是否成功:```$ gdb --version```2. 使用LLDB进行程序调试LLDB是一个高级的调试工具,它可以用于多种编程语言,包括C、C++和Objective-C。
下面是LLDB的安装方法:```$ sudo apt-get install lldb```安装完成后,可以通过以下命令来验证安装是否成功:```$ lldb --version```二、编译程序时的调试选项在Linux终端中调试程序时,为了方便跟踪问题和定位错误,可以在编译程序时添加调试选项。
常用的调试选项包括-g(生成调试信息)、-Wall(显示警告信息)和-O0(禁用优化)。
例如,使用gcc编译C程序时可以使用以下命令:```$ gcc -g -Wall -O0 program.c -o program```三、使用GDB进行程序调试1. 启动GDB调试器通过以下命令启动GDB调试器,并加载需要调试的程序:```$ gdb program```2. 设置断点在GDB中,可以使用break命令设置断点,以便在程序执行到指定位置时暂停。
例如,要在函数的第10行设置断点,可以使用以下命令:```(gdb) break 10```3. 执行程序使用run命令执行程序,并在断点处停止:```(gdb) run```4. 调试程序一旦程序在断点处停止,可以使用以下命令进行调试:- 继续执行:使用continue命令继续执行程序。
AlpineLinux常用命令
AlpineLinux常⽤命令⼀:Alpine Linux开启SSH远程登陆1.简介:最重要的⼀个服务了,远程登陆需要⽤它,⽂件传输需要⽤它,必备功能。
不管你是在实体机上跑,虚拟机上跑,docker⾥⾯跑,这个都是必须的。
2.配置配置⽂件位置:/etc/ssh/sshd_config配置⽂件选项:#PermitRootLogin prohibit-password修改为:PermitRootLogin yes3.配置命令看不懂上⾯的,直接⽤下⾯这句。
sed -i "s/#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config4.重启服务改了配置不会直接⽣效,需要重启服务器或者服务。
重启服务器:reboot重启服务:rc-service sshd restart⼆:Alpine Linux源管理1.简介源这个概念在linux早就存在了,其实就是类似于软件市场的存在,apple在iphone上发扬光⼤了,并且⾃⼰管理安全的软件,使得iphone上软件兼容性等等问题得到改善,⽤户体验⽐较好,android基于linux核⼼开发,也有了软件市场,最著名的就是google市场,因为被墙,所以国内各个⼤软件⼚商也都有了⾃⼰的市场。
每个市场(源)都有⾃⼰的服务器,linux默认的都是外国的服务器,我们访问⽐较慢,所以就有了镜像服务器放在国内,让我们访问快⼀些。
管理源,就是增加镜像服务器。
⽽且,linux因为是⼤众维护更新代码,所以还区分了稳定版,测试版……各种版本的市场,这些都需要进⾏源管理。
2.国内源简介:这⼏个都有alpine的源还有⼀些没有alpine的3.配置:可以使⽤如下命令:sed -i 's///g' /etc/apk/repositories也可以直接编辑 /etc/apk/repositories ⽂件。
runltp 命令参数
runltp 命令参数
runltp是Linux Test Project(LTP)中的一个命令,它用于运行LTP测试套件中的测试用例。
LTP是一个用于测试Linux内核功能和性能的测试套件,它包含了大量的测试用例来覆盖各种系统调用、文件系统、网络等方面的功能。
runltp命令的参数可以根据测试需求进行设置,一般来说,它包括以下一些常见的参数:
1. -f <testlist>,指定要运行的测试用例列表文件,该文件包含了需要执行的测试用例的名称。
2. -p <package>,指定要运行的测试用例所属的包,可以根据需要选择不同的测试包进行测试。
3. -l <logdir>,指定测试结果的日志输出目录,测试运行结束后会将测试结果输出到该目录下的日志文件中。
4. -i <iterations>,指定测试用例的运行次数,可以用于进行多次重复测试以验证稳定性和一致性。
5. -g <tag>,根据标签运行测试用例,可以根据测试用例的标
签进行筛选运行。
6. -h,显示帮助信息,列出所有可用的参数和其含义。
除了上述常见的参数外,runltp命令还可以根据具体的测试需求使用其他参数,例如指定测试用例的超时时间、指定测试用例的运行顺序等。
在使用runltp命令时,需要根据具体的测试场景和需求来选择合适的参数进行配置,以确保测试能够按照预期进行并生成准确的测试结果。
同时,也需要注意在运行测试前做好必要的准备工作,如清理环境、准备测试数据等,以确保测试的准确性和可靠性。
Linux之运行级别runlevel
Linux之运⾏级别runlevelrunlevel简介运⾏级别的概念是linux操作系统中产⽣的,在windows中并没有此概念。
runlevel0:系统停机状态,系统默认运⾏级别不能设为0,否则不能正常启动。
在其他模式下更改到此模式,所有进程将被终⽌,机器将有序的停⽌,状态变为关机状态。
runlevel1:单⽤户模式,root权限,⽤于系统维护,禁⽌远程登陆。
runlevel2:多⽤户模式,和运⾏级别3⼀样,只是⽹络问卷系统(NFS)服务没有启动。
runlevel3:完全的多⽤户模式(有NFS)。
登陆后进⼊控制台命令⾏模式(字符界⾯的正常模式)。
runlevel4:系统未使⽤,留给⽤户⾃定义的运⾏级别,保留。
runlevel5:多⽤户模式,并且在系统启动后运⾏X-windows,登陆后进⼊图形GUI模式(图形界⾯的正常模式)。
runlevel6:系统正常关闭并重启,默认运⾏级别不能设为6,否则不能正常启动。
系统默认的运⾏级别是3或5,不能是0和6。
centos6以及之前版本查看运⾏级别runlevel[root@localhost /]# runlevelN 5[root@localhost /]#临时切换运⾏级别init 级别号[root@localhost /]# init 3[root@localhost /]# runlevel5 3[root@localhost /]#再次查看运⾏级别,你会看到刚刚的运⾏级别,和现在当前的运⾏级别(不过这个⽅法重启之后,就恢复了)。
除此之外,如果您的Linux安装了图形界⾯(init5 级别需要安装X-WINDOWS),可以输⼊startx 直接进⼊init5 图形模式:[root@localhost /]# startx[root@localhost /]# runlevel3 5[root@localhost /]#修改系统默认运⾏级别刚刚输⼊init级别号,只是临时更改。
linux sdk命令的用法 -回复
linux sdk命令的用法-回复Linux SDK命令的用法Linux是一种开源操作系统,为开发者提供了丰富的软件开发工具和应用程序接口,以构建各种类型的应用程序。
Linux SDK(Software Development Kit)是一组用于开发Linux应用程序的工具、库和文档。
它包括编译器、调试器、开发库和示例代码等,为开发者提供了一站式的开发环境。
本文将逐步介绍Linux SDK命令的用法。
第一步:安装Linux SDK首先,我们需要在Linux系统上安装Linux SDK。
这通常可以通过包管理器或从官方网站下载SDK。
一旦安装完成,我们可以开始使用其中的命令和工具。
第二步:使用编译器Linux SDK包含了一个强大的编译器集合,用于将源代码编译成可执行文件。
最常用的是GNU编译器套件(GCC),它支持多种编程语言,如C、C++、Objective-C等。
下面是GCC的一些常用命令:1. gcc:编译C源代码文件。
例如,gcc -o hello hello.c将hello.c文件编译为名为hello的可执行文件。
2. g++:编译C++源代码文件。
类似于gcc命令,可以使用g++命令来编译C++程序。
3. gcc -c:只进行编译而不链接。
这个命令生成目标文件(.o文件),可以在后续的步骤中使用。
4. gcc -E:预处理源代码文件。
这个命令将宏展开、头文件包含等预处理指令应用到源代码文件中。
5. gcc -g:生成带有调试信息的可执行文件。
使用这个选项可以在调试程序时获得更多的信息。
除了GCC,Linux SDK还提供了其他编译器,如LLVM(低级虚拟机),它支持更多的编程语言和编译优化。
第三步:使用调试器在开发过程中,调试器是一个非常重要的工具,用于定位和修复代码中的错误。
Linux SDK提供了多个调试器,如GDB(GNU调试器)和LLDB(LLVM调试器)。
下面是一些调试器的使用命令:1. gdb:启动GDB调试器。
