
論壇
網站公告
社群伺服器正進行搬移作業中,部份已完成;目前仍缺硬體資源,請參考討論區站務公告及主機近況公告。若有不便之處敬請見諒。
查看所有帖子|
訪客
|
回覆: 如何截取字符串:除去后四位 |
|
|---|---|---|
|
Anon:訪客
|
oldstr='$d98345k'
newstr=${oldstr%????}
Ident: c49af9aebe4a03e8988be53fc8fc5833 |
今天 0:37:50
|
|
工具箱
|
||
回覆: 請問如何設定一段時間自動登出? |
|||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
會員四級
![]()
註冊日期:
2008/7/14 0:03 來自 螢幕的另一端
所屬群組:
已註冊使用者 等級: 20
HP : 97 / 486
![]() |
Timor 寫到: 哇~ 沒想到還有這種好東西呀! 先收下來了,感謝!
Ident: b6ad7d99f5dc6c5ff4a2fc96718f4032 |
昨天 23:47:42
|
||||||||||
|
_________________
法﹑輪﹑大﹑法﹑好 |
|||||||||||
工具箱
|
|||||||||||
回覆: 關於系統選擇畫面 |
|||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
會員三級
![]()
註冊日期:
2008/4/29 1:37 所屬群組:
已註冊使用者 等級: 12
HP : 0 / 278
![]() |
收下了
感謝hepha~~~
Ident: aaa9103bc95080c9699c7e4f01a1f514 |
昨天 23:29:02
|
||||||||||
工具箱
|
|||||||||||
|
訪客
|
回覆: 如何在tty6中使用VirtualBox掛載一個os並可使用? |
|
|---|---|---|
|
Anon:訪客
|
Ubuntu Linux系统的启动过程
BIOS 自检 启动 GRUB/LILO 运行 Linux 的系统内核 读取系统引导配置文件 /etc/inittab 中的信息运行系统的第一个进程 init 执行系统初始化脚本 /etc/init.d/rcS 根据运行级别(X)配置服务执行 /etc/init.d/rcX.d/[KS]* 终止以“K”开头的服务 启动以“S”开头的服务 运行 getty 等待用户登录 执行系统初始化脚本 /etc/init.d/rcS 时会执行 /etc/init.d/networking 启动网络配置 在执行 /etc/init.d/rcX.d/ 时,若运行级别为 2~5 若安装了Gnome/KDE,还会运行 gdm/kdm 运行脚本 /etc/rc.local 执行本地的其他启动配置 INIT 及其配置文件 INIT 进程是由 Linux 内核引导的,是系统中的第一个进程,是系统其他进程的祖先进程,其进程号(PID)永远为 1。 INIT 进程在运行时将读取系统引导配置文件 /etc/inittab 中的信息。这些信息包括默认的运行级别和由 INIT 启动的进程。 代码: cat /etc/inittab # /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ # The default runlevel. id:2:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. si::sysinit:/etc/init.d/rcS # What to do in single-user mode. ~~:S:wait:/sbin/sulogin # /etc/init.d executes the S and K scripts upon change # of runlevel. # # Runlevel 0 is halt. # Runlevel 1 is single-user. # Runlevels 2-5 are multi-user. # Runlevel 6 is reboot. l0:0:wait:/etc/init.d/rc 0 l1:1:wait:/etc/init.d/rc 1 l2:2:wait:/etc/init.d/rc 2 l3:3:wait:/etc/init.d/rc 3 l4:4:wait:/etc/init.d/rc 4 l5:5:wait:/etc/init.d/rc 5 l6:6:wait:/etc/init.d/rc 6 # Normally not reached, but fallthrough in case of emergency. z6:6:respawn:/sbin/sulogin # What to do when CTRL-ALT-DEL is pressed. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now # Action on special keypress (ALT-UpArrow). #kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work." # What to do when the power fails/returns. pf::powerwait:/etc/init.d/powerfail start pn::powerfailnow:/etc/init.d/powerfail now po::powerokwait:/etc/init.d/powerfail stop # /sbin/getty invocations for the runlevels. # # The "id" field MUST be the same as the last # characters of the device (after "tty"). # # Format: # ::: # # Note that on most Debian systems tty7 is used by the X Window System, # so if you want to add more getty's go ahead but skip tty7 if you run X. # 1:2345:respawn:/sbin/getty 38400 tty1 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6 # Example how to put a getty on a serial line (for a terminal) # #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100 #T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100 # Example how to put a getty on a modem line. # #T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3 以 # 开头的行为注释行 每一行包括如下四个字段(每个字段用“:”间隔): id : runlevels : action : process 文件 /etc/inittab 的字段说明 id 该字段是各有效行的标识符。对定义 getty 的各行来说,该标识符指定 getty 运行的终端(即设备文件 /dev/tty 之后的数字字符);对其他行来说,除了有长度限制外没有特殊要求,但该字段在整个文件中必须唯一。 runlevels 指定运行级别,各运行级别由单个的数字表示,可以指定多个运行级别,但不能包含任何间隔符。 action 指定运行状态,可以有如下的取值: initdefault — 指定启动后所进入的运行级别,process 字段将被忽略,默认值为 2 sysinit — 在系统启动时执行初始化 wait — 执行下一个字段指定的命令,并等待其结束再运行其他命令 respawn — 当下一个字段指定的命令结束后,重新运行该命令(如控制台登录程序 getty) ctrlaltdel — 当按下Ctrl+Alt+Del组合键时执行下一个字段指定的命令 powerwait — 当出现电源错误时执行下一个字段指定的命令,并等待其结束 powerfailnow — 当出现电源错误时执行下一个字段指定的命令,不等待其结束 powerokwait — 当电源恢复时执行下一个字段指定的命令 Ubuntu Linux系统的启动过程 和 debian 还是有点区别的 主要就是ubuntu 没有了 /etc/inittab 这个文件,取而代之的是 /etc/event.d/中的rc-default文件。 ubuntu 从6.10开始逐步用upstart代替原来的sysinit,进行服务进程的管理。也正是从6.10开始,ubuntu的启动过程开始变得有点“变幻莫测”。也没办法,这是正在开发中的upstart不可避免的。为了对原有的init实现向后兼容,upstart可以说是在表象上保留了大部分原来 init的特性,因而目前linux初始化进程名仍然叫init,而改变的核心,乃是Event机制。理解并讲清楚这个改变的重要意义和内在机理可不是件容易的事,所以我只打算研究一下目前upstart(0.3.9, ubuntu 8.04)在系统启动中的表象行为。[注:据Scott James Remnant在其博客上所说,upstart 0.5.0版本将在未来几周发布。] 关于系统启动,熟悉Linux的人大多应该知道,init进程(PID=1)乃是所有进程的父进程,所有进程由它控制。init进程的运行时间是内核完成文件系统的加载后。那么init进程是如何开启系统中的其它进程的呢?在阐述这个问题之前,大致地说明一下目前ubuntu中与init相关的几个目录和应用程序,可以方便后面的论述。这些目录和程序包括: init telinit runlevel /etc/event.d/ /etc/init.d/ /etc/rcX.d/ 前三个是应用程序(注意哦,它们都不是shell脚本),可以理解为是由内核调用的。关于它们的功能,从manpage查看就可以了。我们的重点是后面给出的三个目录。 首先是/etc/event.d/目录,这是upstart的核心,upstart不同于原有的init的地方就在于它引入了event机制。Event机制通俗的讲就是将所有进程的触发、停止等等都看作event(事件)。/etc/event.d/中就存放了目前upstart需要识别的event。这其中主要有三种rc-default, rcX(x=0,1,...6,S)以及ttyX。这rc-default就类似于那大名鼎鼎的inittab文件,它就是设置默认运行级别的 [注:upstart中实际并没有运行级别的概念,这么称呼是为了init向后的兼容性]。现在你应该知道了ubuntu里没有了inittab文件后该到哪里设置默认运行级别的了吧!cat rc-default一下吧!rcX文件是发生相应运行级别事件(可以注意到event这个词在upstart里真是无处不见啊)时,需要运行程序的脚本,而ttyX则是设置伪终端数目的,也就是你Ctrl+Alt+F(1~6)调出的那个Console。我们以rc2为例,cat rc2: start on runlevel 2 stop on runlevel [!2] console output script set $(runlevel --set 2 || true) if [ "$1" != "unknown" ]; then PREVLEVEL=$1 RUNLEVEL=$2 export PREVLEVEL RUNLEVEL fi exec /etc/init.d/rc 2 end script 不去考虑细节,只要注意到前两行和倒数第二行就可以了。可以看到,rc2文件是定义在发生运行级别2的时候所要执行的东西,核心就是这句:exec /etc/init.d/rc 2。这样,我们就可以自然地过渡到下一个重要的目录,/etc/init.d/了。 你可以ls /etc/init.d/看一下里面的内容,对它有个大致的了解。/etc/init.d/中存放的是服务(services)或者任务(tasks)的执行脚本。可以这么说,只要你安装了一个程序(特别是服务程序daemon),它可以在系统启动的时候运行,那么它必定会在/etc/init.d/中有一个脚本文件。我们还回到上面的rc2文件,它执行了一个exec /etc/init.d/rc 2的命令。也就是说,给/etc/init.d/rc脚本传递了一个参数"2",让它执行。我们仔细查看一下rc脚本(很长,耐心点),能看到这样的一段: # Now run the START scripts for this runlevel. # Run all scripts with the same level in parallel ....... for s in /etc/rc$runlevel.d/S* ....... 这说明,当给rc脚本传递一个数字参数"X"的时候,它在经过一系列的设置后,将会开始执行/etc/rcX.d/下S开头的脚本。这就过渡到下一个目录/etc/rcX.d/了。 进入/etc/rcX.d/,ls -l /etc/rcX.d/看看有些什么内容?哈哈,没错,都是一些到/etc/init.d/中脚本的符号链接。不同的是它们的开头加上了S和一个数字。熟悉原本init的人应该知道,S表示在启动时运行,数字则表示执行的先后顺序。 这样一来,upstart管理的ubuntu启动过程应该就清楚了。梳理一下: 1,内核启动init 2,init找到/etc/event.d/rc-default文件,确定默认的运行级别(X) 3,触发相应的runlevel事件,开始运行/etc/event.d/rcX 4,rcX运行/etc/init.d/rc,传入参数X 5,/etc/init.d/rc脚本进行一系列设置,最后运行相应的/etc/rcX.d/中的脚本 6,/etc/rcX.d/中的脚本按事先设定的优先级依次启动,直至最后给出登录画面(启动X服务器和GDM) 理解了这些,手动配置开机服务的启动与否就很简单了。Ubutnu默认的启动级别是2,不想启动的程序,只要把相应的符号链接从/etc/rc2.d/中删去即可。
Ident: f8ff5f83c529a9029475a8f10ea7b716 |
昨天 23:20:45
|
|
工具箱
|
||
回覆: 請問如何設定一段時間自動登出? |
|||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
會員三級
![]()
註冊日期:
2008/5/14 10:48 來自 台北縣三芝鄉
所屬群組:
已註冊使用者 等級: 15
HP : 0 / 359
![]() |
Timor 寫到: OK,有空就來試試timekpr,謝謝您的介紹。
Ident: 08e0e2606391c5ccb0d42b2285fba6e7 |
昨天 23:08:27
|
||||||||||
|
_________________
處理器:Intel Q9300 主機板:GIGABYTE GA-EP35-DS3 記憶體:A-DATA PC-DDR2 800 2GB*2 硬 碟:WD5000AAKS 光碟機:PIONEER DVR-213LS 顯示卡:MSI NX8500GT-TD512E 顯示器:CHIMEI CMV 221A 鍵&鼠:Logitech EX110 系 統:Ubuntu 8.10 & 9.04 AMD64 Windows XP SP3 Windows Vista SP2 ------------------------------------------------------------ 玩Ubuntu真的需要有個電腦功力不錯的朋友陪在您身旁。 不然只好上網、翻書......看有字天書囉!跨故馬西哩椰啦。 |
|||||||||||
工具箱
|
|||||||||||
|
自動啟動
|
回覆: 如何在tty6中使用VirtualBox掛載一個os並可使用? |
|
|---|---|---|
|
Anon:自動啟動
|
訪客 寫到:使開機程序腳本兩路(多路)並行: 1. 可以讓雙核心以上的電腦兩路或多路並行,充分運用多核心處理器所帶來的效能提升,並減少每次開機的時間。 2. 用gedit開啟相關的設定檔:(開啟終端機貼上以下指令) gksu gedit /etc/init.d/rc
Ident: f8ff5f83c529a9029475a8f10ea7b716 |
昨天 23:01:33
|
|
工具箱
|
||
|
訪客
|
回覆: 如何在tty6中使用VirtualBox掛載一個os並可使用? |
|
|---|---|---|
|
Anon:訪客
|
Ubuntu可以有兩個、四個或是更多桌面,只要按螢幕右下角就可以切換了。不過,這裡指的是同時有兩個或多個使用者登入不同的桌面系統。Ubuntu提供了User Switcher應用程式,並已整合在螢幕右上角的關機圖示,Ubuntu Power Icon可以用來登出、切換使用者、關機。乍看之下十分方便,若是有快捷鍵豈不是更好。
首先當然是增加一個使用者,先按Ctrl+Alt+F1進入虛擬平臺(終端機不適用),以新使用者登入,然後鍵入 $ startx -- :1 系統會為新的使用者開啟一個新的圖形介面桌面。要切換回原來使用者的桌面,則按Ctrl+Alt+F7;要再切換回新的使用者,則按Ctrl+Alt+F9。 如果要增加第三個使用者,則回到虛擬平臺,以第三個使用者登入,然後鍵入 $ startx -- :2 系統會為第三個使用者再開啟一個新的圖形介面桌面。切換至原來使用者和第二個使用者的方法同上,切換至第三個使用者的快捷鍵為Ctrl+Alt+F10。
Ident: f8ff5f83c529a9029475a8f10ea7b716 |
昨天 22:40:36
|
|
工具箱
|
||
回覆: 關於系統選擇畫面 |
|||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
版主
![]()
註冊日期:
2008/5/13 23:12 來自 臺灣民國高雄縣
所屬群組:
已註冊使用者 討論區管理群 等級: 11
HP : 0 / 268
![]() |
這個問題之前就有人問過嚕!該討論串也已經被收錄近本論壇的精華區了,敬請參考下面這個連結:
http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?topic_id=16948&forum=2
Ident: 4761cdcb98ebf42dfefd3bee7d9cc406 |
昨天 22:39:23
|
||||||||||
|
_________________
The owl of Minerva spreads its wings only with the falling of the dusk. --- G.W.F. Hegel (1770 - 1831) |
|||||||||||
工具箱
|
|||||||||||
回覆: [轉貼] Avidemux 與 MKVtoolnix 簡易入門 |
|||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
會員一級
![]()
註冊日期:
3/9 17:23:57 所屬群組:
已註冊使用者 等級: 1
HP : 1 / 2
![]() |
我是用Qt Creater !!
之前有用過部分功能~ 是否可以貼連結給我~
Ident: c279c619d109c40a8e6bd1ad79b75e27 |
昨天 22:36:57
|
||||||||||
工具箱
|
|||||||||||
回覆: why i cant use lazy script in Ubuntu 9.10?? |
|||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
會員一級
![]()
註冊日期:
昨天 22:32:01 所屬群組:
已註冊使用者 等級: 1
HP : 0 / 0
![]() |
You must change the language to Chinese (TW) ...
Ident: cda832985dfee8a67119ff39f3052f93 |
昨天 22:33:03
|
||||||||||
工具箱
|
|||||||||||

工具箱









