Linux学习
压缩与解压
xxx.tar.gz
// 将d1、d2文件夹和一个文件 打包压缩为 xxx.tar.gz tar -czvf xxx.tar.gz ./d1 ./d2 ./test.java // 将 xxx.tar.gz 解压到当前文件夹 tar -xzvf xxx.tar.gz // 将 xxx.tar.gz 解压到指定的文件夹 tar -xzvf xxx.tar.gz -C /home /* 说明: -c 是表示打包为.tar包 -x 是表示解包 tar 包 -z 是表示打包的同时压缩为 .gz (gzip) 或 解包的同时解压 gz -f 是表示指定压缩后的文件名 -v 是表示显示详细信息 */
常见的
- 复制文件
cp myfile myfile.copy 将文件 myfile 复制到当前目录下的 myfile.copy 文件 (若没有新建,有则覆盖)
cat myfile > myfile.copy 作用同上 cat file1 file2 > file 将file1 和 file2 文件复制到 file 文件尾部(若没有新建,有则覆盖),顺序:file1的内容 + file2 的内容
cat myfile >> myfile.copy 若无则新建,若有则尾部添加 cat file1 file2 >> file 将file1 和 file2 文件追加到 file 文件尾部 - 新建文件
vi myfile - 删除文件 rm(remove)
rm myfile - 新建目录
mkdir mydir - 删除空的目录
rmdir mydir - 删除目录下的所有内容(慎用,无回收站)
rm -r mydir - 显示当前目录
pwd(print working directory) - 改变目录
cd ...... - 列出mydir目录下的内容(包括子目录、文件)
ls [-p] mydir 加上-p,列出的子目录的文件名后加斜杠/
ls -al mydir 显示所有,并以详细信息显示
组管理
在Linux中的每个用户必须属于一个组,不能独立于组外。每个文件都有所有者、所在组、其他组的概念。
文件或目录的所有者(拥有者)一般都是创建者。
创建组
groupadd 组名
例如:
groupadd fruit
useradd -g fruit apple
删除组
groupdel 组名
查看所在组
ls -alh
当某个用户创建了一个文件后,这个文件的所在组就是该用户所在的组(默认)
修改所在组
chgrp 组名 文件名
- 添加用户并指定所在组
useradd -g 组名 用户名
- 改变用户的所在组
usermod -g 新组名 用户名
权限的基本介绍
[root@localhost ~]# ls -ahl total 28K dr-xr-x---. 2 root root 135 Dec 16 02:34 . dr-xr-xr-x. 17 root root 224 Dec 14 01:38 .. -rw-------. 1 root root 1.3K Dec 14 01:38 anaconda-ks.cfg -rw-------. 1 root root 1.2K Dec 16 02:34 .bash_history -rw-r--r--. 1 root root 18 Dec 28 2013 .bash_logout -rw-r--r--. 1 root root 176 Dec 28 2013 .bash_profile
/* 说明:
从上面可以看到,每一行都有7列,分别是:
第一列共10位,第1位表示文档类型,d表示目录,-表示文件,l表示链接文件,c是字符设备文件(鼠标、键盘),b是块设备(比如硬盘)。后9位,依次对应三种身份所拥有的权限,身份顺序为:拥有者owner、所在组group、其他others,权限顺序为:readable、writable、excutable。r 读 w 写 x 执行 - 没有授予相应的许可权。如:-r-xr-x---的含义为当前文档是一个文件,拥有者可读、可执行,同一个群组下的用户,可读、可执行,其他人没有任何权限。
第二列表示链接数,表示有多少个文件链接到inode号码。
第三列表示拥有者
第四列表示所属群组
第五列表示文档容量大小,单位字节
第六列表示文档最后修改时间,注意不是文档的创建时间哦
第七列表示文档名称。以点(.)开头的是隐藏文档
*/
修改权限 chmod
- 第一种方式:+、-、=
u:拥有者,g:所在组,o:其他人,a:所有人(包括u,g,o)
chmod u=rwx,g=rx,o= 123.txt
注:o=空 表示没有任何权限
chmod u+x 123.txt 给拥有者添加可执行权限
chmod u-x,g+w 123.txt 给拥有者减去可执行权限,给所在组加上可写权限
- 第二种方式:通过数字变更权限
r=4 w=2 x=1 rwx=4+2+1=7
chmod u=rwx,g=rx,o= 123.txt
相当于
chmod 750 123.txt
修改文件拥有者 chown
chown 用户名 文件名/目录
chown -R 用户名 目录 #目录下的所有文件和目录的拥有者都修改为某一用户
修改文件或目录所在组 chgrp
chgrp newgroup 文件名/目录
用户管理
添加用户
useradd 用户名
useradd -d 指定目录 用户名 #创建的用户同时指定家目录,默认是在/home/用户名
useradd -g 指定组 用户名 #创建的用户同时指定用户所在组
usermod -g 组名 用户名 #修改用户的组
指定/修改密码
passwd 用户名
查询用户信息
id 用户名
删除用户
userdel 用户名 #删除用户,保留家目录
userdel -r 用户名 #删除用户,也删除家目录
切换用户
su - 用户名
例如: su - root #切换为root用户
当需要返回原来用户时,可以使用 exit、logout 指令。
查看当前用户
whoami
who am i
用户和组相关的文件
- /etc/passwd 文件
用户的配置文件,记录用户的各种信息。
每行的含义:
用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell
- /etc/shadow 文件
口令的配置文件
每行的含义:
登录名:加密口令:最后一次修改时间:最小时间间隔:警告时间:不活动时间:失效时间:标志
- /etc/group 文件
组的配置文件
每行的含义:
组名:口令:组标识号:组内用户列表
vi 编辑器的用法
- vi myfirst 新建文件
- 进入vi后,为命令模式,按键盘 i 进入插入模式可以编辑文本,按Esc返回命令模式下,按 :wq 表示保存文件并退出。
- vi -R myfirst 以只读的方式打开文件myfirst 或者 view myfirst 这种情况下修改文本,需要使用 :w! 或 :wq! 来保存文件。
- vi file1 file2 启动vi 编辑多个文件。这种情况下, :ar 显示所有文件名,且当前文件名用 [ ] 括起来,:n 显示下一个文件
- 命令模式下
:e myfile 编辑另一个文件 :r myfile 把myfile文件的内容引入当前编辑的文件中,插入在光标行后 :1,5 w temp 把当前编辑器中的第1 - 5行写入temp文件。若temp文件不存在,新建temp;若存在,要使用 w! 覆盖已存在的文件,或改文件名。 dd 剪切当前行的内容到缓冲区。 移动光标,然后输入 p 就在当前行的下面粘贴了缓冲区的内容了。P 是在当前行的上面粘贴。 yy 复制当前行的内容到缓冲区。然后 p / P 粘贴。 2dd 剪切当前行开始的2行内容 按 u 撤销最近的文本修改。 d$ 删除从光标到当前行尾的文本 d0 删除从光标到当前行首的文本 dw 删除光标位置后的一个word 和空白符(光标在一个word的中间会删除【从光标开始到第一个空白】的内容,若光标在一个空格上,则只删除空格) 3dw 删除光标位置后的3个word 和 空白 (dw 一般将光标放在一个word的首字母使用) w 光标移动到下一个word y$ 复制光标到行尾的内容到缓冲区。然后 p / P y0 复制光标到行首的内容到缓冲区。 :set number 显示行号 :set nu :set autoindent 新行与前一行自动对齐 或 :set ai :set ignorecase vi执行搜素时不区分大小写(默认查找是区分大小写的) 或 :set ic 在命令模式下 /unix 就是搜索unix,光标停在第一个unix的首字母上。 当用户退出vi编辑器后,这些设置作废。 ------------- 自定义缩写 :ab uno UNIX Operation System 在insert模式下,输入uno加空格,就会自动变为 UNIX Operation System :ab 列出已设置的缩写 :unab uno 取消uno的缩写 宏操作符(map) :map q 5dd 那么在insert模式下,按q 就等于 按 5dd,删除5行 :unmap q 5dd 取消 :map 查看 只有少数的键没被使用为命令,可以用来指定,像K、q、V、[Ctrl - e] 、 [Ctrl - x] 也可以指定功能键 :map #2 5dd 将 5dd 指定给 [F2] 键
常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。
昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。