读文网>电脑>操作系统>Linux教程

怎么提高Linux管理效率(通用两篇)

管理员想要提高linux管理效率是要遵循一些管理技巧的,这里读文网小编简单介绍有关Linux管理效率的几个技巧。相信他们会对管理员效率有提高。

卸载无响应的 DVD 驱动器

网络新手的经历:按下服务器(运行基于 Redmond 的操作系统)DVD 驱动器上的 Eject 按钮时,它会立即弹出。他然后抱怨说,在大多数企业 Linux 服务器中,如果在那个目录中运行某个进程,弹出就不会发生。作为一名长期的 Linux 管理员,我会重启机器。如果我不清楚正在运行什么,以及为何不释放 DVD 驱动器,我则会弹出磁盘。但这样效率很低。

下面介绍如何找到保持 DVD 驱动器的进程,并轻松弹出 DVD 驱动器:首先进行模拟。在 DVD 驱动器中放入磁盘,打开一个终端,装载 DVD 驱动器:

以下是代码片段:

# mount /media/cdrom

# cd /media/cdrom

# while [ 1 ]; do echo "All your drives are belong to us!"; sleep 30; done

现在打开第二个终端并试着弹出 DVD 驱动器:

以下是代码片段:

# eject

将得到以下消息:

umount: /media/cdrom: device is busy

在释放该设备之前,让我们找出谁在使用它。

以下是代码片段:

# fuser /media/cdrom

进程正在运行,无法弹出磁盘其实是我们的错误。

现在,如果您是根用户,可以随意终止进程:

以下是代码片段:

# fuser -k /media/cdrom

现在终于可以卸载驱动器了:

以下是代码片段:

# eject

fuser 很正常。

技巧 2:恢复出现问题的屏幕

尝试以下操作:

以下是代码片段:

# cat /bin/cat

注意!终端就想垃圾一样。输入的所有内容非常零乱。那么该怎么做呢?

输入 reset。但是,输入 reset 与输入 reboot 或 shutdown 太接近了。吓得手心冒汗了吧 — 特别是在生产机器上执行这个操作时。

放心吧,在进行此操作时,机器不会重启。继续操作:

以下是代码片段:

# reset

现在屏幕恢复正常了。这比关闭窗口后再次登陆好多了,特别是必须经过 5 台机器和SSH 才能到达这台机器时。

技巧 3:屏幕协作

来自产品工程的高级维护用户 David 打电话说:“为什么我不能在您部署的这些新机器上编译 supercode.c”。

您会问他:“您运行的是什么机器?”

David 答道:“ Posh”。(这个虚够的公司将它的 5 台生产服务器以纪念 Spice Girls 的方式命名)。这下您可以大显身手了,另一台机器由 David 操作:

以下是代码片段:

# su - david

转到 posh:

以下是代码片段:

# ssh posh

到达之后,运行以下代码:

以下是代码片段:

# screen -S foo

然后呼叫 David:

“David,在终端运行命令# screen -x foo”。

这使您和 David 的会话在 Linux shell 中联接在一起。您可以输入,他也可以输入,但彼此可以看到对方所做的事情。这避免了进入其他层次,而且双方都有相同的控制权。这样做的好处是 David 可以观察到您的故障诊断技巧,并能准确了解如何解决问题。

最后大家都能看到问题所在:David 的编译脚本对一个不在此新服务器上的旧目录进行了硬编码。将它装载后再次编译即可解决问题,然后 David 继续工作。您则可以继续之前的娱乐活动。

关于此技巧需要注意的一点是,双方需要以同一用户登录。screen 命令还可以:实现多个窗口和拆分屏幕。请阅读手册页获取更多相关信息。

对于 screen 会话,我还有最后一个技巧。要从中分离并让它打开,请输入 Ctrl-A D (即按住 Ctrl 键并点击 A 键。然后按 D 键)。

然后通过再次运行 screen -x foo 命令可以重新拼接起来。

作为系统管理员的Linux管理效率在使用这些技巧后肯定会有一个较大的提高。

怎么提高Linux管理效率

可以把任何命令或命令的组合指定给键盘上的某个键,可以是Alt+[A-Z],

Ctrl-[A-Z], Alt+Shift+[A-Z], F1-F12, Ctrl-F[1-12], Alt-F[1-12], Alt+Shift+F[1-12],还有更不可思议的是甚至还可以为功能键加上“参数”,这样你按下那个键的时候,它会等待你输入相应的参数,并根据不同的参数运行不同的命令。

当然,有一些热键会被终端所捕获,如常见的Ctrl-D/C/Q/Z等,不过没关系,可用的热键还多着呢!

定义热键的配置文件为:/etc/inputrc 或 ~/.inputrc,定义热键的格式如下:

"<热键对应的ASCII字符>":"<执行的命令>"

其中热键对应的ASCII字符可以通过 "先按Ctrl-V, 然后按热键" 的方式来输入, 如Ctrl-G对应的字符为^G, Alt-P对应的字符为^[p, Ctrl-Alt-H对应的字符为^[^H.

可以用C来代替Ctrl,M来代替Alt, M-C来代替Alt-Ctrl, 如C-M = Ctrl-M, M-C-H = Alt-Ctrl-M. 另外还可以用e代表^[.

先来看一些基本的热键定义,(这里热键里的字母不区分大小写):

"^[-":"su -C-M" # 按Alt+- 执行su - 命令,末尾C-M表示输入完定义的命令后回车,也可以更简洁地用一个来表示.

"M-C-G":"gaim & &>/dev/null && disownC-M"

# 按Ctrl-Alt-g在当前shell打开gaim, 并脱离该shell独立运行,即:即使你退出了该shell, gaim也不会关闭

其他一些组合键可以根据自己的需要配置,偶就不多说了.

大家也许会觉得这样定义热键太乱了,而且很难记住,还有一定的限制。这个问题在后面会得到解决。

一般情况下,我们可以使用上下方向键来查找命令历史列表,以此重复输入命令,但是方向键离主键盘区太远,如>果频繁使用的话,会耽误不少时间,而且挪动右手时也不太方便,有没有什么办法把方向键的功能转移到我们经常>敲命令的地方呢? 如使用Alt+J = Down Arrow 向下查找,Alt+K=Up Arrow 向下查找

通过定义热键可以做到这点:

"eh":"^[OD" # move left

# Alt-H 向左移一个字符, 相当于Left Arrowgh, 这里^[OD即向上方向键的ASCII字符,输入方式与前面提到的类似

"el":"^[OC" # move right

# Alt-L 向右移一个字符,相当于Right Arrow

"ej":"^[OB" # move up

# Alt-J 向下移动,相当于Up Arrow

"ek":"^[OA" # move down

# Alt-K 向上移动,相当于Down Arrow

"ei":"^?" # left earse one character

# Alt-I 向左删除一个字符,相当于BackSPAce

"eo":delete-char # right earse one character

# Alt-O 向右删除一个字符,相当于Delete

"en":backward-kill-word # left kill one word

# Alt-N 向左删除一个单词

"em":kill-word # right kill one word

# Alt-M 向右删除一个单词

"ea":"^[n^[n^[n^[n^[n^[n^[n" # kill to the head

# Alt-A 删除当前位置到开头,也就是多Alt-N几次(A--> ahead)

"ee":"^[m^[m^[m^[m^[m^[m^[m" # kill to the head

# Alt-E 删除当前位置到末尾,也就是多Alt-M几次(E--> end)

"ep": insert-last-argumem"

# Alt-P 插入上一个命令最后一个参数 (P--> Paste)

"ew": forward-word

# 系统默认Alt-F (forward)跳到当前单词词尾,如果已在词尾,则跳到下一个单词(右边一个单词)词尾

"eq": backward-word

# 系统默认Alt-B (backward)跳到当前单词词首,如果已在词首,则跳到上一个单词(左边一个单词)词首

发觉F和B键离得太远,不方便,偶分别改作Alt-Q, Alt-W, 但是Alt-F/B照样可以用

这样输入命令的时候几乎可以不用离开主键盘区,而且移动光标,删除字符,删除单词,上下历史命令查找都集中>在一块,比以前方便多了。 不过开始可能有些不习惯,就跟使用vi一样,但是多练几次就熟练了。

Linux下绝大部分服务的配置是基于配置文件的,一般说来,更改了某个服务的配置文件,要使其立即生效,还需重启该服务直接的或依附的守护进程才行。难道你就不觉得“每次 vi /etc/xxx.conf 完后又 service xxx restart/reload 或 killall -HUP xxx”这样做很繁琐么?如果要配置的服务较多而且要不停地调试呢?况且我们平常使用Linux时难免会不时地终止或启动某个服务进程,输入命令的次数也不少。如果为每个服务都指定一个热键的话,似乎不大可能。如果我们赋予一个热键为一个基本键,而相应的服务为其“参数”,那又如何呢?

举个例子,赋予Alt-S (S-->Start)为启动服务的基本键,服务名的前2个字符为启动“参数”,那么就可以像下面那样随意启动某个服务了:

"essm":"service smb start"

# es=Alt-s, sm=smb,

# 即:按下Alt-s后紧跟着再输入sm(这时输入的sm并不会显示在终端上),就可以启动samba的服务进程了,不必担心按下键与输入“参数”间的时间延迟问题,你按下Alt-s,然后去外面兜一圈回来,再接着输入sm,照样可以。

"esht":"service httpd start" # ht=httpd,启动Apache服务

类似地,我们赋予

Alt-D(D--> shutDown) 为停止服务的基本键

Alt-R(R--> Restart) 为重启服务的基本键

Alt-T(T--> Status) 为查看服务状态的基本键

Alt-C(C--> Configure) 为打开服务对应的主配置文件的基本键

如:"ecnf":"vi /etc/exports" # Alt-c+nf 打开NFS的配置文件

"eCSm":"vi /etc/samba/smb.conf" # Alt-c+sm 打开smb的配置文件

如果某个服务(如ssh)有2个配置文件,可以在其后再加一个数字,如:

"ecssh1":"vi /etc/ssh/sshd_config" # 打开sshd服务端配置文件

"ecssh2":"vi /etc/ssh/ssh_config" # 打开sshd客户端配置文件

如果要执行某个应用程序呢?可以用Alt-x做基本键(x--> eXeccute) 如:

"exga":"gaim & &>/dev/null && disown && clean "

"exxm":"xmms & &>/dev/null && disown && clean "

"exvm":"vmware & &>/dev/null && disown && clean " "exna":"nautilus & &>/dev/null && disown && clean "

等等....

到现在为止我们只要按1个组合键+2个字符就可以实现下面众多的功能:

1. 执行指定的应用程序

2. 启动|重启|关闭|指定的服务进程

3. 查看指定服务的状态

4. 打开指定服务的指定配置文件

相关热搜

相关文章

【Linux教程】热点

【Linux教程】最新