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 关闭行号
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。