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的更多相关文章
- 10 分钟学会Linux常用 bash命令
目录 基本操作 1.1. 文件操作 1.2. 文本操作 1.3. 目录操作 1.4. SSH, 系统信息 & 网络操作 基本 Shell 编程 2.1. 变量 2.2. 字符串替换 2.3. ...
- 10分钟学会 linux awk命令
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...
- 10分钟学会搭建Android开发环境 Eclipse: The import android.support cannot be resolved
10分钟学会搭建Android开发环境_隋雨辰 http://v.youku.com/v_show/id_XNTE2OTI5Njg0.html?from=s1.8-1-1.2 The import a ...
- 10分钟学会VS NuGet包私有化部署
前言 我们之前实现了打包发布NuGet,但是发布后的引用是公有的,谁都可以访问,显然这种方式是不可取的. 命令版本:10分钟学会Visual Studio将自己创建的类库打包到NuGet进行引用(ne ...
- UWP开发入门(十九)——10分钟学会在VS2015中使用Git
写程序必然需要版本控制,哪怕是个人项目也是必须的.我们在开发UWP APP的时候,VS2015默认提供了对微软TFS和Git的支持.考虑到现在Git很火,作为微软系的程序员也不得不学一点防身,以免被开 ...
- U盘10分钟安装linux系统
说来可能不信,10分钟包括创建U盘启动盘,用U盘启动,安装,不联网,不更新,不安装语言包,等装好系统再更新. Windows系统硬盘分区 如果你用的是Windows系统,现有的硬盘没有未分配的空间,需 ...
- 【译】10分钟学会Pandas
十分钟学会Pandas 这是关于Pandas的简短介绍主要面向新用户.你可以参考Cookbook了解更复杂的使用方法 习惯上,我们这样导入: In [1]: import pandas as pd I ...
- 10分钟学会Less开发环境搭建与初体验
Less 是一门 CSS 预处理语言,它扩充了 CSS 语言,增加了诸如变量.混合(mixin).函数等功能,让 CSS 更易维护.方便制作主题.扩充. 今天看一下,10分钟能不能手把手快速教会你Le ...
- 10分钟学会windows中iis搭建服务器集群实现负载均衡和nginx代理转发
前言 我们之前聊过 10分钟搭建服务器集群--Windows7系统中nginx与IIS服务器搭建集群实现负载均衡:https://www.cnblogs.com/xiongze520/p/103087 ...
随机推荐
- 冒泡排序----java实现
冒泡排序思路:第1次:顺序比较从第0个到第len个(相邻两个)元素并把大的放后面,第一次进行完后,最大 的元素会在最后: ...
- node.js基础:模块的创建和引入
模块可能是一个文件,也可能是包含一个或多个文件的目录.如果模块是个目录,node.js通常会在这个目录下找一个叫index.js的文件作为模块的入口. 典型的模块是一个包含exports对象属性定义的 ...
- c++学籍管理系统v1.10
//////////////新增添加学生和成绩录入系统 #include<iostream> #include <string> #include<conio.h> ...
- 2014年度辛星全然解读html第七节
经过前面六节的学习,我们大致清楚了HTML教程中的基础内容,那么接下来我们開始继续向后推进,能够说,以下我们介绍一下HTML中的区块. ***************区块*************** ...
- 第三篇——第二部分——第六文 监控SQL Server镜像
原文:第三篇--第二部分--第六文 监控SQL Server镜像 原文出处:http://blog.csdn.net/dba_huangzj/article/details/26846203 要优化, ...
- 学习vi和vim编辑(3):一个简单的文本编辑器(2)
然后文章,继续评论vi编辑简单的文本编辑命令. 本文主要是删除的文字.复制,运动命令. 删除文本: 正如上一篇文章中讲过的,对于删除命令("d")也具有"(command ...
- STM32F4xx时钟理解
理解力STM32时钟是我们的应用定时器等的基础,据总结近期工作: 以下是一STM32时钟树: 1.首先注意的的是图中画绿色圈圈的两个,HSE和HSI分别表示外部时钟和内部时钟,当中HSE 是是快速外部 ...
- Swift编程语言学习1.3——类型安全和投机型
Swift 是类型安全(type safe )语言.类型安全的语言可以让你清楚地知道代码被处理值类型.假设你需要一个代码String.你绝对不能进去一个不小心传球Int. 因为 Swift 它是类型安 ...
- Google免费的SVN服务器管理VS2010代码
原文:Google免费的SVN服务器管理VS2010代码 前言 Google免费为我们提供了代码管理的SVN服务器.首先我这里用的Win7 64的电脑系统,用VS2010进行的代码开发.这里管理代码需 ...
- Mysql 演示示例存储过程
DELIMITER $ CREATE PROCEDURE generate_Equipment(district INT,warehouseNO VARCHAR(10) ) BEGIN DECLAR ...