Linux学习笔记

来源:互联网 发布:qq免费刷会员软件 编辑:程序博客网 时间:2024/05/16 09:42

入手了DigitalOcean的Ubuntu服务器,就好好的玩玩吧

特殊的按键组合

Ctrl-U: 擦除一行光标前面的部分。Ctrl-H: 擦除光标前面的一个字符。Ctrl-D: 终止输入。(退出shell,如果您正在使用shell的话)。Ctrl-C: 终止当前正在运行的程序。Ctrl-Z: 暂停程序。 (把它放到后台运行请看 command &, 第 4.3.10.1 节)Ctrl-S: 停止向屏幕输出。Ctrl-Q: 重新激活向屏幕输出。

默认的shell,bash, 有历史编辑和tab补齐功能。

up-arrow: 开始历史命令搜索。Ctrl-R: 开始增量历史命令搜索。TAB: 完整的把文件名输入到命令行。Ctrl-V TAB: 输入TAB而不是扩展命令行。

其他一些需要记住的按键组合。

Ctrl-Alt-Del:挂起或者重新启动系统 初始化安装完成后再安装其他软件包, 第 3.8.1 节.Left-click-and-drag mouse: 选择并且拷贝到剪贴板。Click middle mouse button: 使用剪贴板的内容粘贴。Meta-key (Emacs terminology) 传统的是使用 Left-Alt-key. 但是有些系统使用 Windows-key实现 Meta-key.

基本 Unix 命令

pwd    显示当前工作路径。whoami    显示当前用户名。file foo    显示foo文件的属性。type -p commandname    显示命令commandname所的的地方。    which commandname也可以用来做这个 . type commandname    显示命令 commandname的信息。apropos key-word    找到和 key-word相关的命令。    man -k key-word也可以做到whatis commandname    显示该命令的一句话帮助。 commandname.man -a commandname    显示命令的解释信息。 commandname. (Unix style)info commandname    显示很长的命令解释 commandname. (GNU style)ls    列出目录内容 (非以.开始的文件和目录) ls -a    列出目录内容(所有的文件和目录)ls -A    列出目录内容。(几乎所有的文件和目录,略去".." and ".")ls -la    列出目录所有文件和目录的详细信息。查看 Ubuntu 中的文件系统概念, 第 4.5.2 节。ls -d *    列出当前目录下的目录名称,而不是目录下的内容。lsof foo    显示文件foo的打开状态。mkdir foo    在当前目录下创建一个新的目录foo。cd foo    切换到当前目录下或者在变量CDPATH中列出来的目录foo。在builtins(7)查看命令cd。cd /    切换到根目录。cd    切换到用户主目录。cd /foo    切换到绝对路径/foo所指定的目录。cd ..    切换到上一级目录。cd ~/foo    切换到用户主目录下的foo目录去。cd -    切换到上一次所去的目录。</etc/motd pager    使用默认的分页程序查看文件/etc/motd的内容,参照 command < foo, 第 4.3.10.9 节。 touch junkfile    创建一个空文件junkfile。cp foo bar    拷贝一个已有的文件foo到新文件bar。rm junkfile    删除文件junkfile。rmdir bar    删除空目录bar。 (目录bar必须为空目录)mv foo bar    把已有的文件foo重命名为barmv foo bar/baz    把已有的文件foo移动到新位置并重命名为bar/baz。目录bar必须存在。chmod 600 foo    让已经存在的文件foo其他人不能读写。(所有人都 不能执行)。chmod 644 foo    使文件foo其他的人可以读,但是不能写。(所有人 都不能执行)chmod 755 foo    使文件foo其他的人能读不能写。(所有人都可以执行)top    全屏显示进程信息。输入”q”退出。ps aux | pager    用BSD风格输出所有正在运行的进程的信息。参照 command1 | command2, 第 4.3.10.2 节。ps -ef | pager    用system-V风格来输出所有正在运行的进程的信息。ps aux | grep -e "[e]xim4*"    显示exim4进程,或者运行exim的进程。输入man grep可以从grep(1)的手册页学习正则表达式。 ps axf | pager    用ASCCI艺术形式来显示运行所有进程信息。kill 1234    杀死进程号为1234的进程。 查看 中止一个进程, 第 8.5.1 节。killall Xorg    重新启动Xwindow。grep -e "pattern" *.html    找到当前目录下面所有以.html结尾的文件中含有"pattern"的行,并显示它们。gzip foo    用Lempel-Ziv(LZ77)压缩算法压缩foo,生成foo.gz。gunzip foo.gz    将文件foo.gz解压缩生成foo。bzip2 foo    将文件foo.bz2解压缩生成foo。tar -xvvf foo.tar    从打包文件foo.tar解出文件来。tar -xvvzf foo.tar.gz    从打包压缩的文件foo.tar.gz中解开文件。tar -xvvf --bzip2 foo.tar.bz2    从文件foo.tar.bz2解压缩文件。 tar -cvvf foo.tar bar/    把目录bar/的内容打包存放到foo.tar存档中。tar -cvvzf foo.tar.gz bar/    把目录bar/的内容打包并且压缩存放到foo.tar.gz存档中。tar -cvvf --bzip2 foo.tar.bz2 bar/    把目录bar/中的内容打包存放到foo.tar.bz2存档里面。 zcat README.gz | pager    使用默认的分页显示程序pager来显示压缩文件README.gz中的内容。zcat README.gz > foo    使用文件README.gz解开后的内容创建一个文件foo。zcat README.gz >> foo    把文件README.gz解开后的内容追加到文件foo的后面(如果文件不存在的话,就会创建一个)。find . -name pattern    用shell找到匹配pattern的文件名(慢一些)。locate -d . pattern 

Shell 通配符

通常您需要用命令来处理一组文件,但是您又不想输出所有的文件名。shell通配符使得这个成为可能。

*    这个匹配0个或者多个字符。    它不会匹配以"."开始的文件名. ?    这个仅匹配一个字符。[...]    这个匹配[]里面的某个字符。[a-z]    这个匹配字符a到z之间的某个字符。[^...]    这个匹配任意不包含在[]里面的字符(不包含字符"^").

命令返回值

每个命令都返回一个值和它返回的状态。

返回0表示命令被正确执行返回非0的值表示命令没有正确执行。

返回值可以在命令执行后马上用shell用变量$?来访问。

[1===1];echo?
0
[1===2];echo?
1

典型的命令序列

command &

command在子shell的background运行。后台任务让多成程序能够运行在一个shell里面。

管理这些后台任务的请求需要shell内建的: jobs,fg, bg,和kill。请查看 bash(1)这一小节中的”SIGNALS”,”JOB CONTROL”,”SHELL BUILTIN COMMANDS”.的相关内容。
command1 | command2

command1的标准输出被直接输入到 command2 的标准输入。 两个命令都可能并行地运行。这个被称作pipeline。
command1 ; command2

command1command2被有序的执行。
command1 && command2

command1如果执行成功的话那么再执行command2。只有当command1并且command2都运行成功的话上面的命令序列才会成功返回。
command1 || command2

command1被执行以后,如果不成功的话,command2也会被执行。当command1 或者command2有一个执行成功的话,上面的序列就会返回真值。
command > foo

把command的标准输出重定向到文件foo。(覆盖内容)
command >> foo

把command的标准输出重定向到文件foo。(追加)
command > foo 2>&1

同时把command的标准输出和标准出错信息重定向到文件foo。
command < foo

把command的标准输入重定向到一个文件foo。

命令别名

您可以给一个命令序列起一个别名。比如:

$ alias la=’ls -la’

正则表达式

正则表达式用在很多文本处理工具里面。它们和shell的通配符比较相似(查看 Shell 通配符, 第 4.3.8 节),但是它们更复杂也更强大。

正则表达式是由文本字符和元字符组成的,用来描述匹配模式。元字符是有特殊意义的字符。它们有两种主要的形式BRE和ERE,主要取决于 类 Unix 文本处理, 第 4.4 节里面是如何描述的。

在扩展的正则表达式(EREs)里面元字符包括”\ . [ ] ^ $ * + ? ( ) { } |”。正则表达式表示:

c    这个用来匹配非元字符 "c".\c    这个用来匹配原本的字符"c"..    这个用来匹配任意字符包括换行符。^    这个用来匹配字符串的开始。$    这个用来匹配字符串的结尾。\<    这个用来匹配一个单词的开始。\>    这个用来匹配一个单词的结尾。[abc...]    这个字符序列用来匹配 "abc..."中的任意字符。[^abc...]    这个否定的字符序列匹配所有的字符除了 "abc...".r*    这个匹配0个或者多个r组成的字符串。r+    这个匹配一个或者多个r组成的字符串。r?    这个匹配零个或者一个r。r1|r2    匹配"r1"或者"r2"。(r1|r2)    匹配"r1"或者 "r2"并且把它当作一个分类 正则表达式。

在BREs里面元字符”+ ? ( ) { } |”不再具有它们特殊的含义,而是使用的有反斜杠的版本”+ \? ( ) { } |”。因此分组(r1|r2)需要被表示成(r1|r2)。

文件和目录的访问权限

文件和目录的访问权限对如下3类用户进行了分别定义:

文件拥有者(u),文件拥有者所在用户组中的其它成员(g),和所有其它用户(o)。

每个文件均拥有下列三种权限:

read (r): 查看文件内容write (w): 修改文件execute (x): 如同命令一样执行文件

每个目录均拥有下列三种权限:

read (r): 列出目录内容write (w): 在目录中增删文件execute (x): 进入目录中

在此,对目录的execute权限,不仅意味着允许查看目录下文件的内容,还允许查看文件的其它信息如文件大小、修改时间。

ls可用来显示目录和文件的这些信息。参阅 ls(1)。使用ls的-l选项,就会按如下顺序显示下列信息:

文件类型(第1个字符)    -: 普通文件    d: 目录    l: 符号链接    c: 字符型设备节点    b: 块设备节点    p: 命名管道    s: 套接字文件访问权限(接下来的9个字符,每3个一组依次代表user、group和other)。文件的硬链接数文件拥有user的用户名文件所属group的用户组名文件的字符数大小 (bytes)文件的时间和日期 (mtime)文件的名称
原创粉丝点击