Linux学习随记(三)

本文介绍了文本编辑命令vi的使用,包括打开文件、进入和退出编辑模式、保存退出等操作。还详细阐述了shell脚本相关内容,如命令别名设置、变量设置显示、复合命令、管道命令等,同时介绍了用户身份切换的su和sudo命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、文本编辑命令vi

1. 打开文件:上下左右键可移动光标

vi 文件名

2.打开文件后,按下字母 i 进入编辑模式,按ESC退出编辑模式,输入  :wq 保存后退出vi

浏览模式命令

[Ctrl] + f向下翻页
[Ctrl] + b向上翻页
0 或 Home 键移动光标到行首
$ 或 End 键移动光标到行尾
G移动到文件最后一行
nGn为数组,移动到文件的第n行
gg移动到文件第1行,相当于1G
n[Enter]n为数字,下移n行
/word向下查找word关键字
?word向上查找word关键字
nxn为数字,向后删除n个字符
ndd向下删除光标所在n行
nyy复制光标所在的向下n行
p,Pp为将复制的数据粘贴到光标的下一行,P为粘贴到上一行
i进入编辑模式
:w保存数据
:w!强制保存
:q离开vi
:q!离开不保存
:wq保存后离开
:! command暂时离开vi执行command

二、shell脚本

1.命令别名设置

ls -al设置别名为lm,因此可使用lm代替 ls -al
alias lm='ls -al'

取消别名: unalias lm

2. 变量设置显示 

varible=111      <=设置
echo $varible    <=显示

单引号内的特殊字符仅为一般文本,双引号不受限制

LANG=en_US
var1="lang is $LANG"   <= var1的值为lang is en_US
var2='lang is $LANG'   <= var2的值为lang is $LANG

使用export可导出变量,变量将变成环境变量,但重启电脑后,变量会消失

3、反单引号 ` ,其内的命令将会被先执行,其执行结果将被作为另一命令的输入

ls -l `locate crontab`  <= locate的查找结果将作为ls的输入

4. 变量的键盘读取、声明: read, declare

read [-pt] variable
参数:
  -p : 后面接提示符
  -t : 后面接等待的秒数
如: read -p 'Please input your name:' -t 30 name

declare [-aixr] variable
参数:
  -a : 变量类型为数组
  -i : 变量类型为整数
  -x : 变量导出为环境变量
  -r : 变量为readonly

5. bash的环境配置文件

(1)login shell : 取得bash时需要完整的登录流程。

  (2)  non-login shell : 取得bash接口的方法不需要重复登录的举动

(3)/etc/profile ;系统整体的配置文件

(4)~/.bash_profile或~/.bash_login或~/.profile :用户个人配置文件

(5)source : 读入环境配置文件的命令      

source 配置文件名

6. 复合命令:;,&&, ||

  cmd1; cmd2  : 顺序执行cmd1和cmd2

  cmd1 && cmd2  :  先执行cmd1,如果cmd1执行正确,则执行cmd2,否则不执行cmd2

  cmd1 || cmd2  : 先执行cmd2,  如果cmd1执行正确,则不执行cmd2,否则执行cmd2

7. 管道命令

  竖线 | :  前一个命令的输出作为后一个命令的输如

 

如: 

ls -al /etc | less       <=  将ls的结果作为less的输入,因此可用一些less命令的特性

(1)cut : 字符串截取命令 

cut -d '分隔符' -f fields
参数:
 -f : 取出第几段,多个用逗号分开
如:
 echo $PATH |  cut -d ':' -f 3,5

(2) grep : 字符串查找命令

如:last | grep 'root'

(3)排序命令:sort, wc, uniq

  wc : 显示文件的行数,字数,字符数

8.  用户身份切换

(1) su : 切换用户

su [-lm] [-c 命令] [username]
参数:
 -l  : 代表李longin-shell 方式登录系统
 -m  : 表示使用目前的环境设置而不读取切换用户的配置
 -c  : 仅执行一次命令

(2)sudo

       相对于su需要切换目标用户的密码,sudo的执行则仅需要自己的密码即可。并非所有账户都能执行sudo,而仅有/etc/sudoers内的用户才能执行sudo.

sudo [-b] [-u 新用户账号]
如:
 sudo -u sshd touch /tmp/mysshd   <= 以sshd的身份在/tmp下新建mysshd文件

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值