学习一门新的编程语言是在你的职业生涯中继续前进的好方法,但是应该学习哪一门呢?

如果你想要开始你的编程生涯或继续前进,那么学习一门新语言是一个聪明的主意。但是,大量活跃使用的语言引发了一个问题:哪种编程语言是最好的?要回答这个问题,让我们从一个简单的问题开始:你想做什么样的程序?

如果你想在客户端进行网络编程,那么特定语言 HTML、CSS 和 JavaScript(看似无穷无尽的方言之一)是必须要学习的。

如果你想在服务器端进行 Web 编程,那么选择包括常见的通用语言:C++、Golang、Java、C#、 Node.js、Perl、Python、Ruby 等等。当然,服务器程序与数据存储(例如关系数据库和其他数据库)打交道,这意味着 SQL 等查询语言可能会发挥作用。

如果你正在为移动设备编写原生应用程序,那么了解目标平台非常重要。对于 Apple 设备,Swift 已经取代 Objective C 成为首选语言。对于 Android 设备,Java(带有专用库和工具集)仍然是主要语言。有一些特殊语言,如与 C# 一起使用的 Xamarin,可以为 Apple、Android 和 Windows 设备生成特定于平台的代码。

下载地址

Files:

Shell 的18条常用命令整理

Date 2019-03-28
File Size 184.66 KB
Download 715

ssh into a particular directory

这个简短的教程描述了如何直接 SSH 登录到远程 Linux 系统的特定目录。而且不仅是 SSH 登录到特定目录,你还可以在连接到 SSH 服务器后立即运行任何命令。

你是否遇到过需要 SSH 登录到远程服务器并立即 cd 到一个目录来继续交互式作业?你找对地方了!这个简短的教程描述了如何直接 SSH 登录到远程 Linux 系统的特定目录。而且不仅是 SSH 登录到特定目录,你还可以在连接到 SSH 服务器后立即运行任何命令。这些没有你想的那么难。

SSH 登录到远程系统的特定目录

在我知道这个方法之前,我通常首先使用以下命令 SSH 登录到远程系统:

$ ssh user@remote-system

然后如下 cd 进入某个目录:

$ cd

然而,你不需要使用两个单独的命令。你可以用一条命令组合并简化这个任务。

看看下面的例子。

$ ssh -t 该 Email 地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。 'cd /home/sk/ostechnix ; bash'

上面的命令将通过 SSH 连接到远程系统 (192.168.225.22) 并立即进入名为 /home/sk/ostechnix/ 的目录,并停留在提示符中。

这里,-t 标志用于强制分配伪终端,这是一个必要的交互式 shell。

下载地址

如何在 Linux 中检查密码的复杂性强度和评分

Date 2019-03-19
File Size 124.17 KB
Download 474

使用急救盘组进行维护

急救盘组(也称为 boot/root 盘组),是系统管理员必不可少的工具。用它可以独立地启动和运行一个完整的 Linux 系统。实际上,急救盘组中的第 2 张盘上就有一个完整的 Linux 系统,包括 root 文件系统;而第 1 张盘则存放了可启动的内核。

使用急救盘组维护系统很简单。只需用这两张盘启动系统后,进入急救模式,这时使用的是 root 账户。为了能访问硬盘上的文件,需要手工安装硬盘文件系统。例如,用下面的命令可在 / mnt 目录中安装 /dev/hda2 盘上的 ext2fs 类型的 Linux 文件系统:

# monut -t ext2/dev/hda2/mnt

注:现在根目录是急救盘上的根目录。为了访问硬盘文件系统中的文件,必须先把它安装到某个目录下。这样,如果将硬盘上文件系统安装在 / mmt 目录下,则硬盘上原来的 / etc/passwd 文件的路径就是 /mnt/etc/passwd。

文件系统被破坏时的处理方法

当文件系统被破坏时,如果使用的是 ext2fs 类型的文件系统,就可从软盘运 e2fsck 命令来修正文件系统中被损坏的数据。对于其他类型的文件系统,可以使用相应的 fsck 命令。

当从软盘上检查文件系统时,最好不要 mount 安装。

注:文件系统被破坏的常见原因是超级块被损坏,超级块是文件系统的 “头部”。它包含文件系统的状态、尺寸和空闲磁盘块等信息。如果损坏了一个文件系统的超级块(例如不小心直接将数据写到了文件系统的超级块分区中),那么系统可能会完全不识别该文件系统,这样也就不能安装它了,即使采用 e2fsck 命令也不能处理这个问题。

不过,ext2fs 类型的文件系统将超级块的内容进行了备份,并存放于驱动程序的块组(block group)边界。可以用如下的命令通知 e2fsck 使用超级块的备份

# e2fsck -b 8193

是指文件系统所在的分区,-b 8193 选项用于显示使用存放在文件系统中的 8193 块的超级块的备份数据。

恢复丢失的文件
如果不小心删除了重要的文件,那么没有办法直接恢复。但是还可以将相应的文件从急救盘复制到硬盘上。例如,如果删除了文件 / bin/login,此时系统无法正常进到登录界面,可以用急救盘组启动系统,将硬盘文件系统安装到 / mnt 目录下,然后使用下述命令:

#cp -a /bin/login /mnt/bin

“-a” 选项用于告诉 cp 在拷贝时保持文件的访问权限。当然如果被删除的基本文件不在 “急救盘组” 中, 也就不能用这种方法了。如果以前做过系统备份的话,那么也可以用以前的备份来恢复。

函数库破坏时的处理方法

如果不小心将系统函数库文件破坏了,或者破坏了 / lib 目录下符号链接,那么将导致依赖这些库的命令无法执行。最简单的解决办法是用急救盘组启动系统, 在 / mnt 目录中安装硬盘文件系统,然后修复 / mnt/lib 目录下的库。

无法用 root 账号登录系统

由于系统管理员的疏忽,或者由于系统受到黑客的入侵, 系统管理员可能无法用 root 帐号登录系统。

对于第 1 种情况,可能是系统管理员忘记了 root 密码,用急救盘组就可以解决问题。

对于第 2 种情况,由于很可能是密码被黑客修改了,因此系统管理员无法进入系统,也就是说,Linux 系统完全失去了控制,因此应尽快重新获得系统的控制权。在取得 root 权限后,还应检查系统被破坏的情况,以防被黑客再次入侵。

需要做的最主要的工作就是重新设置 root 的密码,获得 Linux 操作系统的控制权。首先用急救盘组启动系统,然后将硬盘的文件系统安装到 / mnt 目录下,编辑 / mnt/etc/passwd 文件,将其对应于 root 账户的一行加密口令域置空,如下所示:

root::0:0:root:/root:bin/bash

注:如果系统使用 shadow 工具,就需要对文件 / etc/shadow 进行上述的操作,使 root 登录系统不需要口令。 这样,root 账户就没有口令了。当重新从硬盘启动 Linux 系统时,就可以用 root 账户登录(系统不会要求输入密码)。进入系统后,再用命令 passwd 设置新的口令。

Linux 系统不能启动

一般来说,如果系统管理员不能正常进入系统,就需要考虑使用急救盘组进入急救模式排除系统的故障。但在没有制作急救盘组的情况下,Linux 系统不能启动,该怎么办?

在个人计算机使用 Linux 系统时,通常都是 Linux 和 MS Windows 9x 或 MS Windows NT 并存的。

由于重新安装其他的操作系统,经常会导致原有的 Linux 不能启动。这主要是因为,这些操作系统默认为计算机中没有其他的操作系统,因而改写了硬盘的主引导记录(MBR),冲掉了 Linux 的 LILO 系统引导程序。

如果有急救盘组,那么很简单,用第一张启动盘启动硬盘的 Linux 系统,重新运行 LILO 命令,就可以将 LILO 系统引导程序写回硬盘的主引导记录。再次开机即可。

如果没有系统启动盘,怎样恢复硬盘上的 Linux 呢?在这种情况下,如果知道 Linux 在硬盘上的确切安装分区,且有 loadlin 程序,就可以重新返回 Linux。loadlin 程序是 DOS 下的程序,运行它可以从 DOS 下直接启动 Linux,快速进入 Linux 环境。在 Red Hat Linux 6.0 光盘的 dosutil / 目录下就有这个程序。除此之外,还需要一个 Linux 启动内核的映像文件。在 Red H at linux 6.0 光盘的 images / 目录下有这个文件——vmlinuz。

例如,在 Windows 98 系统下面,进入 DOS 的单用户模式,然后运行下述的 loadlin 命令,即可重新进入 Linux 系统:

loadlin vmlinuz root=/dev/hda8

/dev/hda8 是 Linux 的 root 文件系统所在的硬盘分区位置。命令执行后,就引导 Linux 系统。用 root 登录后,运行 LILO 命令,则重新将 LILO 装入 MBR,回到以前多操作系统并存使用的状态。