Shell是运维和系统管理员操作Linux系统的首选,简单的说,它是一个命令解释器。
命令行相关:
行首“$” 或 “#” - 命令行提示符 行中 ## - 视为注释开始
**注意:**命令行中是区分大小写的。
使用命令行和通配符可以提高输入效率
命令行补全——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。
**作用:**Linux为所有命令和系统调用编写了帮助手册。使用man命令可以方便地获取某个命令的帮助信息。
**用法:**man [手册编号] 命令名,手册编号可以省略。
示例:
man 8 ping
JK上下翻动,空格向下翻页,Q退出。
手册共分为9节,各部分内容如下:
**作用:**切换到其他用户
用法:
su 用户名 #切换到这个用户
sudo su #切换到root用户
**注意:**ubuntu默认情况下,系统没有合法的root权限,不能直接使用su命令提升到root权限,而必须使用sudu来获得root权限
当前命令以root身份执行。
sudo xx
显示当前目录,即工作目录。
改变当前目录位置
创建目录
文件的移动
mv --[OPTION] 源文件 目标文件
可以指定移动后的名字
rm test1.c /test/test2.c
复制文件
cp --[OPTION] 源文件 目标文件
删除文件
rm …[OPTION]…[FILE]…
建立文件链接
ln …[OPTION] 源文件 目标文件
类似于C++中的引用,给变量起了个别名,实际上是同一个文件。
ln ./test/test1.c ln_demo
实际上创建的ln_dem就是是test1.c。这是硬链接,删除源文件后可以访问。(只要有硬链接,文件就不会被释放。直到最后一个链接被删除,文件才会被释放。)
ln -s ./test/test1.c ln_demo_s
创建ln_demo_s,这是软链接(符号链接)。删除源文件后软链接文件无法访问。
总结:软链接就一个文件路径,硬链接就是指针。
相关参考:
用于改变文件的所有权。
chown …[OPTION] [OWNER] [:[GROUP]] FILE…
每一位分别表示: 文件/目录,xuanxuan用户的读,写,执行,同组的其他用户的读,写,执行,其他组成员的读,写,执行。
用于单独设置文件的属组。
chgrd …[GROUP] FILE…
改变文件权限。
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。
所以也可以这样改权限。
chmod777
阅读文件的头部和尾部。
head/taill …[OPTION]…FILE
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 [OPTION] [path…] [expression]
快速定位文件位置。
locate [expression] pattren
locate并不进入子目录进行搜索,它通过检索数据库来确定文件的位置。可以使用updatedb来更新检索数据库。
在文件中寻找某些信息
grep [OPTIONS] PATTERN [FILE…] #pattern使用基础正则表达式
grep 111 ./test.c #在test.c文件中查找111