客户端xshell连接linux中vim不能正常使用小键盘的问题

注意:绿色字为注释橙色字为注意;蓝色字为和类似的区分


目录说明

5 、 /home普通用户的"家目录"

    给系统每增加一个“普通用户”的同时,都会在该目录为该其创建一个文件目录

    代表该用户的“家目录”,用户后期使用系统的时候会首先“进入”其家目录

    家目录名字默认与当前用户名字一致,用户对家目录拥有绝对最高的权限。

6 、 /root该目录是root管理员的家目录,root用户登录系统后首先进入该目录

7 、 /var全称:variable  可变的、易变的

    该目录存储的文件经常会发生变动(增加、修改、删除)

    经常用于部署项目程序(php)文件

扫描二维码关注公众号,回复: 891916 查看本文章

 /var/lib //服务产生的数据放这

/var/log //服务产生的日志

8 、 /boot系统启动核心目录,用于存储系统启动文件

9 、 /etc系统主要配置文件目录

    例如: /etc/passwd  用于存储用户信息的文件 /etc/group   用于存储组别信息的文件

  /etc/init.d //启动脚本位置

 /etc/sysconfig //初始化环境配置文件位置

10 、 /lib全称:library 系统资源库目录

11 、 /selinux全称: secure enhanced  linux安全增强型linux

    对系统形成保护,会对给系统安装软件时有干扰作用

12、proc

cat -n /proc/cpuinfo //看服务器cpu

cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l     //查看物理CPU的个数

cat /proc/cpuinfo |grep "processor"|wc -l    //查看逻辑CPU的个数

cat /proc/cpuinfo |grep "cores"|uniq  //查看CPU是几核

总结一般情况下:
/bin:系统的工具程序
/usr/bin:提供给管理员和一般用户使用的程序
/usr/local/bin:一般是用户安装的程序

常用指令

用户、组、权限、用户相关

用户:

1、useradd //【增】添加用户-s不允许其登录、-M 不生成家目录

 > useradd  -g 组编号-u用户编号-d家目录username (-m不创建家目录-s不允许他登陆)

2、usermod //【改】修改用户信息,组编号等-g

> usermod  -g 组编号-u用户编号-d家目录-l名字username

  注意:家目录修改后需要手动创建,不同于创建用户家目录设置

          创建用户时设置家目录,该目录会自动创建

          修改用户家目录时,该目录不会自动创建(需要手动创建)

3、userdel //【删】删除用户-r的同时删除家目录

> userdel -r username  //删除用户的同时也删除其“家目录”

组:

1、groupadd //【增】添加组

     > groupmod -g gid  -n newname  groupname

2、groupmod //【改】修改组

3、groupdel //【删】删除组,注意:只有空组(内部没有用户信息)才允许删除


权限:

1、chmod 777 文件或目录名//设置权限(传统权限分组)

    1.1、"字母相对方式"设置权限

    权限: rwx执行

    用户: u主人  g同组  o其他组

    chmod  u+/-rwx, g+/-rwx, o+/-rwx  文件

        不同用户通过",逗号"分隔

        在同一个用户里边,+/-只能用“一个”

        "rwx"在同一个用户里边可以设置一个或多个

        "ugo" 每次权限操作可以设置一个或多个用户

 

   >chmod u+rw  filename        //主人增加读、写

   >chmod g-rx  filename        //同组删除读、执行

   >chmod u-w,g+x filename      //主人删除写,同组增加执行

   >chmod o+w,o-x  filename     //其他组用户“增加写、删除、执行”

 

   1.2、 "数字绝对方式"设置权限(把原来的权限替换掉,因为是绝对方式)

   :4    :2   执行:1

   权限类型:

   0:  没有权限

   1:  执行

   2:  

   3:  写、执行

   4:  

   5:  读、执行

   6:  读、写

   7: 读、写、执行

字母和数字方式取舍:

    权限修改的比较"",就使用字母方式

    权限修改的比较"",就使用数字方式

2、setfacl  //acl(对一个人、一个文件)精确划分权限http://blog.csdn.net/qwq_qaq/article/details/54882203

3、chown//将指定文件的拥有者改为指定的用户或组

4、chgrp //命令用来改变文件或目录所属的用户组

用户相关:

1、passwd 新添加的账户名 为其设置登录密码

2、su 切换用户

    > su -  root        //效果同su

    > su  普通用户名称  //如果你当前是超级管理root向普通用户切换

    > exit        //当前用户退回到之前用户

    su多次使用,用户会“累加”,建议“su” 和 “exit”匹配使用

3、whoami  //查看当前登录用户

4、exit 或 ctrl+d //退出到之前用户

5、id  //当前用户(活跃用户)

查看目录 || 文件

目录切换:

1、> cd  目录名字  //切换到哪个目录

2、> cd  /        //切换到根目录

3、> cd  ..       //向上级目录切换

4、> cd  ~         //快速切换回自己的家目录

查看目录下的文件信息:

1、> ls          //list查看当前目录下有什么文件

2、> ls  -l  ll    //list  -list通过详细内容形式查看目录下的文件内容

3、 > ls  目录    //查看指定目录下文件名字信息

4、 > ls  -l 目录  //以详细列表形式查看指定目录下文件名字信息

5、 > ls  -a      //list  all查看全部文件,包括隐藏文件

6、 > ls  -al     //list  list all以详细列表形式查看全部文件,包括隐藏

文件:

7、 > ls  -i      //查看目录下文件名字的索引号码(id号)

-h  //人性化显示(显示文件大小)

-d  //查看目录属性

操作目录 ||文件

1、cat //查看文件内容

    > cat  filename(需要操作的文件名)     //在终端显示文件全部内容

-n 显示的时候带行号(空行编号) 

-b 显示的时候带行号(空行编号)

    > more filename     //通过"敲回车"方式从第一行逐行查看文件内容;不支持回看;q键 退出查看

    > less filename     //"上下左右"键方式查看文件各个部分内容;支持回看,q键 退出

    > head  -n  filename  //查看文件“前n行”内容

    > tail  -n  filename  //查看文件“末尾n行”内容

 -f 当文件增长时,输出后续添加的数据;

     和grep一起使用

    > cat -n log.xml | grep -C 5 'subscribe' //查找log.xml文件中,有subscribe关键词的行,并显示其上下5行

-C上下5行

-B5行

-A5行

2head -5路径/文件名//查看前5

3tail//查看后5

tail  列出尾行  -n 指定行数   -f  动态查看数据写入

locate //也是查找文件,效率上会比find快一点

4、find 路径 -type  f  -name文件名//查找文件文件名*’ #模糊查找

    ① name 根据文件名查找指定的文件

    find  目录 -name  完整文件名称

 > find  /  -name  passwd[完整名称]    //"递归遍历"系统全部目录查找名字等于passwd的文件

 > find  /etc  -name passwd[完整名称]   //递归遍历/etc及内部所有目录查找  名字等于passwd的文件

    > find  目录 -name  "an*"[部分名称]     //模糊查找文件名字以an开始的

    ② 对查找的目录层次进行限制

    -maxdepth  //限制查找的最""层次

    -mindepth  //限制查找的最""层次

    > find / -name passwd -mindepth 3 -maxdepth 4   //34个层次的目录里边定位passwd文件

    ③ 根据文件大小进行查找

    size   单位

    > find ./目录路径 -size  50c      //在当前目录下查找大小[等于]50个字节的文件

    单位:

        数量         单位      实际大小

        100 -------> 512字节:【100*512字节】

        50c -------> 字节 :   【50字节】

        50k -------> 千字节: 【50*1024字节】

        50m -------> 兆字节    【50*1024*1024字节】

    > find  ./  -size  +50c    //在当前目录下查找大小[大于]50个字节的文件

    > find  ./  -size  -50c    //在当前目录下查找大小[小于]50个字节的文件

    

④ 查找10天前修改的文件(源慕课4-3,12分开始,17分)

⑤搜索文件(效率比find高,比find搜的快)源自慕课4-1(视频上的系统是6.3

 > find 文件名 //他在/var/lib/mlocate后台数据库(默认每天更新1次)中搜索,所以新建的他搜索不到

    > updatedb //强制更新数据库后就可以搜索到了

5、grep '要查找的内容' 要查找的文件名(绝对或相对路径)  //【查行】支持正则

-v //取反

-E //能使用扩展正则表达式

> grep -Ev '^#|^$' nginx.conf //去掉配置文件中,以#开头的,和空行。用cat -A就能看出来空行是$

> grep  'sbin'  /etc/passwd       //passwd文件中查找sbin字样,会把sbin所在行的内容都输出

find区别find是查找文件在哪里,grep是查找文件中的xx些内容。此查找不是在vim编辑器中查找vim查找内容用的是/和?

6、awk '{print $1}' 文件名 //【查列】输出第1列的数据。英文单引,支持正则。

-F '分隔符' //默认的分隔符是空,以什么分隔符进行列和列的切分,英文单引

7、sed -i 's#no#yes#g' 要替换的文件名 //【增改删】不使用vim的替换(不打开文件情况下的替换),支持正则。

注意:和vim的替换差不多,vim中是:%s#no#yes#g    //将整个文档的no替换成yes

总结:awk、grep、sed三剑客,都支持正则

6、wc 文件名 //统计

-l //统计行数

> grep '80.82.70.187' /var/log/nginx.access.log | awk '{print $1}' | wc -l //先取行,在取列,最后统计。统计80.82.70.187有多少个

7、du -h //查看文件或目录的大小k m的形式查看文件占据磁盘空间大小

8、df  -h //盘的使用情况


对文件/目录的【增删改】

1、mkdir 目录//【增】新建-p递归新建

2、touch 文件//【增】新建

3、mv 原目录路径 新目录路径//【改】移动(目录文件均可操作)

4、rename //修改文件名

5、cp   源目录路径 新目录路径//【改】复制(目录文件均可操作)-r是给目录用的,递归复制

6、rm -rf   //【删】递归删除目录和文件

7、unlink  //【删】文件名只能删除文件

8、echo 内容 >路径文件名//【改】覆盖追加2>>换行追加(不覆盖),内容复杂的话,用引号引起来,单词用空格间隔


安装和解压

1、yum install 软件包名-y   #安装软件包

2、rpm 傻瓜式下一步安装软件 


4、zip压缩和解压

范例:

zip命令可以用来将文件压缩成为常用的zip格式。unzip命令则用来解压缩zip文件。

4.1、 我想把一个文件abc.txt和一个目录dir1压缩成为yasuo.zip

 zip -r yasuo.zip abc.txt dir1

4.2、我下载了一个yasuo.zip文件,想解压缩:

# unzip yasuo.zip


传输

1、lrzszrz)上传 、下载(sz

前提是要安装lrzsz才可以使用,这两个指令:

yum install lrzsz -y  //执行这句就安装了

上传示例:rz敲回车 //就弹出了选择文件的框,选择完点确定即上传

下载示例:sz要下载的文件名 //弹出下载到哪里

2、ftp 文件传输

3、scp远程拷贝(俩台服务器之间传文件)

scp -r ./lnmp.zip @112.xx.60.46:/ #将lnmp.zip发送到112.xx.60.46服务器上,发送成功后,文件保存在112....服务器的根目录下

注意:给自己的服务器理解为A,对方(112...那台)理解为B

@前面是B的用户名,不写的话,默认是root

@后面是ip

:后面是保存到B服务器的哪个地方

下图是在A服务器上输入指令


当A服务器执行该指令时,会给B服务器踢掉线

B服务器会显示,下面2行

Connection closing...Socket close.

Connection closed by foreign host.

上面是阿里云-》阿里云上传



阿里云-》腾讯云上传,腾讯云就不会被踢掉线


4、wget 网址 //下载...软件等(网址里面是啥就下载啥)

5、github clone 网址 //从github上下载(你需要的类库,下载那就有个克隆,给那网址粘过来)

git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim 

注意:最后面红色的,是给下载到哪个目录下,这里下载到了家目录

6、curl 网址 //发请求的(相当于文字界面的浏览器吧)

其他

1、netstat -nltp //查看端口

2、ifconfig //网络配置,查看ip

3、hostname //显示主机名

4、help  //指令帮助

5、pwd //当前所在的位置

6、clear //清除之前的指令

7、ln -s  源文件名 软连接名 //软连接(快捷方式源文件使用绝对路径目录和文件都可以做软连接。删除源文件后对应的软连接变为无效链接,闪红色字体

8、ln -d 源文件名 硬链接名 //硬链接(多个备份源文件使用相对路径目录不能做硬链接。同一个源文件的硬链接,不能跨区(必须在同一个硬盘,同一个分区)里面

9、tree //以结构树状显示(需要单独安装)http://www.cnblogs.com/leijiangtao/archive/2014/06/08/3776280.html

10、which //查看指令对应的可以执行程序文件位置

11、cat /etc/redhat-release  //查看contos的版本号

date             日期
cal              日历
bc               计算器

man              查看帮助

fdisk -l         查看磁盘分区

echo   输出

uname -a  查看系统内核版本号


 服务管理

1、图形模式与命令模式进行切换,只有root用户可以用

># init 3     //图形 向 命令模式切换

># init 5     //命令 向 图形模式切换

2、runlevel //查看运行级别


进程管理

11、killall nginx//杀进程(全杀)

12、pkill//按照进程名杀死进程和killall差不多

13、top  //性能分析工具,主要用来判断服务器的健康状态 

http://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316399.html

http://blog.csdn.net/qq_33862644/article/details/79292770

14、ps//当前运行的那些进程 

ps -aux //查看系统中的所有进程,主要看cpu占比

ps -le //查看系统中的所有进程,主要看优先级

http://www.cnblogs.com/peida/archive/2012/12/19/2824418.html

http://blog.csdn.net/qq_33862644/article/details/79292770

15、kill 进程号 //删除执行中的程序或工作(单杀) 

http://man.linuxde.net/kill

http://blog.csdn.net/qq_33862644/article/details/79292770

16、pkill -9 -t tty //根据tty,T用户,先拿w看一下在T用户

16、pstree//以树状图展示进程之间的关系

http://man.linuxde.net/pstree

http://blog.csdn.net/qq_33862644/article/details/79292770

17、帮助指令

 > man ls //vi编辑器似的,进入之后直接输入 要查询的指令 回车就ok,按n进入下一个,按shift上一个(man的级别:6分钟开始)

 > man -f 命令 //某个指令都有哪些帮助级别

 > man -k 命令 //和这个命令所有有关的帮助

18、其他帮助

 >ls --help //中文的帮助

19、shell //内部命令帮助4分钟开始

20、nice //修改进程的优先级(不能修改已存在的进程)

21、renice //修改进程的优先级(可以修改已存在的进程)

22、& //放入后台

23、ctrl + z //放在后台暂停

24、jobs //查看后台中执行的任务

25、fg %工作号 //将后台暂停的工作,恢复到前台

26、bg %工作号 //将后台暂停的工作,恢复到后台

27、logout //退出当前终端

28、vmstat //监控系统资源

29、free -m //以兆来查看内存使用情况

30、uptime //查看cpu的平均负载

31、lsof | more //所有进程调用的文件

定时任务

指令请参考:http://blog.csdn.net/shenlingsuifeng/article/details/50888061
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容    
crontab -r //删除没个用户的cron服务    
crontab -e //编辑某个用户的cron服务
crontab -l -u root //查询root用户下都啥定时任务

案例:定时访问某个url




查看crontab定时任务工具是否开启,请参考:http://www.bubuko.com/infodetail-2234008.html

shell

管道和重导向|、>、>>、<

  重导向就是使命令改变它所认定的标准输出
 “>”可将结果输出到文件中,该文件原有内容会被删除(相当于覆盖),
 “>>”则将结果附加到文件中,原文件内容不会被删除(相当于追加)。
  “<”可以改变标准输入(输入重定向)一般导入文件用,如 软件升级包。
 如: cat data1.txt>>data2.txt(将data1.txt文件的内容加在data2.txt文件的后面)  



  管道“|”可将命令的结果输出给另一个命令作为输入之用(相当于 | 前面的结果,当做 | 后面的输入):  
  man mtools|grep mbadblocks (在mtools的帮助中搜索包含“mbadblocks”的句子)  

  man mtools|less(把输出用管道导入到一个叫做 less 的工具。less 是一个分页工具,它允许你一页一页地查看信息。)


连接符号:“;” 

  当有几个命令要连续执行时,我们可以把它们放在一行内( 在1行内执行多个命令 ),中间 用“;”分开 。  
  mkdir myfile;cp /tmp/myfile.txt myfile(先建立一个目录myfile,然后把myfile.txt拷贝到新建的目录中) 

&& 和 ||

注意:||的短路效果 

 

示例:



() 命令组合

 语法格式如下:(command1;command2[;command3...])

 shell 提供了两种方法(() 和 {})实现将几个命令合作一起执行代替独立执行。这种方式并不能控制命令是否需要执行,仅是将多个单独的命令组合在一起执行,最终命令的返回值将由最后一条命令的返回值来决定。 

1 一条命令需要独占一个物理行,如果需要将多条命令放在同一行,命令之间使用命令分隔符(;)分隔。
执行的效果等同于多个独立的命令单独执行的效果。 
2 () 表示在当前 shell 中将多个命令作为一个整体执行。需要注意的是,使用 () 括起来的命令在执行前面都不会切换当前工作目录,也就是说 命令组合都是在当前工作目录下被执行的,尽管命令中有切换目录的命令。  
3 命令组合常和命令执行控制结合起来使用。 
 
示例 4 
malihou@ubuntu:~$ rm ~/Desktop/1.txt || (cd ~/Desktop/;ls -a;echo "fail") 
 
在示例 4 中,如果目录 ~/Desktop 下 不存在文件  1.txt,则执行命令组合。


通配符 ? * [] [-] [^]


其他特殊符号


------------------------------------------------------------------------------------------------------------


文件系统

1、mount //挂载

2、umount //卸载

3、fsck //检查并且试图修复文件系统中的错误  http://man.linuxde.net/fsck

4、 


系统

3、shutdown -h //关机

4、># poweroff  //关机(关机了开机就没法开)

5、reboot //重启(要小心点,服务器好多人一起用))

6、># shutdown [选项]时间(源慕课7-1

选项:-c //取消前一个操作命令

-h    //关机(不能关)

-r   //重启

7、>#exit //退出登录


网络应用

1、curl    //http的上传和下载  http://www.cnblogs.com/duhuo/p/5695256.html

2、telnet  //远程登录服务器的命令(同sshhttp://www.cnblogs.com/peida/archive/2013/03/13/2956992.html

3、mail //发邮件指令

4、elinks //纯文本界面的www浏览器http://man.linuxde.net/elinks

5、host //域名查询(测试域名是否正常工作)http://man.linuxde.net/host

常用工具

6、ssh //远程登录服务器的命令http://os.51cto.com/art/201205/335402.htm

7、screen //切换屏幕的init3切换到命令行init5切换到图形界面)http://man.linuxde.net/screen

10、who //当前登录的用户信息

9、date //设置系统时间日期http://man.linuxde.net/date

软件包管理

10、apt-get //安装软件http://www.cnblogs.com/274914765qq/p/4568291.html


contos7指令

1、防火墙:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
systemctl start firewalld.service #开启防火墙
注意:关闭防火墙后就不安全,正确的做法是,外部需要访问哪个端口,就开放哪个端口



VIM编辑器


客户端xshell连接linux中vim不能正常使用小键盘的问题

    xshell:文件--属性(properties)->(终端)Terminal中的(终端类型)Terminal Type 修改为linux 或者ansi就可以正常使用小键盘了。--- 记住一定要重新打开窗口进入,才能生效

1)命令模式-->编辑模式切换(插入/insert)

    a "光标"向后移动一位

    i "光标""内容"没有变化

    o ""起一个空白行

    s "删除"光标所在字符

    

    2)尾行模式作用(和命令模式一样,都需要先按下esc)

    :q      quit退出编辑器

    :wq     write quit 保存并退出

    :w      write 保存

    :q!     强制退出(不保存)

    :w!     强制写保存

    :wq!    强制保存退出

 

    :set number 或 set nu           //给编辑器设置行号

    :set nonumber 或 set nonu       //取消行号设置

 

    :数字  //光标跳转到数字所在行


    //内容替换 "cont1"被替换为"cont2"

    :s/cont1/cont2/         //把光标所在行"第一个"cont1替换为cont2

    :s/cont1/cont2/g        //把光标"所在行"全部cont1替换为cont2

    :%s/cont1/cont2/g       //"整个文档"中的全部cont1替换为cont2

    3)命令模式操作

        ① 光标移动

        a.字符

            (k)  (j)  (h)  (l)

        b.单词

            w  word下个单词首字母

            e  end()个单词尾字母

            b  before()个单词首字母

        c.

            $ 行尾

            0 行首

        d.段落(两部分内容中间有空行,彼此成为段落)

    shift + {  上  //()个段落

                }           //()个段落

        e.屏幕(不给翻屏)

            h  屏幕首部

            l  屏幕尾部

        f.文档

            G   文档尾行

            :1  或 gg 跳转到文档第一行

            6gg  跳转到6行(先按个6 在按gg)

        ② 内容删除

            dd      删除光标所在行

            n+dd    包括当前行在内向下删除n行内容

            x       字符级删除,删除光标所在字符

            cw      光标所在字符删除至单词结尾(是删除单词的便捷方式)

                    同时会进入编辑模式

        ③ 内容复制

            yy      复制光标所在行

            n+yy    包括当前行在内向下复制n行内容

            p       对复制(删除)好的内容进行粘贴操作

        ④ 便捷操作

            /要搜索的字符串         //在文档首 向下搜索小写n(next)一个;大写N(功能和向上搜索差不多)

    ?要搜索的字符串        //在文档尾 向上搜索

            u      // undo撤销,从文件打开后的所有操作都可以撤销

            .(点)       //重复执行"最近"的一条指令

            ZZ      //直接退出

            :%s#no#yes#g  //将no替换成yes,速记是冒号百分号sg,然后中间加3个#

批量添加注释:

按ctrl + v,显示这个(在按下这个就没了)

用下键进行选择,选择好后

shift + i 进入(编辑模式)

输入#号

按esc,就ok了

批量删除注释:

按ctrl + v

用下键进行选择,选择好后

按d(delete),就ok了



猜你喜欢

转载自blog.csdn.net/qq_33862644/article/details/79178731
今日推荐