您的位置:首页 > 运维架构 > Linux

些基础的 Linux 问题与讨论:

2014-02-15 16:47 417 查看
三、简易 KDE 的使用( X-Window)

若以 X-Window 为预设的登入方式,那请问如何进入 Virtual console 呢?

可以按下 [Ctrl] + [Alt] + [F1] ~ [F6] 进入 Virtual console ( 共六个 );

而按下 [Ctrl] + [Alt] + [F8] 可回到 X-Window 的 desktop 中!

如何修改进入 Linux 时候的 run-level ?又 run-level 0, 1, 3, 5 各代表什么意思?

修改 /etc/inittab 里头的设定即可;
0:重新开机(如 init 0 );

1:单人维护模式,没有网络功能;

3:纯文字接口登入,多人多任务环境;

5:X-Window 登入模式,多人多任务模式。

XFree86 在 X-Window 中的角色为何?

基本角色是控制显示相关硬件的核心角色,也可以说程序 X-Window 的 Server ,此外, KDE 这个 Window management 则是 X-Window 的 Client 呦!因此, XFree86 若死掉了,那么 KDE 就无法被启动!

XFree86 的主要设定档在哪里?

就是在 /etc/X11/XF86Config-4 这个档案!

KDE 预设提供多少个 Virtual desktops ?

预设是提供四个,就是在进入 KDE 之后,最下方的 bar 上面有 1,2,3,4 那个字样的那个咚咚!

四、在线求助 ( Help )

在 Linux 系统中,安装的套件 (RPM安装) 预设的文件数据放在那个目录底下?

/usr/share/doc

查看 Linux 系统的在线求助可以使用什么指令?

man command

info command

使用 man 来查询在线求助的时候,若要查询类似参数档(如/etc/passwd)需如何?

man 5 passwd 或是例如 syslog.conf 则: man 5 syslog.conf 那个 5 即是大部分的 config 档案的查询。

使用 man 查询 command 的所有相关指令时,需要下什么参数?

man –k command 例如 man –k passwd

man page 的 man path 变量,记录在那个档案中呢?!

/etc/man.conf

五、vi 的使用

在 linux 底下最常使用的文书编辑器为 vi ,请问如何进入编辑模式?

在一般模式底下输入: i, I, a, A 为在本行当中输入新字符;(出现 –Insert- )

在一般模式当中输入: o, O 为在一个新的一行输入新字符;
在一般模式当中输入: r, R 为取代字符!(左下角出现 –Replace-)

如何由编辑模式跳回一般模式?

[Esc]

若上下左右键无法使用时,请问如何在一般模式移动光标?

h, j, k, l

若 [pagedown] [ pageup] 在一般模式无法使用时,如何往前或往后翻一页?

[Ctrl] + [f]

[Ctrl] +

如何到本档案的最后一行、第一行;本行的第一个字符、最后一个字符?

G, 1G, 0, $

如何删除一行、n行;如何删除一个字符?

dd, ndd, x 或 X (dG 及 d1G 分别表示删除到页首及页尾)

如何复制一行、n行并加以贴上?

yy, nyy, p 或 P

如何搜寻 string 这个字符串?

?string (往前搜寻)
/string (往后搜寻)

如何取代 word1 成为 word2,而若需要使用者确认机制,又该如何?

:1,$s/word1/word2/g 或
:1,$s/word1/word2/gc (需要使用者确认)

如何读取一个档案 filename 进来目前这个档案?

:r filename

如何另存新档成为 newfilename?

:w newfilename

如何存档、离开、存档后离开、强制存档后离开?

:w; :q: :wq; :wq!

如何设定与取消行号?

:set nu

:set nonu

[b]六、档案与目录管理


请问底下的目录与主要放置什么数据?

/etc/:几乎系统的所有设定档案均在此,尤其 passwd, shadow

/etc/rc.d/init.d:系统开机的时候加载服务的 scripts 的摆放地点

/boot:开机设定档,也是预设摆放核心 vmlinuz 的地方
/usr/bin, /bin:一般执行档摆放的地方
/usr/sbin, /sbin:系统管理员常用指令集
/dev:摆放所有系统装置档案的目录
/var/log:摆放系统登录档案的地方

『旧的』 Unix 系统与 Linux 系统的『文件名』最多可以容许几个字符?

14, 255

什么是绝对路径与相对路径,要由 /usr/share/doc 进入到 /usr/share/man 由相对路径与绝对路径的写法各为何?

绝对路径绝对由 / 开始写起,相对路径则非由 / 写起;
cd /usr/share/man ; cd ../man

在非为根目录的任何一个目录中,下达 ls –al 时,均会有『.』及『..』这两个目录,请问分别代表什么?

. :代表本目录
.. :代表上层目录

显示、变换目录的时候,使用什么指令?

ls, pwd 为显示; 变换目录用 cd

新增目录、移除目录移动目录与拷贝目录有什么指令可用?

新增: mkdir 目录,
移除: rmdir 目录(但是该目录内必须要已经清空了), rm –rf 目录,

移动: mv directory1 directory2
拷贝: cp –r directory1 directory2

如何查看一个档案的『内容』(不要使用 vi 的情况下)

cat, tac, more, less, head, tail, nl, od(查看二进制制)

什么是 hard link 与 soft link 的档案?有何不同?

Hard Links:在做成 hard link 档案时,系统会占用掉一个 inode ,由连结档案可发现其 link 字段多使用了一个 inode ,当源文件被删除的时候,该源文件的内容将继续保留在其它的 Hard Links 档案中;但所有 Link 占用的硬盘总量仅占一个档案的容量大小!(但 Hard link 不能连结不同 filesystem 的档案)

Soft Links:类似快捷方式,当原始档被删除,soft link 档案将找不到原始档了!

如何在 root 的家目录下建立一个 /bin 的连结快捷方式

ln –s /bin /root/bin

若有一个连结档为 testing 连结到 test1.sh ,请问 copy testing 到 /tmp 底下,『cp testing /tmp』则 /tmp/testing 这个档案会是:(1) 连结档,连结到 test1.sh ;(2) 一般档案,为内容与 test1.sh 相同?

答案为 (2)

当一个档案属性为 –rwxrwxrwt 则表示这个档案的意义为?

任何人皆可读取、可写入,但是不可删除该档案(或目录),除了 root 与档案或目录拥有者有权可以删除。

我需要将一个档案的属性改为 –rwxr-xr-- 请问该如何下达指令?

chmod 754 filename, chmod u=rwx,g=rx,o=r filename

在 /usr/bin/passwd 这个档案的属性为 –r-s--x--x 请问代表什么意思(s)

那个 s 代表为 SUID ,当使用者使用这个档案进行工作的时候,将会具有该档案拥有者的权限!

如何改出 –rwxr-sr-x 与 –rwxr-xr-t这个属性?

chmod 2755 filename, chmod 1755 filename

如何查看一个档案的类型 (type) 例如纯文字文件、执行文件与 setuid 档案等?

file filename

若一个使用者的 umask 为 033 ,请问他建立一个新的目录与档案时的预设属性为?

目录:744 ? -rwx-r--r--
档案:633 ? -rw--wx-wx

若我需要更改一个档案的拥有者与群组,该用什么指令?

chown, chgrp

如何将一个档案的修改日期改成目前的时间?

touch filename

如何搜寻一个档案?

which (仅用于指令搜寻), whereis, locate, fine

Linux 预设的档案系统为何?此外,常用的 Journalling 档案格式有哪些?

Ext2, Journalling 有 ext3 及 Reiserfs 等

less 跟 more 有什么不同?

less 可以翻页,但是 more 不行!

在比较两个档案的异同时,常使用的是 diff 与 cmp ,请教两者有何不同?

diff 为一行一行比较, cmp 为一个字符(character)一个字符比较

六.1、磁盘挂载与虚拟内存问题

我要如何查看 Linux 系统当中所有已经挂载的硬盘容量与 inodes ?

df –k, df –i,

我要如何查看目前所在目录的所有档案占用的硬盘空间,此外,如何仅输出结果?

du -k, du –i, du -s

如果扇区 /dev/hda3 有问题,偏偏他是被挂载上的,请问我要如何修理此一扇区?

umount /dev/hda3

fsck /dev/hda3

承上题,那么有问题的档案将被移动到那个目录下?

lost+found

试说明新增一个 partition 在 /dev/hdb 当中,且为 hdb5时,并挂载上 /disk2 ,需要哪些步骤?

fdisk /dev/hdb 按 n 新增,按 e 新增 extended ,再按 n 新增 logical

mke2fs –b 2048 /dev/hdb5
mkdir /disk2
mount –t ext2 /dev/hdb5 /disk2

如何新增加 64MB 的虚拟内存 swap ?

dd if=/dev/zero of=/tmp/swap bs=4k count=16384

mkswap /tmp/swap
swapon /tmp/swap

如果要设定一个新挂载上的扇区,令他可以在开机的时候被挂载上,应该编辑哪一个档案?

先 /etc/fstab
再 mount –a

简易说明 quota 的设置流程?

编辑 /etc/fstab, 加入 usrquota and/or grpquota

reboot
quotacheck –avug (会产生 aquota.user(group))

quotaon –aug
edquota –u username
edquota –g groupname
repquota –vu /dev/hd[a-d][1-16]

七、BASH SHELL

简单说明 bash shell 的功能特征:

命令记忆功能 ~/.bash_history
命令别名功能 alias
shell scripts 功能
命令与文件名称补全功能 <tab>
工作控制功能 jobs

在设定变量中,主要的规则为何?

变量与变量内容以等号来连结;
等号两边不能直接接空格符;
变量名称只能是英文字母与数字,但是数字不能是开头字符;
若有空格符可以使用双引号『 " 』或单引号『 ' 』来将变量内容结合起来,但须要特别留意,双引号内可以保有变量,但是单引号则仅为一般字符;

必要时需要以跳脱字符『 \ 』来将特殊符号(如 Enter, $, \, 空格符, ' 等)变成一般符号;

若该变量为扩增变量内容时,则需以双引号及 $变量名称如:『 "$PATH":/home』继续累加内容;

若该变量需要在其它子程序执行,则需要以 export 来使变量可以动作,如『export PATH』;

通常大写字符为系统预设变量,自行设定变量可以使用小写字符,方便判断(纯粹依照使用者兴趣与嗜好);

取消变量的方法为:『unset 变量名称』

显示环境变量与所有变量的指令为何?

env, set,

在环境变量当中,『使用者家目录、主机名称』的变量名称为:

HOME, HOSTNAME

如何让一个变量可以持续到下一个程序 (PID) 去?

export variable

在变量的设定当中,双引号与单引号有何不同?

双引号里面可以包含变量,单引号谨代表一般字符!

Command1 `command2` 这个指令代表什么意思?

在这一行当中, command2 会先执行,而输出的结果会给 command1 当作参数。

cd /lib/modules/`uname -r`/kernel 是最常使用的一例

在命令重导向当中, > 与 >> 有什么不同?

> 会将导向的 file 覆盖,

>> 则是增加!

若要将错误的输出导向『不见了』的装置,该如何是好?

command 2> /dev/null

在管线指令中,我要将 last 输出的结果显示 root 的『登入次数』, 如何做?

last | grep root | cut –d “ “ –f 1 | wc -l

如何设定一个变量名称为 name ,使其显示为『 VBird’s testing variable. 』?

name=VBird\’s\ testing\ variable.
name=”VBird’s testing variables.”
echo $name

请问 bash shell 的环境变量与自己的个人变量可以登入便设定的档案?

Open Linux:

/etc/profile, /etc/config.d/shells/bashrc, ~/.profile, ~/.bashrc,

Red Hat :

/etc/profile, ~/.bash_profile, ~/.bashrc,

如何查询曾经操作过的指令?如何执行第 26 个操作过的指令?上一个操作过的指令?

history
!26
!!

如何设定命令别名?使 lm 与 ls –al|more 功能相同

alias lm=’ls –al|more’

如何将 /bin 的所有信息输出到 /home/testing.dat 这个档案?

ls –al /bin 1> /home/testing.dat

在上一题中,若还要输出到屏幕上,要如何是好?

ls –al /bin | tee /home/testing.dat

执行 find ,并将正确的结果输出到 right 而错误结果输出到 error 当中?

find / -name test 1> right 2>error

如何在指令列模式中将 /root/.bashrc 的资料加在 /home/col/.bashrc 当中?

cat /root/.bashrc >> /home/col/.bashrc

不要显示执行的结果要如何是好?

command > /dev/null 2>$1

列出这个月曾经登入主机的使用者信息即可,不需要重复?

last | cut –d” “ –f1 | sort | uniq

万用字符当中, *, ?, [] 各代表什么意思?

* 代表 0 到无限多个字符;
? 代表一个任意字符;
[] 代表一个字符,这个字符在某一个限制范围内。

七.1、SHELL SCRIPTS

什么是 shell scripts ? scripts 有何功用?

简单的说, scripts 就是一个内部含有多个或复杂的 command 的纯文本文件;

scripts 可以进行 program 的功能,但速度上较 C 慢了点!

要撰写可以经由键盘输入的 scripts 时,常使用到的指令?

read variable

在 shell script 当中,在控制式中, && 与 || 代表什么意思?

分别代表『和(同时成立)』及『或(仅其一成立就成立)』的意思!

在使用循环的时候,常使用到的控制式为哪三个?

for, while, until

执行 scripts 的方法有哪两种?

使用 sh script 或
以 chmod 增加 scripts 的属性为可执行, chmod 777 script 并执行 scripts。

如何宣告一个变量成为整数型态?

declare -i variable

为何在 shell script 前面都要宣告 shell 呢?

宣告 shell 方能让 script 了解该内容需要以何种 shell 来执行!目前 Linux 通常宣告 /bin/bash 这个 shell ,然而若在非 shell 环境中,又没有宣告 shell 类型时,可能会造成 script 无法执行的情况。

在判断式中,如何判断一个档名是否存在?

if [ -e filename ] 若存在则回传值为真!

在执行一个 scripts 时,在 scripts 内的变量, $0, $1 代表什么?

$0 代表 scripts 的檔名;
$1 代表第一个 parameter,例如 /etc/rc.d/init.d/xinetd start 那个 start 的变数即为 $1

若要写一个既定的 parameter (如 start ),用哪一个判断式较简单?

可以使用 case …. Esac 的语法较为简单。

如何印出目前系统中的所有账号,并加以排序且输出到 /tmp/account 中?

cut -d ‘:’ -f 1 /etc/passwd | sort > /tmp/account

如何在不执行 scripts 的情况中 debug ?

sh -n scripts

八、基本账号管理

如何新增一个使用者 username,且该使用者没有家目录?

useradd -M username

Linux 使用者的账号、密码与群组的名称档案放在哪里?

/etc/passwd
/etc/shadow
/etc/group

建立新使用者的预设家目录内容在那个目录中?

/etc/skel

建立一个新使用者时,其使用到的相关档案有哪些?

/etc/default/useradd,
/etc/login.defs,
/etc/skel/
/etc/passwd,
/etc/shadow

root 的 UID 与 GID 各为何?

皆为 0

如何让一个使用者不能登入主机,但是可以收信?

将 /etc/passwd 最后一栏代表 shell 的名称改为 /bin/false

试说明一个使用者登入系统的流程?

登入:使用 /bin/login 程序,并输入 ID 与 passwd ;

确认密码:搜寻 /etc/passwd, /etc/shadow 确认密码!并取得使用者的相关讯息。

查核 pam 登入模块:这个需要视主机的设定而定!
取得并执行 shell :由 /etc/passwd 取得 shell 之后,并执行 shell ,以 bash 为例,将读入: /ete/profile ? ~/.bash_profile ( 或 .bash_login 或 .profile ) ? ~/.bashrc ? 注销的时候执行 ~/.bash_logout

在 /etc/shadow 当中的日期设定中,其数字代表的意义为何?

由 1970 年开始计算,故 1970 年 一月一日为 1 ,2002 年 1 月 1 日为11689

如何变更使用者的一些属性?

usermod, chfn, chsh, passwd

如何视察一个使用者 username 所拥有的群组呢?

groups username

试说明如何手动增加一个使用者 username 与群组 groupname?

先看看 /etc/skel 当中,预设要给 user 的家目录内容;
新增 group : groupadd groupname
新增 user :useradd -m -g groupname username

给予密码: passwd username

试说明 /etc/passwd 这个档案的内容与格式:

账号; 密码; UID; GID; 说明的内容; 家目录; SHELL

使用 id 这个指令时,可以显示什么讯息数据?

UID, GID 跟 GROUP

可以控制使用者使用主机资源的预设档案在哪里?

/etc/security/limits.conf

基本的压缩指令有哪些?

tar, gzip, compress

九、开机程序

试说明开机流程:

BIOS
MBR ( boot loader )
Loader ( lilo or grub, stage 1 and stage 2 )

Kernel loader ( /boot/vmlinuz )
init process ( 读取 /etc/inittab 取得 run-level )

开始执行 /etc/rc.d 内的 scripts
执行 /etc/modules.conf 内部的额外 kernel 模块
执行 /etc/rc.d/rc[1-6].d 的这些 run-level 内的 scripts !

执行 /bin/login 等待使用者登入!

开机时后的加载讯息可以看哪里?

dmesg

grep “kernel” /var/log/messages

改变 run-level 或关机的指令

shutdown,

halt,

reboot,

init or telinit

改变登入 Linux 时候预设的 run-level 要改那个档案?

/etc/inittab

十、程序与资源管理

如何查看目前的程序?

ps, top,

如何查看目前的内存使用状况?

free, top,

目前的工作如何丢到背景中?

[Ctrl] + z

如何取得目前背景中的工作,且将他拉回前景中?

jobs 及 fg %number

如何设定一个程序在开始执行时候的优先值?

nice –n [number] [command]

什么指令可以修改一个正在执行的程序之 nice 值?

top, renice

在例行性命令中,使用的两支 demane 是什么?

atd,

crond

使用 crontab 这个『指令』的时候,如何可以查看目前的工作与删除目前的工作?

编辑: crontab –e,

查看: crontab –l,

删除: crontab –r

常用的 kill 指令之 signal 当中, 1, 9, 15 代表什么?

1 重新读取一次 config file
9 强制删除此一执行程序
15 terminal结束的意思!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: