0.linux入门/进阶命令

目录

Linux命令入门

01.linux进阶命令1_查找  

02.linux进阶命令2_压缩与解压


Linux命令入门

问题:
除了图形界面,ubuntu下面有没有其他方式也可以创建目录、创建文件?
回答:
通过linux命令

linux命令,是每一个linux学习者必须掌握的基础知识,入门阶段掌握常用的一些命令即可。

pwd        :显示当前所在的目录
ls        :显示当前目录下的文件
cd        :切换路径
          cd .. 返回到上一级路径
mkdir    :新建目录
rmdir    :删除目录
touch    : 新建文件
cp        :复制文件    
rm        :删除文件      
cat        :将文件内容显示到终端中
clear    :清除屏幕的显示内容

在终端中输入linux命令,最终会执行相应的应用程序,
这些应用程序一般在/bin/或者/sbin目录


用户在终端中输入linux命令,然后终端会将用户输入传递给shell应用程序,
shell解析后会执行相应的应用程序。
而shell就是通过终端来接受用户输入,然后执行相应的应用程序。


用户只需要关心自己输入的linux命令是否正确就可以了。
其他的事情shell已经帮助我们做好了。


//========================================================
命令提示符,显示了
1)当前登录的用户名
2)用户当前所在的路径

//========================================================
linux命令的格式
    命令   [选项]  [参数]

举例:    
    ls
    ls -l
    ls -l /home

1)命令这一部分肯定是存在
2)选项和参数不一定存在,可有可无。
  选项和参数取决于你使用该命令实现的具体目的。
3)选项是以"-"来指明的。  
4)命令、选项、参数之间是以空格来隔开的,
  一个或多个空格都视为1个空格。
  如:ls -l /home与ls   -l     /home的目的是一样的。
5)完成linux命令输入后,按下enter键,即可执行该命令。

//========================================================
如ls命令有选项-l,那么ls到底有哪些选项呢?可以通过man ls来查看。
ls命令的选项有很多,入门阶段先掌握ls命令的-l、-a、-h等常用选项。
在后面中,也是先介绍linux基础命令(pwd、cd、ls等)的常用选项。

//========================================================


pwd:打印当前所在的路径
cd :切换路径
    cd  ~切换到当前用户的家目录
    cd .  切换到当前路径
    cd .. 切换到上一级路径
    cd ../.. 切换到上上级路径(其中:在linux中路径分隔符为斜杠/)
    cd -  切换到上一次的路径
    
linux目录结构
/           ------------------根目录/
|------bin  ------------------/bin
|------home ------------------/home
    |------book ------------------/home/book
    |------Guest ------------------/home/Guest
|------usr  ------------------/usr
    |------lib ------------------/usr/lib
    |------bin ------------------/usr/bin

举例:
/home/book  是绝对路径
相对路径一般以.和..来构成
1)
当前路径为/bin,然后./pwd就是执行了/bin/pwd
2)
当前路径为/home/book/100ask
然后cd ../Videos/就到达/home/book/Videos
cd ../..就到达/home

注意事项:
1)你切换的路径必须保证存在,可以使用ls命令来查看某一个路径下面的所有内容。
2)一定要记得多使用tab键。


//========================================================


ls:列出目录内容
cd切换路径,然后在使用ls来查看目录内容

举例:
   命令   [选项]  [参数]

1)ls
直接ls,则显示当前所在目录的内容

2)ls  目录名
如:ls /home,则指定显示/home的内容
如:ls ~    ,则指定显示/home/book的内容

3)ls  选项
或:ls  选项   目录名
常用的选项:
    -l(long的缩写),显示目录下文件的更详细的信息(文件权限、文件最后修改时间、文件大小)
    -a(all的缩写),显示了隐藏文件
    -h(human-able的缩写),将文件大小以K(KB)、M(MB)、G(GB)来表示
    
    
//========================================================
目录的操作

mkdir:创建目录
    命令  [选项]  [参数]

举例:
1)mkdir   目录名
 mkdir dir0   创建了dir0这个目录
 
 
2)mkdir -p  父目录/子目录
mkdir -p  dir1/dir2
-p(parents的缩写)
连续创建多级目录(父目录和子目录),如果父目录不存在,则需要加入-p参数。


rmdir :删除目录
举例:
1)rmdir  目录名
注意:rmdir不能删除非空目录(非空目录:该目录下面有子目录或者文件)

//========================================================


文件的操作

touch:新建文件
    touch   文件名
举例:
touch file1    在当前目录新建名为file1的文件

注意:
1)同一目录无法创建同名的文件
2)linux的文件名是区分大小写的,如file1和File1是不同文件。
  这一点跟windows不同。
  
  
mv(move的缩写):修改文件(目录)名、移动路径
    mv  旧文件名   新文件名    ====>修改文件名
    如:mv file1 filea将当前目录的文件file1改名为filea
    
    mv  旧目录名   新目录名    ====>修改目录名
    如:mv dir1 dira将当前目录下的目录dir1改为dira
    
    mv  文件名     目录名      ====>移动路径
    如:mv filea dira将当前目录下filea移动到dira子目录
    如:mv filea  ~  将当前目录下filea移动家目录
    如:mv ~/filea  ..将家目录下的fila移动到上一个路径


cp(copy的缩写):复制文件(目录)
1)    cp  源文件名   目标文件名
    举例:
    cp File1  file2将当前目录下的文件File1拷贝成file2

2)    cp  源文件名   目标目录名
    举例:
    cp file2 dira/将当前目录下的文件file2拷贝到dira子目录
    
2)    cp  源目录名   目标目录名    
    举例:
    cp -r dira dirb复制dira目录下的所有内容到dirb
    其中,-r参数是递归复制
    
    cp -i file2 dira如果dira目录下面有同名的file2,加入-i参数就会
    要求你确认是否覆盖同名的文件
    
注意:cp的常用参数有:-i,-r,-f,-d等,在后面讲解了linux权限之后,我们会加深cp这个命令的讲解。


rm(remove的缩写):删除文件(目录)
    rm   [选项]   [文件名 | 目录名]

常用选项:
    -i(interactive(交互)的缩写),删除文件(目录)之前,要求你确认是否同意删除
    -r(recursive(递归)的缩写),递归删除指定目录下的子目录和文件
    -f(force(强制)的缩写),强制删除    

举例:
    rm File1       删除当前目录下的文件File1
    rm -i file2    删除文件file2,删除前要求你确认是否同意删除,其中y表明同意删除,n表示取消删除
    rm -r dira     删除目录dira
    rm -ir dirb    删除目录dirb,删除前要求你确认是否同意删除,其中y表明同意删除,n表示取消删除  

注意:
1)删除文件(目录)前,确定该文件(目录)是否可以被删除。
2)rm的常用参数有:-i,-r,-f等,在后面讲解了linux权限之后,我们会加深rm这个命令的讲解。


//========================================================

文件的查看和编辑
1)cat  查看文件内容
    cat  文件名

举例:
    cat file1          将file1的内容打印到标准输出中(默认标准标准输出指向终端)
    cat file1 file2    将file1和file2的内容串联并依次全部打印到标准输出中
    cat -n file1       显示内容并在内容前显示行号。
    
类似的查看命令:more、less、head、tail等后面讲解    


2)gedit图形应用程序的编辑器

3)vi 编辑器


//========================================================
清除屏幕
clear:刷新屏幕,保留历史命令操作记录
说明:此命令本质上只是让终端向后翻一页,
当向上滚动鼠标时,还是可以看到之前命令的操作记录


reset:重新初始化屏幕,清除历史命令操作记录


//========================================================


man、info、--help

1)man使用的最多
ls 常用选项为-l、-a、-h
可以通过man   ls来查看这些选项的含义。

举例:
    man   man  查看man手册的说明
    man  ls    当没有指定使用那一页,默认使用第1页
    man 1 ls
    man 1 gcc  gcc是一个应用程序,在linux中一般使用gcc编译器来编译c/c++语言的程序
    open/write/read/close等等都是系统调用
    man 2 open   查看系统调用open的man手册说明
注意:
    man手册的9册内容的侧重点,最好记一下。

    
2)info 
如info ls

3)--help
如ls --help


01.linux进阶命令1_查找  

find
目的:查找符合条件的文件

1)在那些目录中查找
2)查找的内容

格式:  find    目录名    选项    查找条件

举例:
1)find /work/001_linux_basic/dira/  -name "test1.txt"
说明:
    a)/work/001_linux_basic/dira/指明了查找的路径
    b)-name表明以名字来查找文件
    c)"test1.txt",就指明查找名为test1.txt的文件
同理:
    find /work/001_linux_basic/dira/  -name "*.txt"    
    查找指定目录下面所以以.txt结尾的文件,其中*是通配符。
    find /work/001_linux_basic  -name "dira"    
    查找指定目录下面是否存在dira这个目录,dira是目录名。

注意:
1)如果没有指定查找目录,则为当前目录。
    find . -name "*.txt"   其中.代表当前路径 
    find  -name "*.txt"
    都是一样的功能
    
2)find还有一些高级的用法,如查找最近几天(几个小时)之内(之前)有变动的文件
 find /home -mtime -2  查找/home目录下两天内有变动的文件    

    
grep
目的:使用grep命令来查找文件中符合条件的字符串
格式:grep  [选项]     [查找模式]  [文件名]

将dira目录的test1.txt和dirb目录的test1.txt都含有如下内容:
aaa
AAAAAA
abc
abcabcabc
cbacbacba 
match_pattern
nand->erase

    
查找字符串时希望显示如下内容:
1)所在的文件名----grep查找时默认已经显示目标文件名
2)所在的行号------使用-n选项

grep -rn "字符串"  文件名
r(recursive):递归查找
n(number):显示目标位置的行号
字符串:要查找的字符串
文件名:要查找的目标文件,如果是*则表示查找当前目录下的所有文件和目录    

举例:
    grep -n "abc" test1.txt   在test1.txt中查找字符串abc
    grep -rn "abc" *          在当前目录递归查找字符串abc
    
注意:
1)可以加入-w全字匹配。
 

file
目的:识别文件类型
格式: file   文件名

linux下一切皆文件

举例:
file ~/.bashrc     为ASCII 编码的text类型
file ~/.vimrc      为UTF-8 Unicode 编码的text类型
file ~/Pictures/*  如图形文件JPEG/PNG/BMP格式
file ~/100ask/     为directory表明这是一个目录
file /bin/pwd      出现 ELF 64-bit LSB executable,即为ELF格式的可执行文件
file /dev/*        出现character special(字符设备文件)、 block special(块设备文件)等


which和whereis
目的:查找命令或应用程序的所在位置
格式:which  命令名/应用程序名

在终端上执行pwd实际上是去执行了/bin/pwd
举例:
    which pwd 定位到/bin/pwd
    which gcc 定位到/usr/bin/gcc
    whereis  pwd查找到可执行程序的位置/bin/pwd和手册页的位置/usr/share/man/man1/pwd.1.gz


02.linux进阶命令2_压缩与解压


压缩
1.压缩的概念
1)压缩的目的:
    在网络传递文件时,可以先将文件压缩,然后传递压缩后的文件,从而减少网络带宽。
    接受者接受文件后,解压即可。
    
2)压缩的类型
   有损压缩、无损压缩。
   a)有损压缩:
    如mp4视频文件,即使压缩过程中,减少了很多帧的数据,
    对观看者而言,也没有影响。当然mp3音乐文件也是有损压缩。
   b)无损压缩:
    如普通文件的压缩,为了保证信息的正确传递,
    不希望文件经过压缩或解压后,出现问题。

2.linux下常用的压缩命令
小节:    
单个文件的压缩(解压)使用gzip 和bzip2 
多个文件和目录使用tar   


gzip的常用选项
-l(list)    列出压缩文件的内容
-k(keep)    在压缩或解压时,保留输入文件。
-d(decompress)    将压缩文件进行解压缩

1)查看
    gzip  -l 压缩文件名
    比如:gzip -l pwd.1.gz

2)解压
    gzip -kd  压缩文件名
    比如:gzip -kd pwd.1.gz
    该压缩文件是以.gz结尾的单个文件
    
3)压缩
    gzip -k  源文件名
    比如:gzip -k mypwd.1
    得到了一个.gz结尾的压缩文件

注意:
1)如果gzip不加任何选项,此时为压缩,压缩完该文件会生成后缀为.gz的压缩文件,
并删除原有的文件,所以说,推荐使用gzip -k  来压缩源文件。
    
2)相同的文件内容,如果文件名不同,压缩后的大小也不同。

3)gzip只能压缩单个文件,不能压缩目录。

    
提示:
man pwd会解压/usr/share/man/man1/pwd.1.gz这个文件,
然后读取该文件中固定的格式的一些信息,然后显示到终端中。

bzip2来压缩单个文件
bzip2的常用选项
-k(keep)    在压缩或解压时,保留输入文件。
-d(decompress)    将压缩文件进行解压缩

1)压缩
    bzip2  -k  源文件名
    比如:bzip2 -k mypwd.1
    得到一个.bz2后缀的压缩文件
2)解压
    bzip2  -kd  压缩文件名
    bzip2 -kd mypwd.1.bz2    

注意:
1)如果bzip2不加任何选项,此时为压缩,压缩完该文件会生成后缀为.bz2的压缩文件,
并删除原有的文件,所以说,推荐使用bzip2 -k  来压缩源文件。
2)bzip2只能压缩单个文件,不能压缩目录。

单个文件的压缩使用gzip或bzip2,
压缩有两个参数:1)压缩时间  2)压缩比
一般情况下,小文件使用gzip来压缩,大文件使用bzip2来压缩。
mypwd.1源大小是1477字节,
    gzip压缩后mypwd.1.gz是877字节,
    bzip2压缩后mypwd.1.bz2是939字节。
myls.1源文件大小7664字节,
    gzip压缩后myls.1.gz是3144字节,
    bzip2压缩后myls.1.bz2是3070字节。    

    
//============================================================
gzip、bizp2只能对一个文件进行压缩,而不能对多个文件和目录进行压缩。
所以需要tar来对多个目录、文件进行打包和压缩。


tar常用选项
-c(create) 表示创建用来生成文件包
-x:表示提取,从文件包中提取文件
-t可以查看压缩的文件。
-z使用gzip方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。
-j使用bzip2方式进行处理,它与”c“结合就表示压缩,与”x“结合就表示解压缩。
-v(verbose)详细报告tar处理的信息
-f(file)表示文件,后面接着一个文件名。 
-C  <指定目录>    解压到指定目录


1.tar打包、gzip压缩
1)压缩
    tar -czvf   压缩文件名   目录名
    如:tar czvf dira.tar.gz  dira

注意:
tar  -czvf与tar  czvf是一样的效果,所以说,后面统一取消-。

2)查看
    tar tvf   压缩文件名
    如:tar tvf dira.tar.gz

3)解压
    tar xzvf 压缩文件名
    tar xzvf 压缩文件名  -C  指定目录
    如:tar xzvf dira.tar.gz   解压到当前目录
    如:tar xzvf dira.tar.gz   -C  /home/book   解压到/home/book
    
    
2.tar打包、bzip2压缩
1)压缩
    tar cjvf   压缩文件名   目录名
    如:tar cjvf dira.tar.bz2  dira
    
2)查看
    tar tvf   压缩文件名
    如:tar tvf dira.tar.bz2

3)解压
    tar xjvf 压缩文件名
    tar xjvf 压缩文件名  -C  指定目录
    如:tar xjvf dira.tar.bz2   解压到当前目录
    如:tar xjvf dira.tar.bz2 -C  /home/book  解压到/home/book

你可能感兴趣的:(Linux系统编程,linux)