linux

====================实验楼===================
touch:创建一个文件
cd:进入目录
pwd:查看当前所在目录
ctrl+c:强行终止当前程序
ls:查看
tab:补全命令、补全目录、补全命令参数
键盘向上键:恢复之前输入过的命令
shift+up:将终端显示向上翻滚
shift+down:将终端显示向下翻滚
ctrl+a:将光标移至输入行头,相当于home键
ctrl+e:将光标移至输入行末,相当于end键
touch love_{1..10}_linux.txt:一次性创建10个从love_1_linux.txt到love_10_linux.txt个文件。注意:大括号里面只有两个..
n:切换到下一个关键字所在处
shift+n:上一个关键字所在处
space:翻页
enter:向下滚动一行
j,k:向前或向后滚动一行
q:退出
h:显示帮助
exit/ctrl+d:退出当前用户跟退出终端一样
cat:用于读取指定文件的内容并打印到终端输出
sort:将读取的文本进行一个字典排序再输出
etc/group:包括用户组、用户组口令、GID、该用户组所包含的用户  如:group_name:password:GID:user_list 即:shiyanlou:x:5000:   x:表示密码不可见



========================文件权限=================================
linux上不通过文件后缀名来区分文件的类型。一个目录同时具有读权限和执行权限才可以打开并查看内部文件,而一个目录要有写权限才允许在其中创建其他文件。


=======================linux目录结构及文件基本操作================
FHS:文件系统层次结构标准,FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理和矛盾处理。
两层规范:
第一层:/下面的各个目录应该要放什么数据文件
/etc:放设置文件
/bin与/sbin:放可执行文件
第二层:针对/usr与/var这两个子目录
/var/log:放系统登录文件
/usr/share:放共享数据


cd:切换用户  .表示当前目录 ..表示上一级目录(以.开头的文件都是隐藏文件,所以这两个目录都是隐藏的,可以使用ls -a 命令查看隐藏文件)
    - 表示上一次所在目录,~通常表示当前用户的home命令。使用pwd命令可以获取当前所在路径(绝对路径)

绝对路径:以根“/”目录为起点的完整路径,以所要到的目录为终点 如:/usr/local/bin
相对路径:相对于当前目录的路径
在进行目录切换的过程中多使用tab键补全,可避免输入错误,连续按两次tab可以显示全部候选结果

-p参数:同时创建父目录    mkdir -p father/son/grandson

cp:使用cp命令复制一个文件到指定目录


==========================环境变量与文件查找============================================
declare:创建变量
echo和$:用于读取变量的值

declare temp
temp=shiyanlou
echo $temp

set、env、export:用于打印环境变量信息
为了与普通变量区分,通常我们习惯将环境变量名设为大写。

.profile:只对当前用户永久生效
/etc/profile:对所有用户永久生效
如果想要添加一个永久生效的环境变量,只需打开/etc/profile,在最后加上想添加的环境变量

unset:删除一个环境变量
source:让环境变量立即生效  如: $source .zshrc

搜索文件:whereis,which,find,locate
whereis:简单快速
locate:快而全


=======================寻找文件=====================================
find,chmod,chown

=======================文件的打包与压缩=============================
linux上常用的压缩、解压工具,zip,rar,tar

使用zip打包文件夹:$ zip -r -q -o shiyanlou.zip /home/shiyanlou
                   $ du -h shiyanlou.zip
                   $ file shiyanlou.zip
将实验楼的home目录打包成一个文件,并查看打包后文件的大小和类型。第一行命令中,-r参数表示
递归打包包含子目录的全部内容,-q参数表示为安静模式,即不向屏幕输出信息,-o表示输出文件,
需在其后紧跟打包输出文件名。后面使用du命令查看打包后文件的大小。

设置压缩级别 -[1-9],重新打包:
$ zip -r -9 -q -o shiyanlou_9.zip /home/shiyanlou -x ~/*.zip
$ zip -r -9 -q -o shiyanlou_1.zip /home/shiyanlou -x ~/*.zip
1表示最快压缩但体积大,9表示体积最小但耗时最久,-x排除上一次创建的zip文件,否则又会被
打包进这一次压缩。注意:这里只能使用绝对路径,否则不起作用。


du:分别查看默认压缩级别、最低、最高压缩级别及未压缩的文件的大小。

unzip:使用unzip命令解压缩zip文件

使用-e 创建加密压缩包:
$ zip -r -e -o shiyanlou_encryption.zip /home/shiyanlou

windows中的换行为CR+LF,linux上的为LF,使linux创建的zip压缩文件在windows上解压后没有问题
(如换行),需做如下修改
$ zip -r -l -o shiyanlou.zip /home/shiyanlou
-l参数将LF转换为CR+LF

使用unzip命令解压缩zip文件:
将shiyanlou.zip解压到当前目录   $ unzip shiyanlou.zip
使用安静模式,将文件解压到指定目录: $ unzip -q shiyanlou.zip -d ziptest
只查看压缩包的内容,用-l参数: $ unzip -l shiyanlou.zip

linux默认编码格式为utf-8,windows中如果有包含中文的文档或以中文作为文件名时默认采用gbk或其他编码。
用 -O(英文字母大写O)参数指定编码类型: unzip -O GBK 中文压缩文件.zip
 
======rar

rar的命令参数没有-
1.从指定压缩包文件中删除某个文件:
  $ rar d shiyanlou.rar .zshrc


======tar
创建一个tar包:$ tar -cf shiyanlou.tar ~

-C表示创建一个tar包文件  -f用于指定创建的文件名,文件名必须紧跟在-f之后

解包一个文件(-x参数)到指定路径的已存在目录(-C参数):
$ mkdir tardir
$tar -xf shiyanlou.tar -C tardir

只查看不解包文件 -t 参数:
$ tar -tf shiyanlou.tar

创建不同压缩格式的文件:使用gzip工具创建*.tar.gz   使用tar,只需换一个参数。在tar文件的基础上添加-z参数
$ tar -czf shiyanlou.tar.gz~
解压*.tar.gz文件
$ tar -xzf shiyanlou.tar.gz

压缩文件格式    参数
*.tar.gz         -z
*.tar.xz         -J
*tar.bz2         -j


常用命令:
zip:   打包:zip something.zip something(目录请加-r参数)
       解包:unzip something
       指定路径:-d参数
tar:   打包:tar -zcvf something.tar something
       解包:tar -zxvf something.tar
       指定路径:-C参数
       
       
       
       
=================================文件系统操作与磁盘管理===================================================      
df:查看磁盘的容量

-h:以更易读的方式展示
-d:参数指定查看目录的深度      如: $ du -h -d 0 ~    (查看1级目录的信息)
                                    $ du -h -d 1 ~    (查看2级目录的信息)
                               
                               
使用dd命令创建虚拟镜像文件
从/dev/zero设备创建一个容量为256M的空文件: $ dd if=/dev/zero of=virtual.img bs=1M count=256
                                            $ du -h virtual.img
使用mkfs格式化磁盘
输入sudo mkfs 然后按下Tab键,可以看到很多以mkfs为前缀的命令
下面将虚拟磁盘镜像格式化为ext4文件系统:
$ sudo mkfs.ext4 virtual.img

mount:查看主机已经挂载的文件系统         $sudo mount

挂载真正的磁盘到目录树  mount [options][source][directory]
常用操作: mount[-o[操作选项]] [-t 文件类型] [-w|--rw|--ro][文件系统愿][挂载点]

如:挂载虚拟磁盘镜像到/mnt目录:$ mount -o loop -t ext4 virtual.img/mnt
    以只读方式挂载: $ mount -o loop --ro virtual.img /mnt
                或者 $ mount -o loop ro virtual.img /mnt
             

使用umount命令卸载已挂载磁盘   $ sudo umount /mnt
    

==================================linux下的帮助命令=================================

$ type exit     结果  xxx is a shell builtin 内建命令

$ type service  结果 xxx is /usr/sbin/xxx 外部命令
 
$ type ls       结果 xxx is an alias for xx --xxx  得到alias结果


===================================linux任务计划crontab=================================================
通过crontab命令,可以在固定的间隔时间执行指定的系统指令或shell script脚本

#开头的都是注释

====================================命令执行顺序控制与管道=============================================================   
一次性把命令输入完,让他自己去依次执行命令,使用;来完成。
比如:  $ sudo apt-get update;sudo apt-get install some-tool;some-tool

管道表现出来的形式:将前面每一个进程的输出直接作为下一个进程的输入

过滤程序常用匿名管道
源程序中常用具名管道


查看/etc目录下的文件和目录,用ls
$ ls -al /etc

用管道
$ ls -al /etc |less   通过管道将前一个命令的输出作为下一个命令的输入,然后一行一行看。

用cut命令,打印每一行的某一字段



grep命令的一般形式:grep[命令选项]...用于匹配的表达式[文件]...

$ grep -rnI "shiyanlou" ~
-r:表示递归搜索子目录的文件,-n表示打印匹配项的行号,-I忽略二进制文件。
在匹配字段中使用正则表达式:  $ export | grep ".*yanlou$"  $表示一行的末尾


wc命令,计数工具
用于统计并输出一个文件中行、单词和字节的数目 比如输出/etc/passwd文件的统计信息
$ wc /etc/passwd

uniq:用于过滤或者输出重复行,只能去连续重复的行,不是全文去重。
可以先排序,再过滤


========================================简单的文本处理============================================================
tr:删除一段文本信息中的某些文字。或者将其进行转换。
tr [option]...set1[set2]

-d:删除和set1匹配的字符,注意不是全词匹配也不是按字符顺序匹配。
-s:去除set1指定的在输入文本中连续并重复的字符。
如: $ echo 'hello shiyanlou' | tr -d 'olh'  结果:e siyanu
    $ echo 'hello' | tr -s 'l'  结果:helo
    $ echo 'shiyanlou' | tr '[a-z]' '[A-Z]'  结果:SHIYANNLOU

col:可以将tab换成对等数量的空格键,或反转这个操作
col [option]
-x:将Tab转换为空格
-h:将空格转换为Tab(默认选项)


将tab转换为空格
$cat -A /etc/protocols|tail -n 5
$cat /etc/protocols | col -x |cat -A |tail -n 5


paste:与join命令类似,不对比数据的情况下,简单地将多个文件合并一起,以tab隔开
paste [option] file...

-d:指定合并的分隔符,默认为tab
-s:不合并到一行,每个文件为一行

$ echo hello >file1
$ echo shiyanlou > file2
$ echo www.shiyanlou.com >file3
$ paste -d':' file1 file2 file3   合并的分隔符为:
$ paste -s file1 file2 file3


=====================================数据流重定向=====================================================
>  或 >>  从左到右   将标准输出导向一个文件或追加到一个文件中
<  或 <<  从右到左

cat:用于读取指定文件的内容并打印到终端输出
echo:用于字符串的输出


mkfs  -t  ext3  /dev/sda5   是把sda5格式化为ext3文件系统
fdisk -l   显示磁盘的详细信息




tail 命令:用于查看文件内容,最基本的是cat 、 more 、 less













 

posted on 2017-07-18 15:51  步行者811  阅读(152)  评论(0编辑  收藏  举报

导航