第二周学习总结

Linux大都在命令行下操作,不用或少用图形界面将是之后学习的重点和难点。

 

Ctrl+d

键盘输入结束或退出终端

Ctrl+s

暂定当前程序,暂停后按下任意键恢复运行

Ctrl+z

将当前程序放到后台运行,恢复到前台为命令fg

Ctrl+a

将光标移至输入行头,相当于Home

Ctrl+e

将光标移至输入行末,相当于End

Ctrl+k

删除从光标所在位置到行末

Alt+Backspace

向前删除一个单词

Shift+PgUp

将终端显示向上滚动

Shift+PgDn

将终端显示向下滚动

 

 

字符

含义

*

匹配 0 或多个字符

?

匹配任意一个字符

[list]

匹配 list 中的任意单一字符

[!list]

匹配 list 中的任意单一字符以外的字符

[c1-c2]

匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z]

{string1,string2,...}

匹配 sring1  string2 (或更多)其一字符串

{c2..c2}

匹配 c1-c2 中全部字符 {1..10}

 

 

who 命令其它常用参数

参数

说明

-a

打印能打印的全部

-d

打印死掉的进程

-m

am i,mom likes

-q

打印当前登录用户数及用户名

-u

打印当前登录用户登录信息

-r

打印运行等级

 

一个目录要同时具有读权限和执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件

修改文件权限:

每个文件的三组权限(拥有者,所属用户组,其他用户,记住这个顺序是一定的)就对应这一个 "rwx"

'g''o'还有'u',分别表示groupothersuser'+''-' 就分别表示增加和去掉相应的权限。

 

FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。

FHS 定义了两层规范,第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该要放置设置文件,/bin  /sbin 则应该要放置可执行文件等等。

第二层则是针对 /usr  /var 这两个目录的子目录来定义。例如 /var/log 放置系统登录文件、/usr/share 放置共享数据等等。

 

使用 cd 命令可以切换目录,在 Linux 里面使用 . 表示当前目录,.. 表示上一级目录(**注意,还记得我们上一节介绍过的,以 . 开头的文件都是隐藏文件,所以这两个目录必然也是隐藏的,你可以使用 ls -a 命令查看隐藏文件), - 表示上一次所在目录,~ 通常表示当前用户的"home"目录。使用 pwd 命令可以获取当前所在路径(绝对路径)。

新建文件

使用 touch 命令创建空白文件,使用 mkdirmake directories)命令可以创建一个空目录,也可同时指定创建目录的权限属性,使用 -p 参数,同时创建父目录(如果不存在该父目录),使用cpcopy)命令复制一个文件或目录到指定目录。使用rmremove files or directories)命令,删除一个文件或目录。直接删除文件,可以使用-f参数强制删除。复制和删除目录时要使用-r-R参数。使用mv(move or rename files)命令,移动文件(剪切)mv 源目录文件 目的目录。将文件"file1"重命名为"myfile" mv 旧的文件名 新的文件名。rename命令可以批量重命名。这两个命令都是用来打印文件内容到标准输出(终端),其中cat为正序显示,tac倒序显示,可以加上-n参数显示行号。nl命令,添加行号并打印,这是个比cat -n更专业的行号打印命令。

 

使用declare命令创建一个变量,使用=号赋值运算符为变量赋值,读取变量的值,使用echo命令和$符号。关于变量名,并不是任何形式的变量名都是可用的,变量名只能是英文字母,数字或者下划线,且不能以数字作为开头。

命令

说明

set

显示当前 Shell 所有环境变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量

env

显示与当前用户相关的环境变量,还可以让命令在指定环境中运行

export

显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量

gcc 生成二进制文件默认具有可执行权限,不需要修改

添加自定义路径到“PATH”环境变量:$ PATH=$PATH:/home/shiyanlou/mybin

 

变量的修改有以下几种方式:

变量设置方式

说明

${变量名#匹配字串}

从头向后开始匹配,删除符合匹配字串的最短数据

${变量名##匹配字串}

从头向后开始匹配,删除符合匹配字串的最长数据

${变量名%匹配字串}

从尾向前开始匹配,删除符合匹配字串的最短数据

${变量名%%匹配字串}

从尾向前开始匹配,删除符合匹配字串的最长数据

${变量名/旧的字串/新的字串}

将符合旧字串的第一个字串替换为新的字串

${变量名//旧的字串/新的字串}

将符合旧字串的全部字串替换为新的字串

可以使用unset命令删除一个环境变量。

可以使用source命令来让其立即生效,source命令还有一个别名就是.,注意与表示当前路径的那个点区分开,虽然形式一样,但作用和使用方式一样,上面的命令如果替换成.的方式就该是$ . ./.zshrc,注意第一个点后面有一个空格,而且后面的文件必须指定完整的绝对或相对路径名,source 则不需要。

与搜索相关的命令常用的有如下几个whereis,which,find,locate

注意 find 命令的路径是作为第一个参数的, 基本命令格式为 find [path] [option] [action]

 

文件后缀名

说明

*.zip

zip程序打包压缩的文件

*.rar

rar程序压缩的文件

*.7z

7zip程序压缩的文件

*.tar

tar程序打包,未压缩的文件

*.gz

gzip程序(GNU zip)压缩的文件

*.xz

xz程序压缩的文件

*.bz2

bzip2程序压缩的文件

*.tar.gz

tar打包,gzip程序压缩的文件

*.tar.xz

tar打包,xz程序压缩的文件

*tar.bz2

tar打包,bzip2程序压缩的文件

*.tar.7z

tar打包,7z程序压缩的文件

使用zip打包文件夹:

$ zip -r -q -o shiyanlou.zip /home/shiyanlou 

$ du -h shiyanlou.zip 

$ file shiyanlou.zip

-r参数表示递归打包包含子目录的全部内容,-q参数表示为安静模式,即不向屏幕输出信息,-o,表示输出文件,需在其后紧跟打包输出文件名。后面使用du命令查看打包后文件的大小

 

$ zip -r -9 -q -o shiyanlou_9.zip /home/shiyanlou -x ~/*.zip 

$ zip -r -1 -q -o shiyanlou_1.zip /home/shiyanlou -x ~/*.zip

这里添加了一个参数用于设置压缩级别-[1-9]1表示最快压缩但体积大,9表示体积最小但耗时最久。最后那个-x是为了排除我们上一次创建的 zip 文件,否则又会被打包进这一次的压缩文件中,注意:这里只能使用绝对路径,否则不起作用。

创建加密zip包,使用-e参数可以创建加密压缩包

$ zip -r -e -o shiyanlou_encryption.zip /home/shiyanlou

使用unzip命令解压缩zip文件

$ sudo apt-get update

$ sudo apt-get install libaa-bin

 

使用 df 命令查看磁盘的容量加上`-h`参数,以更易读的方式展示

-d参数指定查看目录的深度

 

tr 命令可以用来删除一段文本信息中的某些文字。或者将其进行转换

tr [option]...SET1 [SET2]

常用的选项有:

选项

说明

-d

删除和set1匹配的字符,注意不是全词匹配也不是按字符顺序匹配

-s

去除set1指定的在输入文本中连续并重复的字符

col 命令可以将Tab换成对等数量的空格建,或反转这个操作。

col [option]

常用的选项有:

选项

说明

-x

Tab转换为空格

-h

将空格转换为Tab(默认选项)

join命令用于将两个文件中包含相同内容的那一行合并在一起。

join [option]... file1 file2

常用的选项有:

选项

说明

-t

指定分隔符,默认为空格

-i

忽略大小写的差异

-1

指明第一个文件要用哪个字段来对比,,默认对比第一个字段

-2

指明第二个文件要用哪个字段来对比,,默认对比第一个字段

paste这个命令与join 命令类似,它是在不对比数据的情况下,简单地将多个文件合并一起,以Tab隔开。

paste [option] file...

常用的选项有:

选项

说明

-d

指定合并的分隔符,默认为Tab

-s

不合并到一行,每个文件为一行

tr 命令可以用来删除一段文本信息中的某些文字。或者将其进行转换

tr [option]...SET1 [SET2]

常用的选项有:

选项

说明

-d

删除和set1匹配的字符,注意不是全词匹配也不是按字符顺序匹配

-s

去除set1指定的在输入文本中连续并重复的字符

col 命令可以将Tab换成对等数量的空格建,或反转这个操作。

col [option]

常用的选项有:

选项

说明

-x

Tab转换为空格

-h

将空格转换为Tab(默认选项)

join命令用于将两个文件中包含相同内容的那一行合并在一起。

join [option]... file1 file2

常用的选项有:

选项

说明

-t

指定分隔符,默认为空格

-i

忽略大小写的差异

-1

指明第一个文件要用哪个字段来对比,,默认对比第一个字段

-2

指明第二个文件要用哪个字段来对比,,默认对比第一个字段

paste这个命令与join 命令类似,它是在不对比数据的情况下,简单地将多个文件合并一起,以Tab隔开。

paste [option] file...

常用的选项有:

选项

说明

-d

指定合并的分隔符,默认为Tab

-s

不合并到一行,每个文件为一行

 

 

正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为 regexregexp  RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在 Perl 中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由 UNIX 中的工具软件(例如sedgrep)普及开的。正则表达式通常缩写成“regex”,单数有 regexpregex,复数有 regexpsregexesregexen

 

pt-get使用各用于处理apt包的公用程序集,我们可以用它来在线安装、卸载和升级软件包等,下面列出一些apt-get包含的常用的一些工具:

工具

说明

install

其后加上软件包名,用于安装一个软件包

update

从软件源镜像服务器上下载/更新用于更新本地软件源的软件包列表

upgrade

升级本地可更新的全部软件包,但存在依赖问题时将不会升级,通常会在更新之前执行一次update

dist-upgrade

解决依赖关系并升级(存在一定危险性)

remove

移除已安装的软件包,包括与被移除软件包有依赖关系的软件包,但不包含软件包的配置文件

autoremove

移除之前被其他软件包依赖,但现在不再被使用的软件包

purge

remove相同,但会完全移除软件包,包含其配置文件

clean

移除下载到本地的已经安装的软件包,默认保存在/var/cache/apt/archives/

autoclean

移除已安装的软件的旧版本软件包

下面是一些apt-get常用的参数:

参数

说明

-y

自动回应是否安装软件包的选项,在一些自动化安装脚本中使用这个参数将十分有用

-s

模拟安装

-q

静默安装方式,指定多个q或者-q=#,#表示数字,用于设定静默级别,这在你不想要在安装软件包时屏幕输出过多时很有用

-f

修复损坏的依赖关系

-d

只下载不安装

--reinstall

重新安装已经安装但可能存在问题的软件包

--install-suggests

同时安装APT给出的建议安装的软件包

安装软件包

关于安装,如前面演示的一样你只需要执行apt-get install <软件包名>即可,除了这一点,你还应该掌握的是如何重新安装软件包。 很多时候我们需要重新安装一个软件包,比如你的系统被破坏,或者一些错误的配置导致软件无法正常工作。

软件升级

更新软件源 

$ sudo apt-get update 

升级没有依赖问题的软件包 

$ sudo apt-get upgrade 

升级并解决依赖关系 

$ sudo apt-get dist-upgrade

posted @ 2015-09-20 17:42  20135309李雪琦  阅读(220)  评论(2编辑  收藏  举报