Ubuntu软件管理
在大多数的Linux中,都有给自的软件管理工具,比如Ubuntu常用的是apt,通过软件管理包来安装和更新软件等
- sudo apt install –y lrzsz # 安装软件
- sudo apt uninstall –y lrzsz # 卸载软件
- sudo apt remove -y lrzsz # 删除软件
注意:
- sudo #是临时提升当前用户权限到管理员
- exit #退回
- apt #是下载第三方软件的命令
- pip #是下载安装python自带的库的命令
- -y #表示yes
- ctrl+c #直接打断当前命令
- Ctrl+l #清屏
- / #根目录
- ip addr #查看IP地址
用户与权限管理
添加用户- useradd -m username
- #在普通用户下可以使用su root命令切换管理员权限,进行创建用户
- -m:自动建立用户的登入目录
- -u UID:指定 UID,这个 UID 必须是大于等于500,并没有其他用户占用的 UID
- -g GID/GROUPNAME:指定默认组,可以是 GID 或者 GROUPNAME,同样也必须真实存在
- -G GROUPS:指定额外组
- -c COMMENT:指定用户的注释信息
- -d PATH:指定用户的家目录
- 注意:使用useradd -m username创建新用户后发现,前缀看不懂
- 切换到root用户下使用vim /etc/passwd命令将新建用户djrm的最后一个文件夹sh改名为bash保存退出即可
- userdel username # 删除用户
- groups 查看当前登录用户的组内成员
- 添加用户组
- groupadd groupname # 添加用户组
- groupdel groupname # 删除用户组
- 修改用户组(用的比较少)
- usermod [options] username
- -c:修改用户帐号的备注文字;
- -d:修改用户登入时的目录;
- -g:修改用户所属的群组;
- -G;修改用户所属的附加群组;
- -l:修改用户帐号名称;
- -L:锁定用户密码,使密码无效;
- -s:修改用户登入后所使用的shell;
- -u:修改用户ID;
- 切换不同的用户组
- newgrp 用户组名
- 文件权限
- 第1列表示文件类型
- 第2列表示文件权限
- 第3列为硬链接个数,文件夹表示引用计数,即..加上里面的目录个数
- 第4列表示文件所有者,就是文件属于那个用户
- 第5列表示文件所属的组
- 第6列表示文件大小,文件夹表示文件夹的大小,不是文件夹的总大小
- 第7列表示文件的修改时间
- 第8列表示文件名或目录名
- 权限详解
- -rwxr-xr-x 这10个字符的确定了文件类型和用户对文件的权限
- 第1个字符代表文件类型:- 表示普通文件
- 后面9位每3位为一组 (rwx),读(r),写(w),执行(x)
- 第1组是u所有者的权限:rwx代表文件的所有者root用户有读、写和执行的权限
- 第2组是g所属组的权限:r-x 代表与文件所有者在同一组的用户有读和执行的权限
- 第3组是o其他人的权限:r-x 代表其他的用户有读和执行权限
- 在Linux中,文件有3种属性:可读、可写和可执行。每个文件都有自己的属主,每个用户有自己的用户组,这样文件权限就有属主权限、同组用户权限和不同组用户权限
- Linux中通过符号表示权限之外,也可以通过数字来表示权限 r 对应数字 4, w 对应数字 2,x对应数字 1 。 那么rwx 就是数字7,0表示没有任何权限
- 更改文件权限
- chmod u+x py.txt #对应用户增减制定权限
- chmod 640 py.txt #直接用数字来指定权限
- chgrp root /tmp/vi #改变用户组
- chown –R bd:bd test #将test文件夹更改成bd用户所属
文件编辑(vim)
VIM的三种模式
- 1、命令模式
- 使用VIM打开文件之后,就会进入命令模式,在其他模式下,按ESC回到命令模式
- 基本命令:
- h j k l #对应 左 下 上 右
- gg #移动至行首
- G #移动至行尾
- 2、插入模式
- 进入插入模式后,类似于记事本一样可以直接编辑文本内容
- 基本命令:
- i 当前插入
- a 后面插入
- o 下行插入
- I 行首插入
- A 行尾插入
- O 上行插入
- 3、末行模式
- 在命令模式下输入英文的冒号(:)就会进入末行模式
- 命令模式下可以输入的命令十分少,因此提供了末行模式来提供更多的命令
- 基本命令:
- :wq #保存退出
- :q! #强制退出不保存
- 命令模式-扩展
- 命令模式下还有很多其他的命令简单了解下:
- ^ 非空格行首
- 0 $ 行首 行尾
- w e b 下个单词词首 下个单词词尾 上个单词词首
- ( ) 句子移动
- { } 段落移动
- H 屏幕顶部
- M 屏幕中间
- L 屏幕底部
- % 跳转到匹配的括号
- ^f ^b 向下移动一屏 向上移动一屏 (^代表 ctrl 键)
- ^d ^u 向下移动半屏 向上移动半屏
- ^e ^l 向屏幕顶端多滚动一行 向屏幕底端多滚动一行
- . 执行上一条命令
- yy 复制当前行
- nyy 复制n行
- p 粘贴
- yw 复制一个单词
- y$ 复制当前到行尾
- y0 复制当前到行首
- :x,ycoz
- :x,ymz
- x,y,z都是行号。x到y被复制或移动,插入到z行的下面
- :m删除源行
- :co不删除原始行
- dd 删除当前行
- ndd 删除n行
- dw 删除一个单词
- x 删除当前字符
- X 删除前一个字符
- D 删除当前到行尾
- J 删除换行符
- r 替换一个字符
- R 替换多个字符
- s 替换当前字符,并进入插入模式
- C 替换当前行到末尾的所有字符
- S 或 CC 以插入的方式替换当前行
- / 向前搜索
- ? 向后搜索
- n 重复/或?,方向相同
- N 重复/或?,方向相反
- * 向下搜索光标所在字符串
- # 向上搜索光标所在字符串
- % 搜索与当前花括号、圆括号、方括号成对的符号
- Vim有多个寄存器:
- :reg 查看寄存器内容
- 这个寄存器就相当于多个粘贴板, Vim提供了 a-z 26个命名寄存器, 0-9 10个数字寄存器,还有一些特殊寄存器
- “{register}y 来复制内容到寄存器 {register} 中 例如: 3”ayy 复制3行到寄存器 a 中
- “{register}p 来粘贴寄存器 {register} 中的内容 例如:”ap
- 匿名寄存器: ”” 使用复制删除等命令时,都会放入匿名寄存器
- 编号寄存器: “0-”9 “0保存复制的字符串, “1-”9保存着删掉的内容
- 语法规则:
- :[range]s/{pattern}/{string}/[flags]
- range 表示范围 1 表示文件第一行 $ 表示文件最后一行 . 表示光标所在行 % 整个文件(:1,$ 的简写)
- flags 标识 g 表示全局范围
- c 表示选择替换(y 替换、n 不替换、q 退出替换过程、l 替换此处后退出、a 替换此处 和之后所以的地方)
- n 不会替换,只返回替换的次数
- 例如:
- :%s/^/#/g 快速全文注释
- :%s/$/;/g 每行末加上 ;
- :set all 显示所有选项的值
- :set option? 显示一个选项的值,例: :set fileencoding
- 常见设置:
- :set nu 显示行号
- :set ai 自动缩进
- :set list 显示非打印字符,如tab、空格、行尾
- 如果是永久的配置,可以在用户的家目录下修改 .vimrc
- vim –u NONE –N 出厂配置,其中 –u NONE 不加载vimrc,-N不进入兼容模式
- vim +[num] file 打开文件,并将光标置于第n行首
- vim + file 打开文件,并将光标置于最后一行首
- vim –R file 只读模式打开文件
命令查找
- 命令搜索
- whereis 搜索命令的位置和帮助文档的位置
- which 搜索位置和命令的别名
- find 命令格式:find [-path] -options
- path : 要查找的目录,默认是当前目录
- option:
- -name 按文件名的某种规则的查找
- -type 按文件类型查找 f 普通文件 l 符号连接 d 目录
- -size 按文件大小查找
- -exec: 假设find指令的回传值为True,就执行该指令;
- -print 假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串
- 通配符:
- * 匹配任意内容
- ? 匹配任意一个字符
- [] 匹配任意一个中括号内的字符
- find ./ -type f -name ‘*.txt’ –print | xargs rm
- find 命令可以把匹配到的文件传递给 xargs 命令执行
- grep 命令格式:grep –options file
- -c 计算符合范本样式的列数。
- -E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
- -i 忽略字符大小写的差别。
- -n 在显示符合范本样式的那一列之前,标示出该列的编号。
- -s 不显示错误信息。
- -v 反转查找。
- -w 只显示全字符合的列。
- -x 只显示全列符合的列。
- -o 只输出文件中匹配到的部分。