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
(1)官网地址:http://www.vim.org
(2)vi操作
① vi test.java,若该文件存在则打开该文件,若不存在则新建
② 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
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