linux系统结束vim进程的指令,Linux/Vim命令(持续更新)

始终记住,命令行的四大要素:环境变量、可执行程序、工作路径、参数。

1.stdin stdout stderr

在操作系统中,每一个进程都绑定了三个文件,暨stdin、stdout、stderr,他们之间用文件描述符fd区分:

2a461805632f82e6854c948a084f6f47.png

所以可以根据fd不同,将文件重定向到不同的文件中:

java -cp . Demo 1>out.txt 2>err.txt还可以使用2>&1的形式,将stderr重定向到stdout中。

Linux系统的垃圾桶是/dev/null,所以可以将不需要的输出,重定向至垃圾桶中。

>与>>区别在于,前者是直接覆盖,后者则是追加。

2.路径相关回到上一次目录: cd -

检索:find

打开文本编辑器:gedit a.txt

查看文本内容:cat a.txt/cat a.txt | less (分页查看)

显示当前目录:pwd (print working directory)

查看某个可执行程序所在的目录:which

例如:which java | which wget(常见的Linux下载文件工具)

3.用户相关查看当前登录用户:whoami

查看系统中的所有用户 cat /etc/passwd

切换用户:su (switch user)

为当前系统创建用户 useradd xxx

删除用户 userdel xxx

退出当前用户 exit

4.ssh相关查看版本 ssh -V(大写)

使用ssh连接远程服务器:ssh {账户名}@{服务器ip地址}

例如:ssh root@192.168.19.130

生成密钥对:ssh-keygen -t [rsa|dsa]

4.1 解决使用ssh连接root用户出现permission denied的问题

问题详情为:使用sudo su 切换root用户可以正常登录root,但使用ssh root@{ip}却提示密码错误。解决步骤如下:sudo passwd root  --重置密码

sudo vi /etc/ssh/sshd_config  --修改 PermitRootLogin yes

sudo service ssh restart -- 重启ssh服务复制代码

5.ls命令

众所周知,ls命令用于查看当前目录下的文件信息,对于ls命令下的各个参数,各自的含义如下:ls -l 查看文件的详细信息,例如:

36723c340b35c55d6ee89b06ba487c2b.png 如何区分可执行程序:windows(.exe/.bat/.com) linux(只看该文件的x位)所以,对于Linux系统,可以通过chmod {n}{n}{n}的方式,让文本文件修改为可执行的:

5cdf306adcd2fa16a82ae7a66eec6454.pngls -h 把文件大小换算为人类可读的k/m/g等单位

ls -a 查看所有文件,包括隐藏文件(以.开头的文件)

6.其他echo -打印内容,可以通过:echo $PATH --打印环境变量 | echo $HOME --打印HOME目录

export -显示系统中的所有环境变量,并且可以通过export AAA=BBB | unset AAA增加|删除环境变量,(在原有环境变量的基础上增加内容使用:export PATH=$PATH:{新增内容})但是注意:在shell中对环境变量的修改,只生效于当前shell中,新建shell则修改失效。

file-识别文件的编码和类型

ln -创建一个链接

mv a b-将文件a移动到文件夹b中

apt get | remove安装或卸载

history | grep {过滤的关键字}

alias指定别名,例如:alias java8 = /root/jdk8u262-b10/bin/java

| grep过滤结果

| wc -l统计行数

注意:1.命令行参数中如果存在*,会存在参数的展开问题

2.命令行中的" "也会存在参数展开,但是' '则会原封不动的显示,例如:

2f78344c702f0ff17b64f0f2eaff9819.png

7.进程相关1.pstree--查看进程树,可选参数-a:显示每个进程的完整指令|-p 显示进程的pid

8.如何将当前session中的export,alias进行持久化

前面提到,在当前session中对环境变量,以及alias所作的修改,在退出登录或者关闭窗口后,所作修改会失效。那么如何将其持久化:1.如果修改只需要对当前用户生效,则只修改~/.bash_profile文件即可,如果需要对所有用户生效,则修改/etc/.bash_profile文件。

2.修改完成后,重新打开session会话,

或者. ~/.bash_profile | source ~/.bash_profile使得修改立即生效。举例:

574614acd894198593ae79cdddc711e6.png

9.常见问题处理

9.1 Linux中端口被占用使用lsof -i:端口号 查询端口被哪个进程占用

使用sudo kill -9 进程PID 删除指定的PID进程

10.编写Shell脚本

shell脚本的第一行,用于指定shell脚本实际调用程序,前两个字符称为Shebang,由#!构成,例如#!/bin/sh或者(#!/user/bin/env bash),更推荐写后者,后者会去环境变量中找可执行的程序。Shell脚本中," "包裹的内容会展开,先去本地变量中查找,再去环境变量中查找,找不到则置为空。' '包裹的内容会原样打印输出。

Shell脚本中,空格很重要,不需要的地方不要随便加空格,并且一个空格与两个空格的作用不相同。

Shell中的条件判断,以if开始,fi结束,其他语句同样适用。符号含义符号含义-nstring is not null.-zstring is null, that is, has zero length

-fTrue if file exists and is a regular file.(regular文件指的是常规文件,文本、图片、可执行文件等,软链接排除).(点)相当于source命令

-hif file exists and is a symbolic link.expr用于在Linux中执行表达式,详细内容看参考文档2

`{cmd}` 反引号被反引号包裹的部分,为将要执行的命令。; 分号命令分隔符,一行中的多个命令用分号分隔。

$$Shell本身的PID$!Shell最后运行的后台PID

$?命令执行结束的返回值$* | $@返回所有的参数,后者用" "分隔

$#添加到Shell的参数个数$0Shell本身的文件名

$1-$n添加到Shell的各参数值${x:-1}if the third argument is null or unset, replace it with what's after :-

export将变量导出至该进程fork出来的子进程中使用exec用一个新的子进程,代替原有的进程

-x在Shell脚本中,在shebang中加入-x参数,可以在执行该脚本的同时,打印Shell中定义的变量信息

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值