1
本文首发于:行者AI

Linux 在设计之初,就是基于 Intel x86 系列CPU架构计算机的,它是一个基于POSIX的多用户、多任务并且支持多线程和多 CPU 的操作系统,它是由世界各地成千上万的程序员设计和开发实现的,当初开发Linux系统的目的就是建立不受任何商业化软件版权制约的、全世界都能自由使用的类 Unix 操作系统兼容产品。

1. Linux 的那些往事

Linux 内核最初是由李纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版 UNIX 操作系统 Minix 太难用了,于是决定自己开发一个操作系统。第 1 版本于 1991 年 9 月发布,当时仅有 10000 行代码。

李纳斯•托瓦兹没有保留 Linux 源代码的版权,公开了代码,并邀请他人一起完善 Linux。与 Windows 及其他有专利权的操作系统不同,Linux 开放源代码,任何人都可以免费使用它。

据估计,现在只有 2% 的 Linux 核心代码是由李纳斯•托瓦兹自己编写的,虽然他仍然拥有 Linux 内核(操作系统的核心部分),并且保留了选择新代码和需要合并的新方法的最终裁定权。现在大家所使用的 Linux,我更倾向于说是由李纳斯•托瓦兹和后来陆续加入的众多 Linux 好者共同开发完成的。

李纳斯•托瓦兹无疑是这个世界上最伟大的程序员之一,何况,他还搞出了全世界最大的程序员交友社区 GitHub (开源代码库及版本控制系统)。

关于 Linux Logo 的由来是一个很有意思的话题,它是一只企鹅。

为什么选择企鹅,而不是选择狮子、老虎或者小白兔?有人说因为李纳斯•托瓦兹是芬兰人,所以选择企鹅,有人说因为其他动物图案都被用光了,李纳斯•托瓦兹只好选择企鹅。

我更愿意相信以下说法,企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于世界上的任何国家,任何国家都无权将南极洲纳入其版图。Linux 选择企鹅图案作为 Logo,其含义是:开放源代码的 Linux 为全人类共同所有,任何公司无权将其私有。

2. 常用的Linux命令

下面将会向大家分享一些会经常用到的Shell命令

(1)cd -更改文件目录命令

# 切换到主目录
cd
# 切换到主目录
cd ~
# 切换到目录/tmp
cd /tmp
# 切换到当前目录的dir目录
cd dir
# 切换到根目录
cd /
# 切换到上一级目录
cd ..
# 切换到二级目录
cd ../..
# 切换到主目录,例如是root用户,则切换到/root下
 cd ~

(2) ls -展示当前目录下文件命令

# 显示当前目录文件
ls
# 给出当前目录下所有文件的一个长列表,包括以句点开头的“隐藏”文件
ls -la
# 列出当前目录下以字母a开头的所有文件
ls a*
# 给出当前目录下以.doc结尾的所有文件
ls -l *.doc

(3)pwd -查看当前所在路径

# 查看自己当前所在路径
pwd

(4)cp -文件复制命令

使用 cp 命令需要指定文件夹或进入需要操作的文件夹下进行操作

# 把文件a复制为新文件a.apk
cp a a.apk
# 把文件afile从当前目录复制到/home/bible/目录下
cp afile /home/bible/
# 把当前目录下的所有未隐藏文件复制到/tmp/目录下
cp * /tmp 
# 递归性地把当前目录下的docs目录复制为新目录docs.bak,保持文件属性,并复制所有的文件,包括以句点开头的隐藏文件。为了方便起见,-a选项包含-R选项
cp -a docs docs.bak
# 若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件
cp -r 

(5)find -查找文件命令

# 在当前目录中查找rpm包
find .-name *.rpm
# 在当前目录及其子目录中查找文件名包含page的文件
find .|grep page
# 在系统的任何地方查找文件名包含traceroute的文件
locate traceroute

(6)grep -搜索文件内容命令

# 在文件exports中查找包含bible的所有行
grep bible /etc/exports
# 在WEB服务器日志文件access.log的后100行中查找包含“404”的行
tail -100 /var/log/apache/access.log|grep 404
# 在WEB服务器日志文件access.log的后100行中,查找没有被google访问的行
tail -100 /var/log/apache/access.log|grep -v googlebot
# 在主apache配置文件中,查找所有非注释行
grep -v ^# /etc/apache2/httpd.conf

(7)mkdir -新建目录命令

# 在当前目录中建立名为photos的目录
mkdir photos
# 在当前目录下建立指定的嵌套子目录
mkdir -p this/that/theother

(8)touch -创建一个空的文件

# 创建一个空文件,文件名为aaa.txt
touch aaa.txt

(9)rm -删除文件命令

# 删除文件a
rm a
# 删除当前目录下的所有文件(未隐藏文件)。rm命令不删除目录,除非也指定了-r(递归)参数。
rm *
# 删除domed目录以及它所包含的所有内容
rm -rf domed
# 删除当前目录下所有以字母a开头的文件,并且在每次删除时,提示用户进行确认
rm -i a*

(10)vi -编辑文件

# 用vi编辑文件/etc/bubby.txt 
vi /etc/bubby.txt
# 用vim编辑文件/etc/bubby.txt 
vim /etc/bubby.txt
# 快捷操作: 
    切换窗口:alt+1,alt+2 
    全屏:     alt+回车 
# 将vim挂起(暂停):ctrl+z,暂停后可进行其他shell操作,完了之后可通过 fg 命令切换回vim界面继续编辑 
    :MR 查看历史文件记录(注意:MR大写) 
    :sp 横向切换界面窗口 
    :vsp 纵向切换界面窗口 方便多文件对照编码 emacs /etc/bubby.txt 用emacs编辑文件/etc/bubby.txt 

(11)date- 系统日期设定

# 设置系统时期为2006年5月20日6点整。
date -s “060520 06:00:00″

(12)reboot,shutdown -关闭和重启计算机

# 重新启动计算机
reboot
# 重新启动计算机,停止服务后重新启动计算机
shutdown -r now
# 关闭计算机,停止服务后再关闭系统
shutdown -h now
# 关闭计算机
halt
# 一般用shutdown -r now,在重启系统时,关闭相关服务,shutdown -h now也是如此。

(13)df - 显示磁盘空间使用情况

# 显示指定文件所在分区的磁盘使用情况
df /etc/dhcp
# 显示文件类型为ext4的磁盘使用情况
df -t ext4

(14)gzip -压缩和解压文件

# 把当前目录下的每个文件压缩成.gz文件
gzip *
# 把上例中每个压缩的文件解压,并列出详细的信息
gzip -dv *
# 递归地解压目录
gzip -dr rancher.gz

(15)zip -压缩文件

# 将/home/html/这个目录下所有文件和文件夹打包为当前目录下的html.zip
zip -q -r html.zip /home/html
# 压缩文件cp.zip中删除文件a.c
zip -dv cp.zip a.c
# 把/home目录下面的mydata目录压缩为mydata.zip
zip -r mydata.zip mydata
# 把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip
zip -r abc123.zip abc 123.txt
# 将logs目录打包成log.zip
zip -r log.zip ./logs

3. 结语

在过去的几十年里,Linux系统主要被应用于服务器端、嵌入式开发和PC桌面3大领域,其中服务器端领域是重中之重。例如,我们熟知的大型、超大型互联网企业(百度、腾讯、Sina、阿里等)都在使用Linux系统作为其服务器端的程序运行平台,全球及国内排名前1000的 90%以上的网站使用的主流系统都是Linux系统。而我们在测试工作中也或多或少的会接触到一些Linux命令,熟练的使用Linux命令可以让我们在使用windows系统的dos命令时更加熟练。


行者AI
48 声望8 粉丝

行者AI(成都潜在人工智能科技有限公司)专注于人工智能在游戏领域的研究和应用,凭借自研算法,推出游戏AI、智能内容审核、数据平台等产品服务。