Linux系统:CentOS7
/ 系统根目录
~ 当前用户的家目录
以下为linux下的一些根目录
清屏:clear 或者ctrl+l
查看指令记录:history
ls:查看当前目录下的内容 ls -a ls-l(相当于ll)
pwd:查看当前所在目录
cd:打开目录,切换到目录
cd …/ 返回上一级
文件夹操作:
创建:mkdir 目录路径
例:test/java/javaEE 当不存在test文件夹时,可以通过-p来进行创建; mkdir -p test/java/javaEE
也可以在创建的同时,赋予权限
删除:rmdir 目录路径
目录必须为空才能删除
移动或修改 :mv 原路径 新路径
文件操作:
创建:touch 文件路径
删除:rm 文件路径
删除文件或目录 :rm -rf //删库跑路必备技能,不会有二次确认
rm ri:删除文件前询问用户
移动文件或修改文件名 :mv 原路径 新路径
复制:cp 原路径 新路径
内容操作:
head:从文件头部查看文件内容,不加-n 默认n=10
head -n 文件名:从头查看前n行
tail:从文件结尾查看文件内容,不加-n 默认n=10
tail -n 文件名:从尾查看后n行
tail -f 文件名:动态的查看文件,一直在加载,只有通过ctrl+c才能结束掉
cat 文件名:查看文件全部内容
cat a.txt > b.txt 把b的内容替换为a >>表示追加
cat -n 文件名:查看文件并显示行号
more(一次性加载文档):空格翻页,q 退出 ctrl+b 向上翻页
less(显示多少加载多少):空格翻页,q 退出
解/压命令:
tar:
解包:tar -zxvf xx.tar.gz
解包:tar -xvf xx.tar
压缩包:tar -zcvf xx.tar.gz
vi编辑器:
1、进入文件(查看模式): vi 文件名
2、由查看进入编辑模式:
a:在光标后面
A:在光标所处行的行末
i:在光标位置插入
I:在光标所处行的行首
o:光标所在行的下一行
O:光标所在行的上一行
3、退出编辑模式:esc
4、进入尾行模式:输入英文的冒号
5、退出:
wq 保存并退出(等同于x) w 保存 q 退出 q! 不保存强制退出
6、在查看模式:
G:跳转到最后一行
gg:跳转到首行
ngg:跳转到文档的第n行;2gg跳转到第二行
7、复制粘贴(查看模式)
单行复制:yy 粘贴:p
多行复制:nyy 从当前行开始,复制n行
编辑模式下:shift+insert 是粘贴
8、删除(查看模式)
当行删除:dd
多行删除:ndd
9、撤销(编辑模式): ctrl+u 查看模式:u
10、显示行号(尾行模式) : set nu 取消行号:set nonu
11、查找(查看模式):/内容(从头查找) ?内容(从尾部查找)
查找到之后,n是下一个,N是上一个
12、替换(此处为抄袭)
(1):1,10s/old/new/g:替换1到10行的所有old为new
注:1,10s表示第一行到第十行,s代表替换。
(2)/old/new表示把old换成new。
g表示范围内替换所有。(如果不加g,只会替换范围内第一个old)
(3):%s/old/new/g:替换整个文件的old为new
注:%表示范围是整篇文档。
替换字符串,举几个例子:
在shell中“#”开头是注释,那我是否可以注释文件的前10行呢?手工一个一个注释很麻烦,如何进行批量替换。
(4):1,10s/^/#/g:注释1到10行
注:^正则表达式表示行首,把行首变成#。
(5):1,10s/^#//g:取消注释
注:^#意思是把行首的#去掉。正则表达式是包含匹配,如果只写#,表示1到10行所有的#都去掉。
注:在C语言,PHP语言等大多数语言中,是使用"//“开头作为注释的,用vim来写这些程序语言脚本,如何批量加入”//"注释。
(6):1,10s/^g:1到10行,行首加入//
注:把行首^替换成//(双斜杠 //),\符号在命令行中代表换行,\符号在字符串中代表转义符。(转义符就是把有特殊含义的字符转换成普通的字符串符号。)
(7):1,10s/^g:取消1到10行行首的//
用户操作:
1、创建用户:useradd 用户名
修改密码:passwd 用户名
切换用户:su 用户名
2、删除用户:userdel 用户名
3、用户修改:usermod
4、查看所有用户: vi /etc/passwd
以下为/etc/passwd的部分内容:
hadoop:x:1000:1000::/home/hadoop:/bin/bash
test:x:1001:1001::/home/test:/bin/bash
aaa:x:1002:1001::/home/aaa:/bin/bash
其中hadoop/test/aaa为自定义的用户名,下面为aaa为例
1002为UID(用户id),1001为GID(组id),aaa和test属于同一个组
组管理:
增加:groupadd
删除: groupdel
查看所有分组: vi /etc/group
以下为/etc/group的部分内容:
hadoop:x:1000:
test:x:1001:
hadoop和test为组名,组id分别为1000和1001
权限:
r:可读 w:可写 x:可执行
首位:-代表文件 d代表目录 l代表链接文档
第一组rwx:所属用户的权限(u)
该文件所属的用户和组分别为 root和root
第二组rwx:用户所在组的其他用户(g)
第三种rwx:其他组的用户(o)
第一个root为用户名 第二个root为用户所属的组名
对上述文件权限进行修改:
chmod chmod u=rwx,g=rwx,o=r a.txt
将拥有者的权限改为rwx,拥有者所在组的其他用户权限改为rwx,其他组的用户权限改为r
例:chmod 754 文件名或目录 //rwx分别对应4 2 1
例:chmod u-x 文件名或目录 //去除拥有者的x权限
例:chmod u+x 文件名或目录 //增加拥有者的x权限
改变文件或目录的从属:chown 用户名:组名 文件名或目录名
以下为去掉全部人的某个权限