在linux系统中,shell是运维和系统管理员常用的命令解释器工具。
命令行相关:
注意: 命令行操作时需要区分大小写。
使用命令行和通配符可以提高输入效率。
命令行补全——按Tab键。
通配符:
* - 用于匹配文件名中任意长度的字符串; ? - 只匹配一个字符; [] - 用于匹配所有出现在方括号内的字符。可以使用短线“-”来指定字符集范围。如:ls text[1-3] 或 ls test[a-z]
示例:
ls *1 ——>test1 ls test[123] --> test1 test2 test3
linux系统中常用的Shell包括bash、TCSH Shell和Z-Shell等,其中BASH是默认安装和使用的Shell。
man
作用: Linux为所有命令和系统调用编写了帮助手册。通过man命令可以方便地获取某个命令的帮助信息。
用法: man [手册编号] 命令名,手册编号可以省略。
示例:
man 8 ping
使用JK键上下翻动,空格键向下翻页,Q键退出。
手册共分为9节,各部分内容如下:
su
作用: 切换到其他用户。
用法:
su 用户名 #切换到这个用户 sudo su #切换到root用户
注意: 在ubuntu系统中,默认情况下没有合法的root权限,不能直接使用su命令提升到root权限,而必须使用sudo来获得root权限。
sudo
当前命令以root身份执行。
sudo xx
pwd
显示当前目录,即工作目录。
cd
改变当前目录位置。
ls
dir/vdir
mkdir
创建目录。
mv
文件的移动。
mv –[OPTION] 源文件 目标文件
可以指定移动后的名字。
mv test1.c /test/test2.c
cp
复制文件。
cp –[OPTION] 源文件 目标文件
rm
删除文件。
rm …[OPTION]…[FILE]…
ln
建立文件链接。
ln …[OPTION] 源文件 目标文件
类似于c++中的引用,给变量起了个别名,实际上是同一个文件。
ln ./test/test1.c ln_demo
实际上创建的ln_demo就是test1.c。这是硬链接,删除源文件后可以访问。(只要有硬链接,文件就不会被释放。直到最后一个链接被删除,文件才会被释放。)
ln -s ./test/test1.c ln_demo_s
创建ln_demo_s,这是软链接(符号链接)。删除源文件后软链接文件无法访问。
总结:软链接就一个文件路径,硬链接就是指针。
相关参考:
软硬链接
5分钟让你明白“软链接”和“硬链接”的区别
chown
用于改变文件的所有权。
chown …[OPTION] [OWNER] [:[GROUP]] FILE…
每一位分别表示: 文件/目录,xuanxuan用户的读,写,执行,同组的其他用户的读,写,执行,其他组成员的读,写,执行。
chgrp
用于单独设置文件的属组。
chgrp …[GROUP] FILE…
chmod
改变文件权限。
chmod用于改变一个文件的权限。它以“用户组+/-权限”的表达方式来增加/删除对应的权限。具体来说,用户组包括了文件属主(u)、文件属组(g)、其他人(o)和所有人(a),而权限则包括读取与执行(r、w、x)。
chmod …[OPTION]…[FILE]…
例:
chmod u+x test.txt chmod u-x test.txt chmod ug=wr、o=r text.txt
如果以二进制表示权限,设置为1,没设置为0,最高权限就是777。
所以也可以这样改权限。
chmod 777
head/tail
阅读文件的头部和尾部。
head/tail …[OPTION]…FILE
cat、more、less
cat命令用来一次性查看全部文本内容,后跟文件名作为参数,也可以带上-n来显示每行的行号。如果文件长达几十上百页,不建议使用cat。
more命令用来分页查看文本文件。空格翻页;回车向下滚动一行;Q键退出。
less与more类似,功能更加人性化。
vim是unix和Linux上标配的编辑器,功能十分强大。
vim xxx
插入模式
输入字符,并可以按光标键移动输入字符位置。
命令模式
执行除输入字符之外的所有操作,包括保存、搜索、移动光标等。
vim启动默认是在命令模式,如果在编辑模式,需要按Esc切换回命令模式。
可以使用光标键控制上下左右,或者或者h、j、k、l移动。
搜索字符串
替换字符串
%s/123/321/g #将123替换为321,g是整个一行中满足条件的,%s是全文。
删除、复制、粘贴
撤销和重做
其他
syntax on ## 语法高亮 set autoindent ## 自动缩进 set shiftwidth=4 ## 设置Tab 键对应的空格数
find
在指定范围内迅速查找到文件。
find [OPTION] [path…] [expression]
locate
快速定位文件位置。
locate [expression] pattren
locate并不进入子目录进行搜索,它通过检索数据库来确定文件的位置。可以使用updatedb来更新检索数据库。
grep
在文件中寻找某些信息。
grep [OPTIONS] PATTERN [FILE…] #pattern使用基础正则表达式
grep 111 ./test.c #在test.c文件中查找111