10分钟学会Linux

10分钟学会Linux有点夸张,但是可以让一个新手初步熟悉Linux中最重要最基本的知识,本文翻译的英文网页在众多Linux入门学习的资料中还是非常不错的。

英文地址:http://freeengineer.org/learnUNIXin10minutes.html

中文译文如下:

前言 

这是我已经在过去的几年中给学生(CAD用户培训)培训中所使用的材料。

其目的是在一个页面上就可以使用 UNIX的shell的基础命令。(这样他们就没有打电话问我了)。

本文档受版权保护,但根据GFDL的条款自由传播。

对这个页面有什么想法吗?欢迎 给我发送补充,评论,更正,任何你认为是错误的或者是应该是包括在内的内容。我总是很高兴收到你的来信,请在你的邮件标题中单词包含“UNIX”的字样。

1. Directories  (目录)

2. Moving around the file system (在文件系统中移动位置)

3. Listing directory contents(列出目录内容)

4. Changing file permissions and attributes(更改文件的权限和属性)

5. Moving, renaming, and copying files(移动,重命名和复制文件)

6. Viewing and editing files(查看和编辑文件)

7. Shells

8. Environment variables(环境变量)

9. Interactive History(交互历史)

10. Filename Completion(文件名补全)

11. Bash is the way cool shell. (Bash是一个很酷的Shell)

12. Redirection(重定向)

13.Pipes(管道)

14.Command Substitution(命令替换)

15.Searching for strings in files: The grep  command (在文件中搜索字符串:grep命令)

16.Searching for files : The find command (搜索文件:find命令)

17.Reading and writing tapes, backups, and archives: The tar command  (读取和写入磁带,备份和存档:tar命令 )

18.File compression: compress, gzip, and bzip2 (文件压缩:compress,zip和bzip2)

19.Looking for help: The man and apropos commands (寻求帮助:man 和 apropos 命令 )

20.Basics of the  vi editor (vi编辑器的基础知识)

1 目录:

在UNIX中,文件和目录路径使用正斜杠“/”来分隔目录,在一个路径中。

事例:

/                             根目录

/usr                        目录 usr  ( 根目录/  的子目录)

/usr/STRIM100        STRIM100 是 /usr 的一个子目录

2 在文件系统中移动位置

pwd                                  显示当前工作目录,或显示当前目录

cd                                    改变当前目录至当前用户的主目录

cd /usr/STRIM100             改变当前目录至目录 /usr/STRIM100

cd INIT                             改变当前目录至当前目录的子目录 INIT

cd ..                                改变当前目录至上一层目录

cd $STRMWORK             改变当前目录至环境变量STRMWORK所定义的目录

cd ~bob                           改变当前目录至用户bob的主目录(假如有权限的话)

3 列出目录内容

ls                                      列出目录下内容

ls -l                                   以长格式 (详细内容)列出目录

举例:

$ ls -l

文件权限 链接个数或目录内容 文件拥有者 所在用户组 文件大小 日期和时间 文件名
drwxr-xr-x 4 cliff user 1024 Jun 18 09:40 WAITRON_EARNINGS
-rw-r--r-- 4 cliff user 767392 Jun 6 14:28 scanlib.tar.gz

文件权限中(drwxr-xr-x,-rw-r--r--)

第1位代表文件类型: - = 普通文件, d=目录, l = 链接符号,等等。

第(2,3,4)位代表文件的权限 (除拥有者所在用户组之外的所有用户)

第(5,6,7)位代表文件的权限 (和拥有者同组的用户)

第(8,9,10)位代表文件的权限(对拥有者)

r = 读, w = 写, x = 执行 - = 缺失

ls -a

列出当前目录并且包含隐含文件.隐含文件以"."开头

ls -ld *

在当前目录下使用长格式列出所有文件和目录。

没有d的话,就是列出所有的所有的文件

有d的话,就是列出所有的文件和目录

4
更改文件的权限和属性

chmod 755             文件更改文件的权限,对拥有者为RWX,对用户组为其它用户为RX(7 = rwx = 111的二进制 5 =R-X = 101二进制)

chgrp user file       使文件属于该组的用户。

chown cliff file      使用户cliff成为文件拥有者

chown -R cliff dir    使用户成为目录dir的拥有者以及该目录树下的所有东西

你必须确保是文件/目录的拥有者或者拥有Root的权限在你做以上操作之前

5 移动,重命名和复制文件

cp file1 file2               拷贝文件

mv file1 newname             移动或重命名一个文件

mv file1 ~/AAA/              移动文件 file1 进入你主目录下的AAA子目录

rm file1 [file2 ...]         移除或删掉一个文件(有区别吗?)

rm -r dir1 [dir2...]         递归删除一个目录以及目录下的内容(小心哦!)

mkdir dir1 [dir2...]         创建目录

mkdir -p dirpath             创建目录dirpath,以及该路径中所有隐含的目录

rmdir dir1 [dir2...]         移除一个空目录

6 查看和编辑文件

cat filename        把文件内容 在ascii中全部导出到屏幕

more filename       渐进的把文件内容全部导出到屏幕,按ENTER = 往下加一行SPACEBAR = 往下加一页 q=退出

less filename       就像more一样, 但是你可以使用上一页,不是所以的系统都支持

vi filename         用VI编辑器编辑一个文件,所有的Unix系统都有某种形式的VI

emacs filename      用emacs编辑器编辑一个文件,不是所有的系统都有emacs

head filename       显示一个文件的开始几行

head -n filename    显示一个文件的前面n行

tail filename       显示一个文件的最后几行

tail -n filename    显示一个文件的最后n行

7 Shells

根据所使用的Shell程序,命令行行为将略有不同

根据所使用的Shell,一些额外的行为可以相当不错

你可以查看你使用的Shell通过以下口令:echo $SHELL

当然,你可以创建一个包含一连串的shell命令的文件像一个程序一样执行它,而从完成一个任务。这个叫做shell脚本。

这个事实上是许多shell的主要目的,而不是命令行行为的交互。

8 环境变量

你可以教会你的shell去记住一些东西,以便以后使用环境变量。

比如在bash shell环境下:

export CASROOT=/usr/local/CAS3.0 定义了变量CASROOT的值为/usr/local/CAS3.0

export LD_LIBRARY_PATH=$CASROOT/Linux/lib
定义了变量LD_LIBRARY_PATH的值为:变量CASROOT的值加上/Linux/lib,

也就是/usr/local/CAS3.0/Linux/lib

通过把$作为变量的前缀,你可以得出变量的值通过任意命令:

cd
$CASROOT 改变你当前的目录至环境变量CASROOT指向的目录

echo
$CASROOT 打印环境变量的CASROOT的值

printenv
CASROOT 做(和上面)相同的事情在bash 和其他shell中

9 交互历史

bash和tcsh(还有其他一些)的一个特点是,你可以使用向上键去访问你前面执行过的一些口令,再编辑,重新执行它们。

10 文件名补全

bash和tcsh(还有其他一些)的一个特点是,你可以使用TAB键去补全只输入了部分的文件名,比如你有一个名为constantine-monks-and-willy-wonka.txt的文件和想去编辑它,你可以输入‘vi
const‘,敲击TAB键,shell将会帮你把剩余的名字填充(补全的名字是唯一的)。

11
Bash是一个很酷的Shell

Bash甚至可以补全口令名称和环境变量。如果存在多个可以补全的名字,如果你敲击TAB两次bash会显示所有补全的名字。对于大部分Linux来说,bash是用户默认的shell。

12重定向

grep
string filename > newfile 把grep口令的结果重定向到文件newfile

grep
string filename >> existfile 追加grep口令的结果到文件existfile

重定向的目录,>
和 >> 可以使用在许多命令上,写入输出结果到文件

13
管道

ls -l | more

du
-sc * | sort -n | tail

14
命令替换

你可以使用一个命令的输出作为另一个命令的输入称之为命令替换。命令替换,通过向后单引号包含替代命令的方式被调用,比如:

cat
`find . -name aaa.txt`

该命令会cat(显示全部内容到屏幕)所有的文件名为aaa.txt并且位于当前目录或者任何子目录树下面的文件

15 在文件中搜索字符串:grep命令

grep string filename 打印出文件中所有包含string的行

16 搜索文件:find命令

find search_path -name filename

find . -name aaa.txt 在当前目录或其任何子目录树下面,找出所有文件名为aaa.txt的文件

find / -name vimrc 找出系统中所有名为vimrc的文件

find /usr/local/games -name "*xpilot*" 在/usr/local/games目录树下面,所有文件名中包含xpilot的文件

17
读取和写入磁带,备份和存档:tar命令

Tar命令代表"tape archive",它是读写archives(文件和目录树的集合)的标准方法。

你经常会发现stuff 的archive 名字像 stuff.tar,或者 stuff.tar.gz.

这个stuff就是tar archive,和用gzip相关工具压缩过的 tar archive

Chances are that if someone gives you a tape written on a UNIX system, it will be in tar format, and you will use tar (and your tape drive) to read it.

同样,你如果要写一个tape文件给其他人,你也应该使用tar

例子:

tar xv

tar tv

tar cv file1 file2

tar cvf archive.tar file1 [file2...]

tar xvf archive.tar

tar cvfz archive.tar.gz dname

tar xvfz archive.tar.gz

tar cvfI archive.tar.bz2 dname

18
文件压缩:compress,zip和bzip2

标准的Unix压缩口令是compress和uncompress,压缩过的文件在文件名前面有一个.Z的前缀

compress part.igs 创建一个压缩文件part.igs.Z

uncompress part.igs 从压缩文件part.igs.Z解压到part.igs,注意.Z不是必须的

另一个常用的压缩工具是gzip (和gunzip)These are the GNU compress and uncompress utilities。

gzip比起标准压缩通常更好一点,但是可能不会存在于所有的系统。gzipped文件的前缀是 .gz

gzip part.igs 创建一个压缩文件part.igs.gz

gunzip part.igs 从part.igs.gz中解压缩原始文件

bzip2工具(通常)有比gzip甚至更好的压缩效果,但是要付出更多的时间去压缩和解压缩文件。

It is not as common a utility as gzip, but is becoming more generally available.

bzip2 part.igs 创建一个压缩的 Iges 文件 part.igs.bz2bunzip2

part.igs.bz2 解压缩这个压缩的 iges 文件

19
寻求帮助:man 和 apropos 命令

大多数命令给的手册业有时候是有用的,或多或少有具体用法,有人说他们被称为man页面是因为它们是为了真正的男人。

例如:

man
ls 显示ls口令的手册页面

你可以使用apropos搜索手册页面

例如:

apropos
build 显示所有描述中包含build字样的手册页面

Do a
man apropos for detailed help on apropos

20
vi编辑器的基础知识

打开一个文件

vi filename

创建文本

编辑模式: 这些键会进入编辑模式然后可以键入文本

i 在当前光标位置前插入

I 在当前行的开始位置处插入

a 在当前光标位置插入或追加

A 在当前行的结尾处追加

r 替代1个字符

R 替代模式

<ESC> 终止插入或覆盖模式

删除文本

x 删除单个字符

dd 删除当前行并且放入缓冲

ndd删除n行并且放入缓冲

J 连接下一行到当前行(删除回车)

Oops

u 撤销最后一次口令

剪切与粘贴

yy剪切当前行放入缓冲

nyy剪切n行放入缓冲

p 把缓冲的内容放入当前行

P把缓冲的内容插入当前行的上一行

光标位置

^d 下一页

^u 上一页

:n 把光标定位于n行

:$ 把光标定位于文件的末尾

^g 显示当前的行数

h,j,k,l 左,上,下,右.Your arrow keys should also work if if your keyboard mappings are anywhere near sane.

替代字符串

:n1,n2:s/string1/string2/[g]

在n1到n2行之间,用string2替换掉string1,如果把g包含进去(g代表全局的)所有行的string1都会被替代,如果g没有被包含,那么只有第一个匹配的string1实例才会被替代。

^ 匹配开始行

. 匹配任何单个字符

$ 匹配结尾行

以上或其它的特殊字符,像前面的斜线可以用 \ 来转义

比如去匹配 "/usr/STRIM100/SOFT" 可以用 "\/usr\/STRIM100\/SOFT"

例子:

:1,$:s/dog/cat/g 把dog替换为cat,整个文件的每一个实例从第1行到最后($代表最后)

:23,25:/frog/bird/把frog替换为bird,从23到25行,每一行的第1个实例会被替换

保存和离开还有其他"ex"口令

这些口令全部以按下的冒号(:)为前缀,然后进入窗口的左下角,它们被称为ex命令因为它们是用ex文本编辑器编辑的口令

你不能敲入ex命令当你在编辑模式下时(在屏幕上输入文本)按下<ESC>键退出编辑模式

:w                      保存当前的文件

:w new.file             保存当前内容到文件new.file

:w!existing.file        用当前编辑的文件区覆盖一个已经存在的文件

:wq                     保存文件并退出

:q                      退出

:q!                     退出不更改

:efilename              打开文件filename编辑

:set number             打开行号

:set nonumber           关闭行号

10分钟学会Linux

时间: 2024-10-21 10:51:45

10分钟学会Linux的相关文章

10分钟学会Linux系统下Git的本地使用

身边的技术大牛一直都建议我使用git进行代码管理,而我每次都把这件事情忘之脑后.最近,好像感觉到了git的重要性.下面是最简单的使用git的入门方法,仅适用于像熊二飞月这样的菜鸟级git选手. Git是一个分布式版本控制软件,原是Linux内核开发者Linus Torvalds为更好地管理Linux内核开发而设计的. 主要功能 Git是用于Linux内核开发的版本控制工具.与CVS.Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的方法,不需要服务器端软件,就可以运作版本控

10分钟学会基于ASP.NET的 JQuery实例 (转)

本文介绍如何在ASP.NET(ASP.NET/AJAX)里使用基于JQuery的AJAX技术.(源代码下载见最后) 在使用JQuery前,请到www.jquery.com下载最新版本的js代码,然后再代码里使用 <script src="_scripts/jQuery-1.2.6.js" type="text/javascript"></script>即可,当然,由于微软已经把JQuery集成到VS里,所以你可以到WWW.ASP.NET/aj

10分钟学会MySQL基础教程

10分钟学会MySQL基础操作 1分钟安装 Part1:写在最前 MySQL安装的方式有三种: ①rpm包安装 ②二进制包安装 ③源码安装 这里我们推荐二进制包安装,无论从安装速度还是用于生产库安装环境来说,都是没问题的.现在生产库一般采用MySQL5.6,测试库采用MySQL5.7. MySQL5.6安装看这里 http://suifu.blog.51cto.com/9167728/1846671 MySQL5.7安装看这里 http://suifu.blog.51cto.com/916772

U盘10分钟安装linux系统

说来可能不信,10分钟包括创建U盘启动盘,用U盘启动,安装,不联网,不更新,不安装语言包,等装好系统再更新. Windows系统硬盘分区 如果你用的是Windows系统,现有的硬盘没有未分配的空间,需要调整硬盘空间的,请看这里,否则跳过. 工具:EASEUS Partition Manager 9.1,华军下载.这个软件Windows 7 64bit能使用,无需注册,无需付费,可使用全部功能.关键是因为你要调整硬盘分区,需要重启,并且在不加载系统的情况下进行.目前市面上几个声称能安全调整分区,能

10分钟学会Less开发环境搭建与初体验

Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合(mixin).函数等功能,让 CSS 更易维护.方便制作主题.扩充. 今天看一下,10分钟能不能手把手快速教会你Less环境搭建以及使用入门. Less环境搭建: 1).安装nodejs.打开命令提示符(win+r),分别输入node -v以及npm -v如果返回版本号说明你安装成功了 2).安装less.在"命令提示符"下运行命令"npm install less -g" 3).配

[Pulsar系列] 10分钟学会Pulsar消息系统概念

Apache Pulsar Pulsar是一个支持多租户的.高性能的服务与服务之间消息通讯的解决方案,最初由雅虎开发,现在由Apache软件基金会管理. Pulsar的主要特性如下: Pulsar实例原生支持多集群,能无缝的基于地理位置进行跨集群备份 非常低的消息发布和端到端的延迟 无缝扩展到超过百万个topic 支持Java,Go,Pytho和C++的客户端 Topic支持多种订阅模式: 独占(exclusive), 共享(shared)和灾备(failover) 通过Apache BookK

10分钟学会理解和解决MySQL乱码问题

本文将详细介绍MySQL乱码的成因和具体的解决方案 MySQL出现乱码的原因 要了解为什么会出现乱码,我们就先要理解:从客户端发起请求,到MySQL存储数据,再到下次从表取回客户端的过程中,哪些环节会有编码/解码的行为.为了更好的解释这个过程,博主制作了两张流程图,分别对应存入和取出两个阶段. 存入MySQL经历的编码转换过程 上图中有3次编码/解码的过程(红色箭头).三个红色箭头分别对应:客户端编码,MySQL Server解码,Client编码向表编码的转换.其中Terminal可以是一个B

10分钟学会前端调试利器——FireBug

概述 FireBug是一个用于网站前端开发的工具,它是FireFox浏览器的一个扩展插件.它可以用于调试JavaScript.查看DOM.分析CSS.监控网络流量以及进行Ajax交互等.它提供了几乎前端开发需要的全部功能.官方网站:www.getfirebug.com 如何获取Firebug? 因为它是Firefox浏览器的一个扩展插件,所以首先需要下载Firefox浏览器.读者可以访问www.mozilla.com下载并安装Firefox浏览器.安装完成后用它访问https://addons.

10分钟学会Python

#1. 语法 Python中没有强制的语句终止字符,代码块是通过缩进来指示的.缩进表示一个代码块的开始,逆缩进则表示一个代码块的结束.一般用4个空格来表示缩进. 声明以冒号(:)字符结束,并且开启一个缩进级别. 单行注释以井号字符(#)开头,多行注释则以多行字符串的形式出现. 赋值(事实上是将对象绑定到名字)通过等号(“=”)实现 双等号(“==”)用于相等判断 # 本行是注释 some_var = 3 print(some_var) print(some_var == 4) if some_v