Linux笔记1

对于初学者来说,怎样选择Linux教程是挺困惑的事。视频教程大多只是讲片面的知识点,比较零散,大部头书籍很难啃,虽然书籍会将知识分类,可庞杂的知识体系往往令人望而生畏,遇到一个坎时很难跨过去。

尤为重要的是,初学者很难分辨哪些知识是常用的,哪些是只需要了解即可。而对于教程编写者来说,也很难做这样的区分,同样的知识点,对于不同应用人群,重要程度是不一样的。

我作为一个Linux新手,深知在学习过程中遇到的各种坑。新手总是希望能有一本大宝典,囊括了所有的技能,只需要跟着学,就能成为高手。

可,这种想法是不现实的。每一个高手的成长路径都不尽相同,高手并不是通过学习某些书籍而练成的,而是在不断解决问题中,累积经验,逐步构建了自己的知识体系。

因此,最好的教材,肯定是自己整理而成的。这也是我写《Linux笔记》系列的出发点。这个系列将持续更新,记录我在使用Linux过程中的各种问题。

单纯记录问题会显得很零散,故而借助《The Linux Command Line》作为知识主线,便于进行归档,所列举的知识点来源有多处,有些是自己实践过程中总结所得。

Linux

命令行概念

图形用户界面让简单的任务更容易完成, 而命令行界面使完成复杂的任务成为可能

一说到命令行,我们真正指的是 shell。shell 就是一个程序,它接受从键盘输入的命令, 然后把命令传递给操作系统去执行

快速切换目录

快捷键

运行结果

cd

更改工作目录到你的家目录。

cd -

更改工作目录到先前的工作目录。

cd ~user_name

更改工作目录到用户家目录。例如, cd ~bob 会更改工作目录到用户“bob”的家目录。

文件命名规则

  • 以 “.” 字符开头的文件名是隐藏文件
  • 文件名和命令名是大小写敏感的。文件名 “File1” 和 “file1” 是指两个不同的文件名
  • Linux 没有“文件扩展名”的概念,不像其它一些系统。可以用你喜欢的任何名字来给文件起名
  • 虽然 Linux 支持长文件名,文件名可能包含空格,标点符号,但标点符号仅限使用 “.”,“-”,下划线。最重要的是,不要在文件名中使用空格。如果你想表示词与 词间的空格,用下划线代替

基础命令

ls — 列出目录内容 file — 确定文件类型 less — 浏览文件内容

ls 命令选项

选项

长选项

描述

-a

--all

列出所有文件,甚至包括文件名以圆点开头的默认会被隐藏的隐藏文件。

-d

--directory

把这个选项与 -l 选项结合使用,可以看到所指定目录的详细信息,而不是目录中的内容。

-F

--classify

这个选项会在每个所列出的名字后面加上一个指示符。例如,如果名字是 目录名,则会加上一个'/'字符。

-h

--human-readable

当以长格式列出时,以人们可读的格式,而不是以字节数来显示文件的大小。

-l

以长格式显示结果。

-r

--reverse

以相反的顺序来显示结果。通常,ls 命令的输出结果按照字母升序排列。

-S

命令输出结果按照文件大小来排序。

-t

按照修改时间来排序。

分析长格式列表各字段含义

-rw-r--r-- 1 root root  358374 2007-04-03 11:05 ubuntu Sax.ogg

字段

含义

-rw-r--r--

对于文件的访问权限。第一个字符指明文件类型。其后三个字符是文件所有者的 访问权限

1

文件的硬链接数目

root

文件属主的用户名

root

文件所属用户组的名字

32059

以字节数表示的文件大小

2007-04-03 11:05

上次修改文件的时间和日期

oo-cd-cover.odf

文件名

file 确定文件类型

file filename

senlong@LAPTOP-JRJD2V5P:~$ file /etc/passwd
/etc/passwd: ASCII text

less 浏览文件内容

less filename

senlong@LAPTOP-JRJD2V5P:~$ less /etc/passwd

less 选项

命令

行为

Page UP or b

向上翻滚一页

Page Down or space

向下翻滚一页

UP Arrow

向上翻滚一行

Down Arrow

向下翻滚一行

G

移动到最后一行

1G or g

移动到开头一行

/charaters

向前查找指定的字符串

n

向前查找下一个出现的字符串,这个字符串是之前所指定查找的

h

显示帮助屏幕

q

退出 less 程序

Linux目录规范

  • / 根目录,万物起源。
  • /bin 包含系统启动和运行所必须的二进制程序。
  • /boot 包含 Linux 内核,最初的 RMA 磁盘映像(系统启动时,由驱动程序所需),和 启动加载程序。有趣的文件: /boot/grub/grub.conf or menu.lst, 被用来配置启动加载程序。 /boot/vmlinuz,Linux 内核。
  • /dev 这是一个包含设备结点的特殊目录。“一切都是文件”,也使用于设备。 在这个目录里,内核维护着它支持的设备。
  • /etc 这个目录包含所有系统层面的配置文件。它也包含一系列的 shell 脚本, 在系统启动时,这些脚本会运行每个系统服务。这个目录中的任何文件应该是可读的文本文件。有意思的文件:虽然/etc 目录中的任何文件都有趣,但这里只列出了一些我一直喜欢的文件: /etc/crontab, 定义自动运行的任务。 /etc/fstab,包含存储设备的列表,以及与他们相关的挂载点。/etc/passwd,包含用户帐号列表。
  • /home 在通常的配置环境下,系统会在/home 下,给每个用户分配一个目录。普通只能 在他们自己的目录下创建文件。这个限制保护系统免受错误的用户活动破坏。
  • /lib 包含核心系统程序所需的库文件。这些文件与 Windows 中的动态链接库相似。
  • /lost+found 每个使用 Linux 文件系统的格式化分区或设备,例如 ext3文件系统, 都会有这个目录。当部分恢复一个损坏的文件系统时,会用到这个目录。除非文件系统 真正的损坏了,那么这个目录会是个空目录。
  • /media 在现在的 Linux 系统中,/media 目录会包含可移除媒体设备的挂载点, 例如 USB 驱动器,CD-ROMs 等等。这些设备连接到计算机之后,会自动地挂载到这个目录结点下。
  • /mnt 在早些的 Linux 系统中,/mnt 目录包含可移除设备的挂载点。
  • /opt 这个/opt 目录被用来安装“可选的”软件。这个主要用来存储可能 安装在系统中的商业软件产品。
  • /proc 这个/proc 目录很特殊。从存储在硬盘上的文件的意义上说,它不是真正的文件系统。 反而,它是一个由 Linux 内核维护的虚拟文件系统。它所包含的文件是内核的窥视孔。这些文件是可读的, 它们会告诉你内核是怎样监管计算机的。
  • /root root 帐户的家目录。
  • /sbin 这个目录包含“系统”二进制文件。它们是完成重大系统任务的程序,通常为超级用户保留。
  • /tmp 这个/tmp 目录,是用来存储由各种程序创建的临时文件的地方。一些配置,导致系统每次 重新启动时,都会清空这个目录。
  • /usr 在 Linux 系统中,/usr 目录可能是最大的一个。它包含普通用户所需要的所有程序和文件。
  • /usr/bin /usr/bin 目录包含系统安装的可执行程序。通常,这个目录会包含许多程序。
  • /usr/lib 包含由/usr/bin 目录中的程序所用的共享库。
  • /usr/local 这个/usr/local 目录,是非系统发行版自带,却打算让系统使用的程序的安装目录。 通常,由源码编译的程序会安装在/usr/local/bin 目录下。新安装的 Linux 系统中,会存在这个目录, 但却是空目录,直到系统管理员放些东西到它里面。
  • /usr/sbin 包含许多系统管理程序。
  • /usr/share /usr/share 目录包含许多由/usr/bin 目录中的程序使用的共享数据。 其中包括像默认的配置文件,图标,桌面背景,音频文件等等。
  • /usr/share/doc 大多数安装在系统中的软件包会包含一些文档。在/usr/share/doc 目录下, 我们可以找到按照软件包分类的文档。
  • /var 除了/tmp 和/home 目录之外,相对来说,目前我们看到的目录是静态的,这是说, 它们的内容不会改变。/var 目录是可能需要改动的文件存储的地方。各种数据库,假脱机文件, 用户邮件等等,都驻扎在这里。
  • /var/log 这个/var/log 目录包含日志文件,各种系统活动的记录。这些文件非常重要,并且 应该时时监测它们。其中最重要的一个文件是/var/log/messages。注意,为了系统安全,在一些系统中, 你必须是超级用户才能查看这些日志文件。

快捷操作

命令行最为珍视的目标之一就是懒惰;用最少的击键次数 来完成最多的工作。另一个目标是你的手指永远不必离开键盘,永不触摸鼠标。 以下的bash 特性使键盘使用起来更加迅速,更加高效。

移动光标

按键

操作

Ctrl-a

移动光标到行首。

Ctrl-e

移动光标到行尾。

Ctrl-f

光标前移一个字符;和右箭头作用一样。

Ctrl-b

光标后移一个字符;和左箭头作用一样。

Ctrl-l

清空屏幕,相当于clear。

搜索历史命令

history

history有相当多的快捷键操作,要记住并不容易。一般是查看历史命令内容,搜索相关命令,再通过命令id执行,简单明了

[root@senlong tmp]# history | less

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏逻辑熊猫带你玩Python

Python | Debugger和pdb,鸡肋否?

我们知道虽然入门级编程语言最好是C和Python,但是C和Python是有这本质的不同的,那就是C语言是编译型语言,而Python是解释型语言。

28020
来自专栏BeJavaGod

如何限制用户在某一时间段多次访问接口

要知道,如今很多平台的接口都是可以同时被门户网站,手机端,移动浏览器访问,因为接口是通用的,而为了安全起见,有些接口都会设置一个门槛,那就是限制访问次数,也就是...

41060
来自专栏我和PYTHON有个约会

05.第一个Python程序

python作为一种编程语言,通过编写程序的方式来解决问题 python编写的程序,是文本文件,后缀名称为[.py]

11520
来自专栏Java帮帮-微信公众号-技术文章全总结

Web-第二十天 Redis学习【悟空教程】

rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.i686

20350
来自专栏编程之旅

Python——爬虫入门 Urllib库的使用

最近在系统的学习Python爬虫,觉得还是比较有意思的,能够干很多的事情,所以也写点文章记录一下学习过程,帮助日后回顾。

10810
来自专栏java一日一条

40+个对初学者非常有用的PHP技巧(二)

考虑使用ob_gzhandler?不,别这样做。它没有任何意义。PHP应该是来写应用程序的。不要担心PHP中有关如何优化在服务器和浏览器之间传输的数据。

10710
来自专栏程序员的知识天地

维护Python代码的5种工具

随着软件项目进入“维护模式”,对可读性和编码标准的要求很容易落空(甚至从一开始就没有建立过那些标准)。然而,在代码库中保持一致的代码风格和测试标准能够显著减轻维...

37320
来自专栏技术小黑屋

一个Android代码JIT友好度检测工具

利用周末的时间,写了一个检测Android代码JIT友好度的工具,取个名字为DroidJitChecker。希望可以帮助大家快速发现有坏味道的代码,并且及时修正...

12440
来自专栏欧阳大哥的轮子

iOS应用程序的脱壳实现原理浅析

对于诸多逆向爱好者来说,给一个app脱壳是一项必做的事情。基于安全性的考虑,苹果对上架到appstore的应用都会进行加密处理,所以如果直接逆向一个从appst...

11530
来自专栏Golang语言社区

从websocket看go的应用

Go是互联网时代的通用编程语言。这样它就和命令行时代的C语言、图示界面时代的C++、以及互联网早期的Java语言等有不同的侧重。它强调保持自身的精巧和独立,从而...

39170

扫码关注云+社区

领取腾讯云代金券