Linu学习笔记(二)

解压缩

  • tar

            tar 自身是没有压缩功能的,它只能够打包、归档(把很多小文件放到一个文件里去)

#1、将整个/home/www/images 目录下的文件全部打包为 /home/www/images.tar 
tar -cvf /home/www/images.tar /home/www/images ← 仅打包,不压缩 
tar -zcvf /home/www/images.tar.gz /home/www/images ← 打包后,以gzip压缩 
#在参数f后面的压缩文件名是自己取的,习惯上用tar来做,如果加z参数,则以tar.gz 或tgz来代表gzip压
#缩过的tar file文件 

#2、将/home/www/images.tar.gz 解压到/home/www下面 
cd /home/www 
tar -zxvf /home/images.tar.gz 

#3、解压到指定的目录 
tar -zxvf /home/images.tar.gz -C /specific dir
  • zip和unzip处理.zip文件

#将文件1,文件2压缩成test.zip
zip test.zip 文件1 文件2

#将test.txt文件压缩成test.zip,压缩后test.txt会自动删除 
zip -m test.zip  test.txt

#将文件路径下的所有文件都压缩到test.zip
zip -r test.zip 文件路径
zip -j file.zip *   #*表示忽略子目录的内容
 
#将已压缩的或没有必要压缩的文件去掉
zip -n .mpg: .jpg: .gif #第一种文件中间要用:分开
  • gzip  gunzip

  • Linux系统常见的压缩命令

           Compress:压缩出来的后缀是 . Z

            gzip,zcat

            bzip2,bzcat

            zip

  • 完整备份工具

            dump能实现完整备份,增量备份,差异备份

            restore


vim编辑器

(1)官网地址:http://www.vim.org 

(2)vi操作

        ① vi test.java,若该文件存在则打开该文件,若不存在则新建

            Linu学习笔记(二)_第1张图片

        ② vim基本操作

              ✔ 一般模式下

                   i:从当前光标进入插入模式

                   I:从本行的开头进入插入模式

                   a:当前光标的下一个字符进入插入模式

                   A:从本行的结束进入插入模式

                   o:本行的下一行产生一个空白行并进入插入模式

                   O:本行的上一行产生一个空白行并进入插入模式

                   r:替换,先按r,然后再按替换字符即可,每次替换都需要先按r

                  R:替换,可以连续替换

                   u:后退,撤销上一步

                   ctrl + r:前进



                   按yy,复制本行,按p粘贴;按3yy复制从当前行开始往下总共三行的内容

                  按dd删除本行,实际上是剪切当前行;  按3dd,剪切从当前行开始往下总共三行的内容

                  按x删除当前光标所在的字符

                  替换某个字符,先按r,然后输入要替换的字符,即可快速替换

                   切换行:按n,然后按shift + g,跳到n行;按G可以跳到最后一行,连续按两下g就可以跳到第一行  
                    块选择:将光标移动到合适的位置,然后按Ctrl + v,进入可视块模式,然后操作方向键选择要复制的区域,最后按y进行复制,按p可进行粘贴


                   h:光标向左移动一格字符;j:向下;k:向上;l:向右

                  在vi里TAB键所得到的结果与空格符所得到的结果不一样

                  按0会移动到这行的第一个字符,$移动这行的最后一个字符

                   按G移动文档底端,按gg移动文档顶端

                   输入『 : / ? 』光标移动到最后一行,并进入命令模式


              ✔ 命令模式下

                   搜索:输入/或 ?,后面紧跟搜索的内容回车即可

                   替换:

                            输入s/被替换者/替换者/[g]:s表示替换,g表示替换本行所有的,不加g表示替换本行第一个,g是global的缩写

                            输入n,ms/被替换者/替换者/[g]:从n行到m行进行替换

                            输入.,$s/被替换者/替换者/[g]从当前行到最后一行进行替换,. 点表示当前行,$表示最后一行

                            .,$-1s/被替换者/替换者/[g]:从当前行到倒数第二行进行替换,$-1表示倒数第二行

                            %s/被替换者/替换者/[g]:全部替换,%表示全部,等同于1,$

                            .,$s/^/#/g ,从当前行到最后一行,在行首都加上#,^表示行首

                            .,$s/^#//g,删除行首的#,但不删除行内的#,若不加^会删除行内的#

                   切换行:

                            输入n,则光标移动到第n行



       ③ 多文件操作:

           vim 后面跟上多个文件,即可打开多个文件

           在冒号模式输入files,可查看当前打开了哪些文件

           冒号模式输入n,切换到下一个文件;输入N切换到上一个文件;输入first、second等切换到相应文件;输入last,切换到最后一个文件

 
        ④ 多窗口编辑:

           例如,一个文件,同时编辑前三行,后三行,这时候我们可以让我们的VI编辑器来分屏。

           进入冒号模式,输入sp,即可分屏;光标切换分屏,按Ctrl + w,然后按↓即可。或Ctrl + ww会上下切换

       ⑤ vim环境设置
           在用户的家目录下,vim .vimrc,编辑这个文件,即可设置该用户的vim环境

    

           vim /etc/sysconfig/i18n,系统编码

           第一种是,手动显示:在vim编辑模式下输入  :set nu取消显示:set nonu;

           第二种是,当前用户永久自动显示:家目录下打开或新建.vimrc,添加 set nu,保存退出,再次进入vim编辑器,就会自动显示出行号了。

           第三种是,所有用户都自动显示:修改/etc/vimrc文件

           vimrc文件可以设置颜色等配置

           输入[:30l],光标向右移动30个字符


挂载

挂载命令
mount [-参数] [设备名称] [挂载点]
卸载命令
umount [设备名称]
自动挂载就要把
/dev/sda5 /mnt写到 /etc/fstab里
外部设备名 挂载点 文件系统 权限和选项 是否要做备份 是否要做检查 
/dev/sda5  /mnt  ext3 default 0 0



Shell编程

1、什么是shell?实际上Shell是一个命令解释器,用户与内核进行交互操作的一种接口它解释由用户输入的命令并且把它们送到内核去执行。
    ①/etc/shells文件保存了系统存在哪些shell,linux默认是使用bash,打开终端的时候,系统会开启一个shell进程,注意终端不是shell。
    ②在终端上输入其他shell的名称即可切换到该shell。

    ③输入env,可以查看环境变量的一些配置,其中就有当前使用的是哪种shell。
    ④修改当前系统使用的shell:chsh -s 输入新shell

2、shell本地变量

变量的定义:输入变量名=值即可定义一个变量,变量名由字母、数字、_命名,不能数字开头,=两边不能有空格这里定义的变量叫本地变量,只会影响当前的shell,不会影响任何的子shell

查看变量:echo $变量名

取消变量:unset 变量名

查看当前shell的id:echo $$

   输入bash,会打开一个子shell


3、环境变量

定义环境变量:export 变量名=declare -x 变量名=

$PATH

   env               查看环境变

   export             查看环境变量

   set                    显示所有定义的环境变量

   $HOME,         当前用户的家目录路径

   $USER,              当前登录的用户

   $HISTORYSIZE, 记录历史命令的大小

   $PS1                 提示符变量

    $PS2                 >,即命令换行时显示的字符

    $LANG              查看当前系统编码


4、未知变量

    在shell脚本中的,$0表示脚本文件的名$1,表示第一个参数,$n,表示第n个参数$#参数的个数$*表示所有的参数


6、数组array,

   定义数组:数组名=(元素1 元素2 元素3元素之间以空格隔开

   ${数组名[下标]}:取数组的下标所在的值

   ${数组名[*]}  或  ${数组名[@]}:查看数组所有的元素

    ${!数组名[*]}:查看数所有的下标

   ${#数组名[*]}:查看数组的长度  
7、declare 可以用来定义一个环境变量
定义环境变量:declar -x 变量名=值
取消环境变量:declar +x 变量名
declar -r 变量名设置变量只读
declar -i 变量名,将变量定义成整数型,方便数字运算

readonly 变量名,设置变量只读

let 变量名=数字1 +数字2,let可以直接做数字运算 ,let可以用( ())来代替,例如:cc=((1+8))
8、当变量出现在双引号里时,变量会被正常解析,当变量出现在单引号里,则变量会被按字符串输出引用变量最好将变量 用{}括起来,如,echo ${test} ;命令嵌套时需要将嵌套的命令用反引号(·)括起来。

9、脚本的三种执行方式

 ./xx.sh             在子shell中执行

                bash xx.sh     在子shell中执行

                source xx.sh  是在当前的shell下去执行的

     echo $$表示显示当前脚本的PID

10、 命令执行的判断依据:  ;    &&   ||

     敲多个命令用分号;隔开,但是这两个命令直接是没有任何关系的,如date;cal。 第一个命令的执行结果跟后面的命令是没有任何关系的,无论是对还是错               

     命令1 && 命令2 :只有两个都为真时才能执行成功

     命令1 || 命令2:两个命令只要有一个为真,整体就为真。如果第一个命令执行正确的话,第二个就不会执行了;如果第一个错误,然后才会执行第二个命令

11、数据重定向

(1)输出重定向

①>和>>,只能输出正确命令的执行结果到文件中,

cal > calendar.log,将日历输出到calendar.log这个文件,如果文件不存在则创建,若已存在则覆盖里面的内容

cal >> calendar.log,将内容追加到文件中

②2>和2>>,只能输出错误命令的执行结果到文件中

③&>和&>>,错误的正确的都输出到文件中

④ 1>&2,正确的要向错误的一样能够导入

    2>&1,错误的,要像正确的一样导入

⑤双向重定向:tee

    tee与>符号一样,会覆盖原有的内容,如果是要追加,需要加上-a选项



(2)输入重定向:<,<<

        tr 'a-z' 'A-Z' <hosts:将hosts里的都转换成大写



账户管理

1、用户管理

用户名和密码信息分别是存在/etc/passwd和/etc/shadow每个用户都有个UID,系统是根据UID来标记是哪个用户的,GID是用户组的ID。root用户的UID为0,1-499的UID是系统用户,这些用户是不能登录系统的,500-65535的UID是普通用户每个用户 都必须有一个组,在创建新用户时会默认被分配到与用户名同名的组中

     添加用户:useradd 用户名 

                      useradd -D ;查看所有的默认值,D就是default,这个默认值是存放在/etc/default/useradd,可以修改这些默认值

                      useradd -c "Im bob",添加备注

                                    -s /sbin/nologin ,指定shell

                                    -d /bob    指定家目录

                                    -g lduan    指定组,g就是group   

                                    -G lduan    会创建一个同名的组外还会把该用户添加到lduan组

                                    -u 503 bob       指定用户UID


     删除用户:userdel 用户名
                      userdel -r 用户名删除用户以及用户主目录


     修改用户:usermod 

     usermod  -d  目录名  用户名;改变该用户登陆的初始目录      

                                            -c,-s,-d,-g,-G,-u选项与useradd一样的意思

    


     设置密码:passwd 

                      passwd 用户名 -> 回车 -> 系统提示输入密码

                      passwd -S bob  查看bob是否设置了密码

                      passwd -d bob  删除bob的密码

                      passwd -l bob,锁定bob帐号,lock

                      passwd -u bob,解锁,unlock

                      usermod -L bob,锁定

                      usermod -U bob,解锁


     用户功能:fingle、chfn、chsh、id

             fingle ,查看用户的信息,默认查看的是passwd里的信息

             chfn,修改用户的信息

             chsh,修改用户的shell

             id,id tom 查看用户的相关ID信息

             chage,直接回车,会提示使用方法

     用户身份切换

① su,su是switch user的缩写

su 用户名

su - 用户名;不写用户名则默认是向root用户切换

su - -c 'mount /dev/cdrom   /mnt',表示切换root,然后用root身份来执行后面的命令,c是commond命令的意思

② sudo,sudo是把某个命令的使用权赋给某个用户,它的配置文件是在/etc/sudoers,要编辑这个文件推荐使用visudo命令


2、组管理

     添加组:gruopadd  组名

     删除组:groupdel  组名

     修改文件所在组:chgrp  组名  文件名
     改变用户所在组:usermod  -g  组名  用户名



 有效与初始用户组:groups,newgrp

          groups 用户名,查看用户的所在的所有组,不跟用户名时就是查看当前登录用户所在组

        gpasswd -a tom lduan 将tom添加到lduan组,-a,add的意思

        gpasswd -d tom  lduan,将tom从lduan组中删除
     gpasswd -A tom bob,将tom设置为bob组的管理员

        newgrp lduan,打开一个子shell,然后设置lduan为默认组。输出exit后即可退出子shell


3、运行级别

     命令:init [0123456]
     0:关机
     1:单用户
     2:多用户状态没有网络服务
     3:多用户状态又网络服务
     4:系统未使用保留给用户
     5:图形界面
     6:系统重启
     常用运行级别是3和5,要修改默认的运行级别可修改文件/etc/inittab的id:5:initdefault:这一行中的数字

service  iptables  restart

防火墙文件:/etc/sysconfig/iptables


       

       

        

      


你可能感兴趣的:(Linu学习笔记(二))