Linux 常用操作命令
用户与用户组
添加用户时,系统自动添加
sudo useradd -d /home/mengning -m mengning
sudo passwd mengning
在 home 目录下创建新的用户目录
ls /home/
sudo userdel -r mengning
who am i /groups
每个用户都有一个用户组,系统可以对一个用户组中的所有用户进行集中管理。不同 Linux 系统对用户组的规定不同, Linux 下的用户属于与它同名的用户组,这个用户组在创建用户时同时创建。
用户组的管理涉及用户组的添加 groupadd、删除 groupdel 和修改 groupmod。增删改实际上就是对 /etc/group 文件的更新。
与用户组相关的信息存放在有些系统文件中——etc/passwd, /etc/shadow, /etc/group…
每个用户在 /etc/passwd 文件中有一个对应的记录行——用户名:口令:用户标识符:注释性描述:主目录:登录 Shell
加密后的用户口令存放到 /etc/shadow 文件
“组标识号”字段记录的是用户所属的用户组,对应着 /etc/group 文件中的一条记录。
实验
ssh 登录到自己的 Linux 系统,通过 find 找出 /etc 目录中所有的 .conf 并通过 tar 打包;
通过 grep 将 .conf 文件中包含 “ubuntu”的行输出到一个文本文件
find "*.conf" /etc -exec tar -zcvf result1.tar.gz +tar -tf result.tar.gzls -lfind "*.conf" /etc -exec grep "ubuntu" {} \; > result2.txt
Linux 代码编辑器
vi / vim
练习
- 用 vim 创建一个 test.c 文件
- 将 xxx 文件内容插入到 test.c 中
- 将当前文件中的 xxx 字符串全部替换为 yyy 字符串
- 将当前文件中的 10-20 行代码全部注释
- 将 2-3 行代码复制粘贴 10 次
vim test.cw [xxx]/s"xxx""yyy"yy1010p[ctrl v] I // esc19,29s/^/# /g19,29s#^#/ #g
移动光标的方法
- n
光标向右移动 n 个字符。 - 0 或者功能键 [home] 这是数字 【0】移动到这一行的最前面字符处。
- $ 或者 功能键 【end】移动到这一行的最后面处。
- H 光标移动到这个屏幕的最上方一行的第一个字符。
- M 光标移动到屏幕中央那行的第一个字符。
- L 光标移动到最下屏幕最下方那行的第一个字符。
- G 移动到这个档案的最后一行。
- nG 移动到这个档案的 n 行。
- gg 移动到这个档案的第一行。
-
翻页
【ctrl】
+【f】向下翻页
- +【b】向上翻页
- +【d】向下翻动半页
-
删除、复制粘贴
x,X一行字中,x 为向后删除一个字符,与【del】键相同效果,X 为向前删除一个字符,相当于【backspace】。
- nx 向后连续删除 n 个字符。
- dd 删除游标所在的哪一行整行。
- ndd 删除光标所在的向下的 n 行。
- d1G 删除光标所在的到第一行的所有数据。
- dG 删除光标所在到最后一行的所有数据。
- d$ 删除游标所在处,到该行的最后一个字符。
- d0 删除游标所在处,到改行的最前面一个字符。
- yy 复制所在行。
- nyy 复制光标所在向下 n 行的所有数据。
- y1G 复制游标所在行到第一行的所有数据。
- yG 复制游标的所在行到最后一行所在的数据。
- y0 复制光标所在字符到该行行后所有数据。
- y$ 复制光标所在的那个字符到改行行尾的所有数据。
- p,P:p 将已经复制的数据粘贴在光标的下一行上,P 为贴在游标的上一行。
- J 将光标所在行与下一行的数据结合成一行。
- c 重复删除多个数据。
- u 复原前一个动作。
- 【ctrl】+ r 重复上一个动作。
该动作与 u 与【ctrl】+ r 一个是复原,一个是重做一次。
搜索替换
/word:将光标之下寻找一个名称为 word 的字符串。
- ?word:向光标之上寻找一个字符串。
- n :代表重复前一个搜索动作。
- N:反向进行前一个搜寻动作。
- n1,n2s/word1/word2/g :n1 与 n2 为数字,在 n1 与 n2 行之间寻找 word1 这个字符串,并且将改字符串取代为 word2。
- 1,$s/word1/word2/g 或者 %s/word1/word2/g 从第一行到最后一行寻找 word1 字符串,并且将该字符串取代为 word2。
1,$/word1/word2/gc 或者 %s/word1/word2/gc 从第一行到最后一行寻找 word1 字符串,并且将该字符串取代为 word2,且在取代前显示提示字符给用户确认是否要取代。
切换到编辑模式
i、a、o(大写相同):进入编辑模式。i 为从目前光标所在处输入,I:为在目前所在行的第一个非空空格字符处开始输入。a 为从目前光标所在的下一个字符处开始输入,A 为从光标所在行的最后一个字符处开始输入。o 为从当前所在的下一行处输入新的一行,O 为目前光标所在处的上一行输入新的一行。
- r、R:进入取代模式,r 智慧取代光标所在行字符一次,R 会一直取代光标所在的文字,直到按下 ESC。
- ESC 退出编辑模式。
编辑模式会在 vi 画面左下角处出现【—INSERT—】或者【—REPLACE—】
命令模式
w 将编辑的数据写入硬盘档案中。
- w! 若文件属性为只读时,强制写入该档案,写入是否成功取决于权限。
- q!若曾修改过档案,又不想存储,使用 !作为强制离开不存储档案。
- wq 存储后离开,若为 wq! 则为强制存储后离开。
- ZZ 大写,若档案没有改动,则不储存离开,若档案已经被改动,则存储后离开。
- w [filename} 将编辑的数据存储成另外一个档案。
- r [filename] 在编辑的数据中,读入另一个档案数据,将 [filename] 档案添加到所加游标所在行后面。
- n1、n2 w [filename] 将 n1 到 n2 的内容存储成 filename 这个档案。
! command 暂时离开 vi 到指令模式下执行 command 的显示结果,例如 [! ls /home] 即可在 vi 当中察看 /home 底下以 ls 输出的档案信息。
vim 环境变更
set nu 显示行号,设定后,会在每一行的前缀显示该行的行号。
-
代码中批量添加注释
批量注释:ctrl + v 进入块选择模式,然后移动光标选择需要注释的行,按大写 I 进入行首插入模式输入注释符号如 // 或者 #,输入完毕后,按两下 ESC ,vim 将会为选中的内容加上注释,保存退出完成注释。
- 取消注释:按下 ctrl + v 进入块选择模式,选中需要删除的行首注释符号,// 符号要选择两个
- 批量注释:使用下面命令再指定的行首添加注释,使用命令格式: :起始行号,结束行号 s/^/ 注释符/g(注意冒号),如:10,20s#^#//#g,:10,29s/^/#/g
- 取消注释:使用命令格式::起始行号,结束行号s^/注释符//g(注意冒号),如:10,20s#^##g,:10,20s/#///g
