Linux最基础

来源:互联网 发布:爱福窝软件多少钱一年 编辑:程序博客网 时间:2024/06/05 04:54
软件包安装的时候,会经常用到   tar   -zxvf   Japan.tar.gz
如果要做LAMP环境的编译,建立一个LAMP源代码包构建的PHP生产环境。下载的包都是  tar.gz  这样的源代码包

创建目录   mkdir     创建文件    touch
命令的基本格式:
  [root@localhost ~]#
      root:       当前登陆用户
      localhost:     主机名
      ~:      当前所在目录(家目录)
      #:      超级用户的提示符
      普通用户的提示符是 $   
- 表示一个文件
d 表示一个目录
l 小写的 L,表示一个软连接。



  -rw-r--r--.    (最后还有个点)  
         .  代表ACL权限 --- 从centos6才有的权限
         - 文件类型   (-文件    -d目录    | (小写的L) 软链接文件)

               文件  -----普通文件
               目录
               软链接  --- 其实就是个快捷方式
               块设备文件
               字符设备文件
               套接字文件
               管道文件

         rw-    u所有者
         r--     g所属组
         r--     o其他人
 rm -rf  *.zip ---  删除所有以   .zip  结尾的文件


常用目录的作用:
     /              根目录
     /bin         命令保存目录(普通用户就可以读取的命令)
     /boot      启动目录,启动相关文件
     /dev        设备文件保存目录
     /etc         配置文件保存目录
     /home    普通用户的家目录
     /lib          系统库保存目录
     /mnt       系统挂载目录
     /media    挂载目录
     /root        超级用户的家目录
     /tmp        临时目录
     /sbin        命令保存目录(超级用户才能使用的目录)
     /proc        直接写入内存的
     /sys          
     /usr          系统软件资源目录
    /usr/bin/     系统命令(普通用户)
    /usr/sbin/     系统命令(超级用户)
     /var          系统相关文档内容
注意:proc 和 sys 目录不能直接操作,这俩个目录保存的是内存的挂载点。不可以给这俩个里面写数据;(重启后内存中的数据就会丢失;如果内存满了容易造成系统崩溃)
所以:可以在家目录root   或   home  ,以及tmp目录下随便放内容



2个bin目录普通用户可以执行的
2个sbin   只有超级用户可以执行。
boot  启动目录,如果写满系统将无法启动
etc     系统配置文件目录。(学习服务时候会多次用到)
home   普通用户的家目录
root      超级用户的家目录
lib        函数库的保存位置



ls 显示该目录下所有
ls -l   显示该目录下所有文件及详情
ls -lh 以人性化大小显示文件
          -a  显示所有文件,包括隐藏文件
                    ls -a
          -l   显示详细信息
                    ls -l
          -d  查看目录属性
                    ls -ld /etc/
          -h  人性化显示文件大小
                    ls -lh
          -i   显示inode   i节点
                    ls -i



二、 文件处理命令;
          1、目录处理命令(windows文件夹的概念)
               mkdir -p [目录名]
                    mkdir test1
                    mkdir -p test2/mydir  --- 其中:-p递归创建
                    
               切换目录:
                     cd  [目录名]
                     cd ~   进入当前用户的家目录
                     cd
                     cd -    进入上次目录
                     cd ..    进入上一级目录
                     cd .     进入当前目录
                删除文件或目录: rm  本来就是删文件的 ,加上  -r 就可以删目录了
                    rm -rf [文件或目录]
                    -r    删除目录
                    -f    强制
                       rm -rf /tem/      表示删除tem这个目录
                       rm -rf /tem/*     表示删除tem下的所有内容

复制命令:cp
       -r     复制目录
   cp -r japan/ /tmp/    ---- 将japan目录复制到 tmp下
       -p     连带文件属性复制
       -d     若源文件是链接文件,则复制链接属性
       -a     相当于   -pdr
       -f     强行复制文件或目录,不论目标文件或目录是否已存在。
           


剪切 或 改名命令:
     mv  如果源文件 与 目标文件在同一目录 就是改名
      如果源文件  与 目标文件没有在同一目录 ,就是剪切
        mv [源文件或目录]  [目标目录]
文件处理命令
       文件处理命令: ln
       ln  -s [源文件] [目标文件]  ----软连接



3、链接命令   ln
硬链接特征:
       1、拥有相同的i节点和存储的 block块,可以看作是同一个文件
       2、可以通过i节点识别
       3、不能跨分区
       4、不能针对目录使用
       
     软链接特征:(推荐用:灵活,限制少,告诉这是个软连接)

      1、类似windows快捷方式
      2、软链接拥有自己的 i  节点 和 block块,但是数据块中只保存元文件的文件名和  i 节点号,并没有实际的问津数据
      3、lrwxrwxrwx      l --表示:软链接
           软链接文件权限都为 :  rwxrwxrwx
      4、修改任意文件,另一个都改变
      5、删除源文件,软连接不可用

     
软链接的读写权限,最终归于目标文件的权限;                                                                                   
                    

  echo 111 >> /root/blos     向目标文件中写入数据
  cat /root/blos             查看目标文件中写入的数据

注意:在设置软连接的时候,只有在同一目录下不用写绝对路径,否则需要写绝对路径。不然在目标文件中的软连接会报错 。所以: 软连接   必须要写绝对路径。如果目标文件被移动,软连接会报错,找不到目标文件
          


4、 文件搜索命令:命令which   whereis命令搜索
    1、文件搜索命令    

     locate --- 搜索速度快,搜索不到新创建的文件  (即:touch   cangls),只能搜索文件名。
          缺点: 只可以按照文件名搜索;
          locate 文件名       ----- 在后台数据库中按文件名收缩,搜索速度更快
          /var/lib/mlocate  ------locate命令所搜索的后台数据 ,默认1天一个更新
          updatedb              ---- 强制更新数据库
                   
      
  其中:whereis  和 which  都会遵守这个筛选规则
 


whereis: 只能搜索系统命令; 及帮助文档的位置

which选项:----可以查找到命令的别名;
             -b:   只查找可执行文件
             -m:只查找帮助文件
                               
which ls ---表示   ls 命令是干嘛的
which  文件名   搜索命令所在路径及别名;
                
PATH 环境变量:   定义的是系统搜索的命令的路径
            [root@localhost ~]#  echo $PATH   ---- 显示环境变量 (路径);
               
注意: 平常输入的命令都在该 path 路径下,如果重新定义的命令需要使用绝对路径,要么就放到 path 路径



文件搜索命令    
find --- 如果在根目录中使用,会遍历根下的所有数据遍历一边。 耗费资源--非常强大;
         find  [搜索范围]  [搜索条件]
         find  /  -name  install.log   ------按文件名搜索,搜索根下面,搜索install.log的文件
注意: 避免大范围搜索,会非常耗费系统资源
find  是在系统当中搜索符合条件的文件名。如果需要匹配,使用通配符匹配,通配符是完全匹配。
Linux中的通配符,
   *   匹配任意内容
   ? 匹配任意一个字符
    []  匹配任意一个中括号内的字符
     
    

 find /root/ -name "ab[cd]" --- 表示搜索以abc  或  abd 的文件。是的文件,不是所有。
 find  /root/ -name "*[bc]" --- 搜索所有以  b  或   c  结尾的文件。

 find  /root  -iname   install.log  --- 不区分大消息
 find  /root  -user  root ---- 按照所有者搜索
 find  /root  -nouser ----  查找没有所有者的文件   在proc  和   sys  产生的文件可能没有所有者是正常的,内存的挂载点。第二种情况:外来文件也不会有所有者(光盘,u盘)。 除此之外在Linux中所有的文件都应该有所有者,否则就是垃圾文件


  find  /var/log/   -mtime  +10
           查找10天前修改的文件
           -10   10天内修改文件
           10    10天当前修改的文件
           +10   10天前修改的文件
         -atime  文件访问时间
         -ctime  修改文件属性
         -mtime  修改文件内容
怎么理解 10:往前数第十天,就是10, 第十天到现在的就是  -10.  第十天前的就是 +10
                                                                       
find   .  -size  25k   
注意:这里的k必须是小写。如果不加单位k,查找的是扇区的大小  (25*512)
          -25k   小于25kb的文件     
           25k    等于25kb的文件
          +25k  大于25kb的文件
  如果查找  兆 大小的文件   M     M必须是大写。
           find   .  -size  25M  
           find  .  -inum   262422    --- 查找 i  节点是  262422 的文件
            
            find  /etc -size  +20k  -a  -size -50k ---查找etc目录下  文件大小   大于 20k  并且 小于  50k 的文件。

       -a   and   逻辑与,俩个条件都满足
       -o   or      逻辑或,俩个条件满足一个即可。
       -type: 根据文件类型查找;
             f文件   d目录    l软连接文件
       -inum :根据i节点查找

这样使用find查找到的文件,只显示文件,并不显示文件的详细信息。所以需要下面   组合 命令:
     [root@localhost ~]#  find  /etc  -size  +20k  -a   -size  -50k   -exec  ls  -lh  {}\;
            查找 etc 目录下,大于20k,并且小于 50k的文件,并且显示详细信息。
      -exec/-ok  命令2  {}\;  对搜索结果执行操作-------也就是前面的命令结果   交由 -exec中  命令2 处理。
切记: 如果有  -exec  后面必须有   {}\;  (命令2的条件必须是能处理前面的命令才可以放在这里执行。)

 

du命令:
     用于统计指定目录(或文件所占用磁盘空间的大小)
常用选项:
     -a     统计磁盘空间占用时包括所有的文件,不仅仅统计目录
     -s     只统计所占用空间总的大小(Summary),而不是统计每个子目录、文件的大小。
     -h     以人性化方式显示(默认kb,不显示单位),显示统计结果
du   -sh    /var/log  --- 统计log目录下所有文件总共占用的空间大小。


3、 字符串收缩命令  grep---常用命令。在制定的文件内容中查找指定的行,显示。
       
grep  -v  "sd" anaconda-ks.cfg      
        -v  取反,显示不包含sd的字符串;    
        -i   不区分大小写
 
去掉以#开头的行;排除指定字符串所在的行。


 4、find命令 与  grep 命令的区别
                         find命令: 在系统当中搜索符合条件的  文件名;
                         grep命令: 在  文件  当中搜索符合条件的  字符串;
man 的级别
   1 : 查看命令的帮助
   2 : 查看可被内核调用的函数的帮助
   3 : 查看函数和函数库的邦族
   4 : 查看特殊文件的帮助(主要是/dev 目录下的文件)
   5 : 查看配置文件的帮助
   6 : 查看游戏的帮助
   7 : 查看其他杂项的帮助
   8 : 查看系统管理员可用命令的帮助
   9 : 查看和内核相关文件的帮助

 



 如下图: 其实可以通过whereis passwd 可以查看到 passwd 命令的等级,以及文件的位置


查看命令拥有哪个级别的帮助
    man  -f  命令    相当于     whatis  命令 
举例:调用相应的帮助文档
        man  -5  passwd
        man  -4  null
        man  -8  ifconfig
注意: 如果一个命令有多个等级,必须制定 等级,否则打开的是最低的那个等级

查看和命令相关的所有帮助:man
      man  -k  命令    相当于    apropos  命令
      例如:  apropos  查找的是所有包含  的帮助;模糊查找所有包含的  帮助
                         apropos   passwd
     man查看配置文件帮助时: man    配置文件名



命令   --help: 查找命令选项帮助,有中文注释;
shell  内部命令帮助:
      help  查看shell内部命令的帮助
例如:
     whereis   cd   --- 去顶是否是shell内部命令
     help  cd    --- 转门获取内部命令帮助

man 获取命令的帮助 而 :help 获取内部命令的帮助  如:cd就是内部命令。
whereis  命令  -----  如果找不到执行命令的位置就是内部命令;
               
更多的使用man 最主流的帮助文档   info 了解知道就行    
   如: man      ls          --help
 详细命令帮助info    
    info   命令
    -  回车  : 进入子帮助页面(带有*号标记)
    -  u        :  进入上层页面
    -  n        :  进入下一个帮助小节
    -  p        :  进入上一个帮助小节
    -  q        :  退出

whatis  ls:查看命令简短的信息。
查看配置文件的简短信息:
格式:apropos   配置文件
     例如: apropos  services



多文件内容查看:
    查看文件所有的内容:
less   :  如:less   /etc/services
备注:n: 下一页  N:上一页  page up :上一页   上箭头:上一行     搜索关键字:/service(在其打开直接输入)

查看文件前几行:
          head:显示文件前几行。如:head  -     11  /etc/services  --显示前11行 

查看文件后几行:
        tail  -3  /etc/services  --- 查看最后3行。
        tail  -f   /etc/services  --- 动态显示文件末尾内容

注意:head 和 tail 如果不指定 -n  的话,默认都是显示10行

5、 压缩文件的命令:
最常用的5种,在Linux中还有其他格式。
     常用压缩格式:  .zip    .gz    .bz2
     常用压缩格式:  .tar.gz     .tar.bz2

这种格式.zip   跟windows中的zip是通用的。
.zip格式   window中的.zip与  Linux中的 .zip是可以互相通用的
         zip  压缩文件名   源文件 ----- 压缩文件
        zip   -r  压缩文件名   源目录 --- 压缩目录

.zip 格式解压缩
     unzip 压缩文件    ---- 解压缩.zip文件
                    
gz格式压缩
     gzip  源文件  ----- 压缩为 .zg 格式的压缩文件,源文件会消失
     gzip  -c  源文件  >  压缩文件   ----- 压缩为 .gz 格式,源文件保留
例如: gzip  -c  cangls  >  cangls.gz
>   --- 表示:把命令的结果写入指定文件
     
gzip  -r  目录  ----- 压缩目录下所有的子文件,但是不能压缩目录
     
 这里会压缩内部的所有的文件,包括该目录下的   子文件夹下的文件。(不能打包当前的目录)     
                      
.gz格式 解压缩   如果解压缩的是  目录    在 gzip  或   gunzip 后 加   -r  即可。
[root@localhost ~]# gzip  -d  压缩文件    ---- 解压缩文件  压缩包不会保留
[root@local host ~]# gunzip  压缩文件      ---- 解压缩文件     
    



.bz2 格式压缩 
[root@localhost ~]#  bzip2  源文件    -----  压缩为  .bz2  格式,不保留源文件
[root@localhost ~]#  bzip2  -k  源文件   ---  压缩之后保留源文件
注意: bzip2  命令不能压缩目录。
         
.bz2格式解压缩
[root@localhsot ~]#  bzip2   -d   压缩文件  --- 解压缩,  -k   保留压缩文件
[root@localhost ~]#  bunzip2   压缩文件   ---- 解压缩,  -k    保留压缩文件
注意:因为其压缩比比较惊人,所以,bzip2经常使用在压缩大文件时,使用。
总结: .zip    .gz    .bz2
   .zip   压缩目录,压缩文件没有问题。
   .gz    可以压缩文件;如果压缩目录的话(需要加-r),会压缩其内部   所有的   子文件。不能压缩目录
   .bz2   如果压缩目录会直接报错。
                         


3、常用命令   .tar.gz     .tar.bz2   ----打包 打包后可使用上面3中压缩格式压缩

打包命令   tar:
    tar   -cvf   打包文件名    源文件
         选项:-c:打包
               -v:显示过程
               -f:指定打包后的文件名
               -x:解开 .tar 格式的包文件
         例如: tar  -cvf   longls.tar    longls

解打包命令:
    tar   -xvf   打包文件名
                选项 : -x: 解打包
                例如: tar  -xvf  long.tar
常用选项:
     -p:打包时保留原始文件及目录的权限
     -t:列表查看包内的文件
     -C:解包时指定释放的目标文件夹
     -z:调用 gzip 程序进行压缩或解压
     -j:调用 bzip2 程序进行压缩或解压

 .tar.gz压缩格式:
         其实   .tar.gz   格式是先打包为.tar格式,再压缩为  .gz  格式
  tar  -zcvf   压缩包名.tar.gz   源文件   ----- 进行压缩
          选项:   -z:   压缩为  .tar.gz  格式
          
 tar  -zxvf   压缩包名.tar.gz      ---- 进行解压缩
         选项:  -x:   解压缩.tar.gz 格式
          
多文件压缩:
          
 解压缩:
           
查看压缩的内容:(只查看,不解压
 
常用:
    .tar.bz2 压缩格式:
        tar  -jcvf  压缩包名.tar.bz2   源文件
             选项: -z : 压缩为  .tar.bz2  格式

        tar  -jxvf  压缩包名.tar.bz2
             选项: -x:  解压缩 .tar.bz2  格式

压缩为: .tar.bz2  并解压到指定目录
 
注意: windows当中的  .rar  格式是没办法在Linux中解压缩的。

压缩格式以及解压缩格式必须要掌握的压缩方式:

打包时,忽略指定的文件:

4、关机和重启命令   
     ctrl + c 终止命令
       shutdown命令
          [root@localhost ~]# shutdown  [选项]  时间                        
选项:  -c: 取消前一个关机命令    例如: [root@localhost ~]# shutdown -c
            h: 关机
           -r:  重启        例如:[root@localhsot ~]# shutdown  -r  now
 将关机命令放入后台执行:[root@localhost ~]# shutdown -r  05:30 &    ---加一个  &(代表后台运行)  符号
  
其他关机命令:---  知道就好
            [root@localhost ~]# halt
            [root@localhost ~]# poweroff    ---相当于直接断电
            [root@localhost ~]# init 0
      注意: 这3中命令都不安全,不会在关机的时候保存数据
其他重启命令:
         [root@localhost ~]# reboot    --- 相对安全;
         [root@localhost ~]# init 6    --- 尽量不要用
     备注: 上述出现的   init  0   init 6  :其中的数据  0   和 6 :称做系统运行级别:

系统运行级别:
            0     关机
            1     单用户   --- 相当于windows当中的安全模式,做系统修复,如忘记密码
            2     不安全多用户,不含NFS服务 --- NFS是Linux当中一个文件共享服务。
            3     安全多用户   --- 其实就是默认的界面。包含NFS服务。
            4     未分配
            5     图形界面  --- 前提是必须有图形界面才可以启动。如果安装了,则可以进入图形界面。
            6     重启
查询当前系统运行的级别:
      [root@localhost ~]# runlevel;
                      
表示:在进入3级别界面前,是N N表示null 也就是空字符界面。
如果同时安装了  图形界面   默认启动,进入的是  字符界面,还是  图形界面;(这个可以设置

[root@localhost ~]# cat  /etc/inittab    --- 修改系统默认运行级别---下面是显示的内容
                              id:3initdefault:
退出登陆命令:
     [root@localhost ~]# logout    ---- 就会释放远程登陆的终端号。                                        


5、查询与自动挂载
       [root@localhost ~]# mount    ---查询系统中已经挂载的设备                      
        [root@localhost ~]# mount -a   --- 依据配置文件   /etc/fstab  的内容,自动挂在                           
注意: 像,U盘,光盘,不推荐自动挂载,因为每次linux启动的时候都会去检查,如果有一次检查不到系统将crash
                   

mount挂载命令格式
        [root@localhost ~]# mount [-t 文件系统] [-o 特殊选项] 设备文件名 挂载点  ---挂载点为空白目录
         -t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660等文件系统:iso9660为光盘类型(硬记),
         -o 特殊选项:可以指定挂载的额外选项
示例:mount -o remount,noexec /home/    挂载选项无法访问,没有权限

  特殊选项列表:
               atime / noatime   更新访问时间/不更新访问的时间,访问分区文件时,是否更新新文件的访问时间,默认为更新
               async / sync      异步/同步,默认为异步
               auto / noauto     自动/手动,mount -a 命令执行时,是否会自动安装  /etc/fstab 文件内容挂载,默认为自动
               defaults          定义默认值,相当于 rw, suid , dev , exec , auto , nouser , async 这七个选项
               exec / noexec     执行/不执行 ,设定是否允许系统中执行可执行文件,默认 exec 允许
               remount           重新挂载已经挂载的文件系统,一般用于指定 修改特殊权限。
               rw / ro           读写/只读,文件系统挂载时,是否具有读写权限,默认 rw
               suid / nosuid     具有/不具有SUID权限, 设定文件系统是否具有SUID和SGID的权限,默认是具有
               user / nouser     允许/不允许普通用户挂载,设定文件系统是否允许普通用户挂载,默认是不允许,只有root可以挂在分区。
               usrquota          写入代表文件系统支持用户磁盘配额,默认不支持。
               grpquota          写入代表文件系统支持组磁盘配额,默认不支持。




6、Linux中  进入编写脚本文件
      [root@localhost home]# vi hello.sh
       [root@localhost ~]#  chmod  755  hello.sh ---  赋予 hello.sh  执行权限
                             
如果是纯linux脚本可以不写,但是有嵌套的时候必须写
          



7、 光盘挂载:
          
[root@localhost ~]# mkdir /mnt/cdrom/    --- 建立挂载点

[root@localhsot ~]# mount -t iso9660 /dev/sr0 /mnt/cdrom   ---挂载光盘
[root@localhost ~]# mount /dev/sr0 /mnt/cdrom   ---可以省略  -t iso9660 系统已知道



10、卸载命令 ----- 不可省略,用完之后,必须先卸载。
[root@localhost ~]# umount 设备文件或挂载点
[root@localhsot ~]# umount /mnt/cdrom
 注意: 挂载光盘或其他盘,一定要卸载。否则弹不出来,如果强制,导致再读取时,数据不正确



11、 挂载U盘     fdisk   分区命令
[root@localhost ~]# fdisk -l ---------查看U盘设备文件名(查看系统当中已经识别的硬盘
      U盘对应的是多少,会在该命令执行后---对应显示出来。一般是  sdb1
 [root@localhost ~]# mount  -t  vfat   /dev/sdb1  /mnt/usb/   -----挂载
 注意: Linux默认是不支持NTFS文件系统的。---也就是  移动硬盘  是不能在Linux中直接挂载的。

 2种解决Linux支持NTFS文件的方案:
     a、 重新编译Linux内核,但是种方法在工作中是不需要的;
     b、 安装  ntfs-3g 的软件。会让Linux默认支持NTFS         
 但是:即使支持了NTFS,也只是只读模式,并不能写入数据   Linux默认的就是只读
 如果用到windows当中的数据都是通过网络传输。


12、 用户信息命令
      1、w         查询当前登陆的用户;
      2、who     只显示当前登陆的用户信息。
      3、查询当前登陆和过去登陆的用户信息-----所有用户登陆的信息。重要
             last   其实访问的是:ls  /var/log/wtmp   ---wtmp是个:二进制文件,
             可以检查是否有异常用户存在。
     4、lastlog   查看所有用户的最后一次登陆时间  ,默认读取的是   /var/log/lastlog 文件内容
              
其中: tty1 表示登陆的终端-----本机终端。虚拟机  本机登陆没有IP
          pts/0   表示第一个远程终端
          -bash  ---- 等待操作
     logout:注销当前用户。


 Shell基础:命令解释器,也就是当前操作的界面。                      
 查看当前的  shell  [root@localhost ~]# echo  $SHELL
分类:     
        1、Bourne Shell:从1979其Unix就开始使用Bourne  Shell,Bourne Shell 的主文件名为   sh. 不支持上下箭头翻看。
       2、当前的Shell ,C  Shell :C  Shell  主要在BSD 版的 Unix 系统中使用,其语法和 C 语言相类似  而得名
1、查看当前支持的Shell :
       
 
      
   界面输出及设置颜色: 开启颜色设置 \e[1;31m   结束颜色:\e[0m
                

          查看调用系统的一些特殊文件:
                    [root@localhost ~]# vim /etc/passwd



 2、 脚本执行方式:
         1、echo 输出命令  --- 如果输出的内容有空格,必须加双引号,其中不可以有 感叹号。感叹号有特殊含义。
               echo  [选项] [输出内容]
                选项:  -e:支持反斜线控制的字符转换。

               \a       输出警告音
               \b       退格键,也就是向左删除键
               \n       换行符
               \r       回车符
               \t       制表符,也就是tab 键
               \v       垂直制表符。
               \0nnn    按照八进制ASCII 码表输出字符。其中0位数字零,nnn 是三位八进制数
               \xhh     按照十六进制ASCII码表输出字符,其中hh是俩位十六进制数
                     

 
   2、第一个脚本

        [root@localhost sh]# vi hello.sh
              #!/bin/bash   这一句必须有
              # the first program    其中#表示注释,但是第一句必须的有。

               echo -e "\e[1;34m 这是输出语句 \d[0m"
  2-1、脚本运行
    赋予执行权限,直接运行。chmod  755  hello.sh   
./hello.sh    --- 或  绝对路径  执行。
    通过Bash调用执行脚本 bash  hello.sh
chmod 755 hello.sh  ---- 赋予脚本执行权限
      
     

    [root@localhost zk]# vi hello.sh
     



3、Bash的基本功能---别名、快捷键
         1、命令别名 与 快捷键
              1、设定
              2、查看
                 alias   ---- 查看系统中所有的命令别名
                     alias   别名=‘元命令’   --- 设定命令别名,这样设置重启计算机就会失效。
                 2-1、别名永久性生效
                  vi  ~/.bashrc   ---写入环境变量配置文件
                     vi  /root/.bashrc   ---打开后将需要的别名写入,保存即可;并不会立即生效 
                     不会立即生效: 可执行:source   .bashrc 即可立即生效。
              3、删除 ---- 只是临时删除,除非在  .bashrc 配置文件中修改。
                 unalias  别名

   命令生效顺序:
      1、第一顺位执行用绝对路径或相对路径执行的命令。
      2、第二顺位执行别名。
      3、第三顺位执行Bash的内部命令;
      4、第四顺位执行按照 $PATH 环境变量定义的目录查找顺序找到的第一个命令

常用快捷键:
    ctrl + c     强制终止当前命令
    ctrl + l     清屏
    ctrl + a     光标移动到命令行首
    ctrl + e     光标移动到命令行尾
    ctrl + u     从光标所在位置删除到行首
    ctrl + z     把命令放入后台
    ctrl + r     在历史命令中搜索
           


2、历史命令 ---- 指把用户操作过的命令保存到系统当中,当需要的时候可重新调用
  history  [选项]   [历史命令保存文件]
选项:  -c : 清空历史命令。
           -w:把缓存中的历史命令写入历史命令保存文件  ~/.bash_history 
查看历史记录文件   [root@localhost ~]# cat   .bash_histroy
 注意: 。bash_histroy中保存的命令只有在用户正常推出后才会存入。logout 命令。如果需要强制写入  :[root@localhost ~]#  history  -w   (包括当前的 history  -w 命令
历史命令默认会保存 1000 条,可以在环境变量配置文件  /etc/profile 中进行修改。

历史命令的调用:
    常用  1、使用上、下箭头调用以前的历史命令
          2、使用  “!n” 重复执行第n条历史命令  --- n是 history对应的号   例如:[root@localhost ~]# !2  执行历史第二条命令     
          3、使用 “!!” 重复执行上一条命令  --- 例如:[root@localhost ~]# !! 执行上一次命令
          常用  4、使用  “!字符串” 重复执行最后一条以该字符串开头的命令    --- 例如: [root@localhost ~]# !ls 最后一次ls命令
   


3、输出重定向-----常用的还是输出重定向,输入重定向了解就好。
      标准输入输出:
键盘          /dev/stdin          0           标准输入
 显示器       /dev/sdtout        1          标准输出
显示器       /dev/sdterr         2          标准错误输出
 其中:dev  是继 Linux保存硬件特殊文件的标准目录,键盘就是这个文件下的。
1正确,2错误
               类型                         符号                              作用
标准输出重定向                         命令 >  文件                以覆盖的方式,把命令的正确输出,输出到指定的文件或设备当中。
                                      命令 >> 文件                以追加的方式,把命令的正确输出,输出到指定的文件或设备当中。

标准错误输出重定向                     错误命令  2>  文件          以覆盖的方式,把命令的错误输出,输出到指定的文件或设备当中
                                      错误命令  2>>  文件         以追加的方式,把命令的错误输出,输出到指定的文件或设备当中。

标准输出  命令 >  文件  >与文件之间有空格。而 错误命令  2>文件   >与文件之间   没有空格。 
          

正确输出和错误输出同时保存     
     命令 >  文件  2>&1     以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中
    
     命令  >>  文件  2>&1   以追加的方式,把正确输出和错误输出都保存到同一个文件当中。
    
     命令  &>文件           以覆盖的方式,把正确输出和错误输出都保存到同一个文件当中。
    
     命令  &>>文件          以追加的方式,把正确输出和错误输出都保存到同一个文件当中。
    
     命令>>文件1  2>>文件2  把正确的输出追加到文件1中,把错误的输出追加到文件2中。 
     2,4,5最常用。
                                           


  输入重定向:  直接在界面 输入----wc  随意输入   最后按 ctrl+d 统计  行   单词   字符
      [root@localhost ~]# wc  [选项]  [文件名]
选项:  -c: 统计字节数
        -w: 统计单词书
        -l  : L  统计行数
          注意:一般用不到输入重定向, 会在软件安装打补丁的时候会用到输入重定向,但一般不会用到。
[root@localhost ~]# wc  < access.log   --- 会统计处这个sccess.log中  有几行,几个单词,几个字符。
这种用到的很少,了解就好。



多命令顺序执行
     1、管道符:

多命令执行符       格式           作用
; 分号          命令1;命令2    多个命令顺序执行,命令之间没有任何逻辑联系

&&              命令1&&命令2  逻辑与  当命令1正确执行,则命令2才会执行    当命令1执行不正确,则命令2不会执行

||            命令1|| 命令2   逻辑或  当命令1执行不正确,命令2才会执行     当命令1正确执行,则命令2不会执行

表示 :先查询当前链接到的数量,然后查询正在链接的,之后统计正在链接的行数。


例子:
[root@localhost ~]# ll  -a  /etc/  |  more ----先查询etc目录下的内容,然后分屏幕显示
[root@localhost ~]# netstat  -an  |  grep   ESTABLISHED   ---- 先查询当前的链接状态,然后显示正在链接的 


     5、Shell中特殊符号
 通配符:文件名 或  目录名称   如果是内容:需要用正则表达式
?   匹配一个任意字符   ---常用
*    匹配0个或任意多个任意字符,也就是可以匹配任何内容   --- 常用 
[]    匹配中括号中任意一个字符。例如:[abc] 代表一定匹配一个字符,或者是a,或则是b,或则是c。---- 常用
                                                                                                  
[-]  匹配中括号中任意一个字符,- 代表一个范围。例如:[a-z]  代表匹配一个小写字符。
[^]  逻辑非,表示匹配不是中括号内的一个字符。例如: [^0-9] 代表匹配一个不是数字的字符。


Bash中其他特殊符号:
     ''     单引号。在单引号中所有的特殊符号,如”$“  和 ”`“  (反引号 引文状态下 1)都没有特殊含义---
     ""     双引号。在双引号中特殊符号都没有特殊意义,但是 "$"、 "`"、 和"\" 是例外,拥有"调用变量的值"、"引用命令"  和  "转义符"的特殊含义
     ``    反引号。反引号括起来的内容是系统命令,在Bash中会执行它。它和   $()  作用一样。不过推荐使用  $()  ,因为反引号非常容易看错   ---反引号是用来包含系统命令的。先执行命令,再把值赋给变量。

     $()   和反引号作用一样,用来引用系统命令。
     #    在shell脚本红,#开头的行代表注释。
     $     在调用变量的值,如需要调用变量name的值时,需要用 $name  的方式得到变量的值。
     \     转义符,跟在 \ 之后的特殊符号将失去特殊含义,变为普通字符。  如  \$  将输出  "$"符号。而不当做是变量引用。
     

权限管理命令:chmod
      语法:chmod  [{ugoa}{+-=}{rwx}]   [文件或目录] 
                            [mode=421]  [文件或目录]
                            -R  递归修改
功能:修改文件或目录的权限


其中=号的用法


权限的数字:
               例如

-R:
表示:当修改这个目录的权限的时候,这个目录中所有的子文件都将会改成同样的权限

总结:
          一个File :  r:意味着:如果要查看一个文件的内容,必须要对这个文件有r权限。才可以执行这样的命令:cat   more  head   tail  less  才可以看这个文件内的内容。
                         w: 意味着:可以修改这个文件。可以执行命令:  vim
                         x:意味着:可以执行这个文件,可执行的文件必须是:script(脚本)、command(命令)
删除一个文件的前提是:用户必须对当前文件所在目录有w的权限,才可以删除这个文件
          一个目录:directory,rwx对目录的含义是不一样的。
                          r:目录意味着:可以列出目录中的内容。可以执行的命令:ls
                          w:目录意味着: 可以做 创建/删除文件。可以执行的命令:touch/ mkdir/ rmdir/  rm 
                          x:目录意味着:可以进入这个目录。可执行的命令:cd
在Linux里面目录的rx是同时存在的。不可能只查看目录中的东西,而进不去。或则只能进入,而不能查看里面的东西。 所以:有r权限,肯定有x权限。
重点:w权限,可以在目录中创建,删除文件。


添加普通用户:
          
用户管理命令:












原创粉丝点击