Linux命令汇总

  1. linux查询进程占用哪些端口:netstat –nlap
  2. 从尾部将指定内容输出指定文件:tail -n 100000 /data/HaierServerHomeAir/logs/uhome_service_log >> /data/log07181113.txt
  3. Xxx is not soduers file问题:看看用户是否是root,如果不是,su命令,输入密码,此时切换到了root用户;
  4. vim进入到编辑模式:1. Ctrl+C;2. :e!;下一步就是保存:1. Ctrl+C;2. :wq!
  5. Vi进入编辑模式:1. 摁一下i就可以了;保存:1.ctrl + c;2. :wq!,vim是vi的升级版本,vi是linux原生的编辑器
  6. 查看当前目录路径:pwd(Print Work Directory)
  7. Linux下面命令有的是单横线,有的是双横线;但是这两种横线其实是有开发的时候定义的,并没有什么硬性规定;
  8. 压缩文件:
    tar -czf uos07311445.tar.gz uos
    uos07311445.tar.gz为目标gz文件,ous为要压缩的文件
  9. 解压缩文件:首先是将路径定位到要解压缩的路径,然后执行:
    tar -xzvf uos07311445.tar.gz
    文件将直接解压缩到当前路径;-x代表校验释放,-z代表校验是否为zip,-v显式解压缩的文件,-f指定压缩/解压缩的文件后面紧跟着文件路径(如果是当前路径仅需要写出文件名即可);
  10. 删除文件:rm uos07311445.tar.gz(删除文件,目录不行);
  11. lsof(list open files):罗列系统打开的文件
  12. 查看各进程占用cpu和内存的百分比(%):top
  13. 查看文件/etc/sysctl.conf,第一个开头为"/",代表根目录,所以到etc目录可以直接"cd /etc",然后通过
  14. cat sysctl.conf来查看文章;cat无参指令将会一次性加载文章的所有内容(vi只会加载满屏数据,但是vi具有编辑功能,cat是只读功能);cat –n 用来输出文件指定行数的内容,还可以用来将一个文本的内容输出到另外一个文件 cat file1 > file2(">"代表附加到覆盖,">>"代表追加;顾名思义,>>代表的累加,当前的输出>是基于上次的输出的>>;
  15. vi sysctl.conf来编辑文本;敲入"i"是进入到编辑模式;敲":q!"来退出文本;
  16. 查看命令服务器的log文件(看心跳等等信息),
  17. 1)使用cd /data定位到根目录下面的data文件夹;
  18. 2)然后dir查看里面的文件夹,敲入cd HaierCommonServer/logs;
  19. 3)查看uhome_service-XXX最先的log,使用tail –f uhome_service-XXX,通过这种方式来动态查看文件的变化(首先显示的是文件的尾部信息,然后是动态的显示文件的变化信息);
  20. 查看进程的端口:netstat –anp,展示所有的进程所占用的端口;–anp,展示所有的进程所占用的端口;根据端口查看进程:lsof i:8080;
  21. 有的log非常的大,不能使用tail -50f XXX之类的方式来查询,比如要全文检索"推送",我们能做的就是vi XXX,回车,返回n行,之后敲"/",这样就会进入到查询模式,敲入"推送",回车,定位到了第一个处,然后"ctrl + N",会定位到下一处,通过上下箭头则可以查看定位出前后的位置的内容。
  22. 剪切,在linux的意义是移动:mv source_filepath+filename, destination_folder
    例如:mv /data/HSJAchievement_Document/AirConditionWash_src.zip /data/AirCondition_Document
  23. 设置共享目录
    mkdir /mnt/shared 新建挂载点(mountpoint)
    mount -t vboxsf share /mnt/shared 挂载共享文件夹
    cd /mnt/shared 进入共享文件夹
  24. 看linux版本:lsb_release –a
  25. 测试gcc的安装:
  26. /root/nginx-1.2.4/configure
  27. 一定要全路径,这样才会测试到,如果显示为"C compiler gcc is not found"则代表gcc没有安装成功;
  28. grep是对于文本进行正则表达式过滤,-a代表对于二进制格式文本也看做文本来处理;有的时候会有"Binary file 二进制文件名 matches"的问题,通过在grep后面添加-a命令再加上过滤条件即可避免这个问题;
  29. Linux删除文件(夹)命令:rm –rf XXX;
  30. 删除某个文件夹下的所有文件:rm -rf /test/*
  31. Linux查看文件/文件夹大小:du –sh *
  32. 全盘搜索:find –name XXX;正则匹配的话, find –name libevent*,之前就是因为直接搜索find –name libevent才导致啥也没有搜到(因为libevent文件都是后缀版本号的);
  33. 脚本执行,如果是直接执行需要使用./<filename>;如果是全路径,也是需要如此,例如执行/var/jdk1.6.0_33/bin/下面的jstack,就需要敲入:. /var/jdk1.6.0_33/bin/jstack
  34. 如果想要在任意路径下执行,就需要写执行脚本,并放置在/usr/local/sbin/下面,例如家用的tomcat日志就是放置在./usr/local/sbin/jylog;
  35. Jstack使用方式:首先是top看看cpu占用率,然后是全盘搜一下jstack,使用上面的命令;然后用命令:jstack -l <PID>查看该进程里面的堆栈。
  36. 58上面的路径是:./root/jdk1.6.0_33/bin/jstack
  37. 167上面的路径是:./usr/java/jdk1.6.0_33/bin/jstack
  38. 正式服务器路径:./var/jdk1.6.0_33/bin/jstack
  39. 文件过大,尤其是日志文件,可以通过split命令进行分隔;
  40. wc –l filename :可以获知某个文件共有多少行;分隔是可以通过行/size进行分隔;
  41. split –l 50000 filename newfilename:按照5万行一个文件进行分隔;分隔到"newFileName"的log文件中。后缀分别为aa~ZZ(最多支持分隔24*24个文件)
  42. 查看某个端口的的数量:netstat -anp | grep -i 56801 | wc –l;wc的意思是word count,l就是list,netstat命令本质是输出一个文件;其后面的参数是对netstat命令进行直接过滤和筛选;管道符(|)则是代表对文件进行处理;grep就是过滤文件中的关键字;wc同样是对于netstat命令导致的文件进行word count;
  43. 从尾部将指定内容输出指定文件:tail -n 100000 /data/HaierServerHomeAir/logs/uhome_service_log >> /data/log07181113.txt
  44. Linux执行脚本之所以需要使用./,是因为./的意思是当前目录,但是执行脚本是需要全目录的,windows下面执行exe文件默认的就是当前目录,但是linux出于安全性考虑没有这样处理,只要是执行脚本就要指定全路径,所以需要在前面加上./指定是当前目录下的XX脚本文件;
  45. 还有一种方式就是写一个脚本,比如Redis就有自己的启动/停止脚本;默认在/etc/rc.d/init.d/下面;把这个脚本拷贝到/usr/local/sbin/下面;但是这个脚本需要修改;他的很多路径有问题;而且还有一点,如果想要使用这个脚本需要让redis运行在"daemonize" yes情况下(redis.conf文件下进行配置)
  46. vi中查找关键字:在命令模式下输入"/",敲回车,然后点击"n"查看下一个(next之意),shift+n,查看上一个;
  47. linux下面的etc文件夹其实"其他,等等"的意思,但是所有的配置文件都放置在这个路径下面,比如如果想要配置nginx,通过find -name nginx找到了一堆,那么直接选择etc目录下就可以找到配置文件;usr/sbin下面是管理系统用的bin文件,即以root权限操作的可执行文件;
  48. Linuxviwq其实是writequit的意思;
  49. 查看端口被那些程序占用使用lsoflist open files)命令:lsof -i:80;还可以添加协议限制lsof -i TCP:80
  50. 切换用户suswitch user,一般普通用户切换为高级用户使用此命令;sudo则是不需要切换,但是需要管理员在sudousers配置文件中指定那个用户可以做什么事情;
  51. 看硬盘空进大小df –h,想要看分区格式使用df –Text3,ext4等);
  52. vmstat n(n=1,2,3... ...)n代表的是延迟时间;显示列bibo代表block input以及block output
  53. 索引,因为iNode很大,所以建立了一个位图索引,这让我想到了昵称生成里面的机制,只是把索引读到内存中,确定昵称也是通过内存昵称进行操作的,避免了数据库复杂的SQL
  54. Linux的内存模式是虚拟内存映射到物理内存;
  55. getconf LONG_BIT 得到系统位数,32/64
  56. lsb_relase –a 查看Linux版本lsbLinux standard base,这是Linux发行版本信息,内核信息使用uname –a或者cat /proc/version来进行查看;
  57. 看内存信息free,默认是以K为单位,后三位为K,前面三位M,再往前是G1049880,就是1G49M889K
  58. Linux~代表用户的根目录;比如连接到阿里云之后,默认就是~,使用pwd命令看后,发现时/root,因为登陆的用户就是root,所以用户的根目录就是root~等价于$home
  59. 查看某个程序是否启动,有两种方式:一种是看进程,ps –ef | grep [app name],其中-e代表是所有的进程,-f代表的是full,即进程的详细信息;第二种方式看端口,netstat –npl | grep 873或者lsof –i:873都可以确定程序是否启动;
  60. 想要查询yum可以安装的软件,yum search [part of application name]
  61. make是编译过程(使用gcc等编译工具,不同版本操作系统环境不一样,需要基于当前系统进行编译,所以没有编译好的,现成的东西);make.sh install,是执行安装,将程序安装到系统中,注册程序,拷贝文件到bin下面等;
  62. 对于防火墙iptables,修改完毕后,切记要调用iptables save进行保存,才会重启后仍然生效;
  63. 打开一个端口:iptables –A INPUT –p tcp --dport 11901 –j Accept
    -A, append to INPUT/ OUTPUT chain;
    -p, protocal, tcp/upd/icmp
    --dport, destinate port, means the outer access the port, relative option is –sport, source port, means the the port packets will be out;
    -j, means jump, jump to target: Accept/ Drop
    查看iptables内容iptables –L,如果想要删除规则,首先
    iptables –L –line-number
    显式带有行号的规则列表,然后通过
    iptables –D INPUT/OUTPUT num
    进行删除,需要制定INPUT以及output是因为这是两张独立的链表(chain),索引行号也是独立的;
  64. 如果想要设置开机启动,最简单的办法就是在/etc/rc.d/rc.local文件中附件上要启动的内容,比如启动FastDFStracker,另起一行,输入:/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart即可;但是有一点很重要,就是要让r.local文件具有x(执行)权限,所以还需要执行chmod +x /etc/rc.d/rc.localrc.local文件是Linux系统启动之后做的最后一件启动相关的事情,之前都是把init.d下面以及rc.d下面的rc.0,rc.1...下面的脚本启动执行完毕了(rc.X里面其实引用的是init.d里面的文件),再来执行rc.localinit.d以及rc.d中的ddaemon的意思,这两个文件夹下面的执行的都是守护进程(service)应用
  65. Linux文件的权限,首先会为三种用户(创建者,创建者所在组的成员,其他用户)各自赋权限,这一点之前已经记录过;每类用户其实都有三种操作权限,rread,读),wwrite,写)以及xexcute,执行),还有一个附加在最前面的文件类型,ddirectory,目录)代表是文件夹,llink,代表是软连接文件),bc代表区块设备或者外围设备(区块设备?不懂),"-"代表普通文件,这样,表示文件夹权限一共是10位,如果有权限就是用让位显式为对应的字母,没有权限就显示为"-";"drwxr-xr-x"代表这个文件是个目录(文件夹),本目录的所有者拥有读写执行权限,组成员具有执行和读权限,其他用户具有执行权限;-rwxr-...则代表这个文件是普通文件;通过前缀可以知道文件的类型;
  66. 通过ll看到的内容,有两列是表示用户已经用户组:"-rwxrwxrwx 1 user users 12172 8 15 23:18 conkyrc.sample";第一个user代表创建用户是userusers代表该用户所在的用户组是users,可以通过"chown user conkyrc.sample"来修改所属用户,以及通过"chown :users conkyrc.sample"来修改用户组;
  67. SecurityCRT自动断开,很多时候很挠头,可以在CRT上面的"会话选项"中"终端"设定"反空闲",勾选NO-OP,并设定时间,比如一分钟;这样就可以实现终端实时和服务器交互维持回话;或者是在Linux系统中/etc/ssh/sshd_config中进行设定,打开ClientAliveInterval 并设定时间3-5分钟,这样服务器点就会定时和客户端通信;总之前者是客户端维持回话,或者是服务器维持会话(session);
  68. Linux下面安装jdk,使用yum –search jdk,然后使用yum install进行安装;将会在/usr/lib/jvm下面有一个很长的jdk的文件夹;这个就是JAVA_HOME的位置;然后你需要做的就是在vi /etc/profile,在下面添加上:
    export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
    跳出来之后,执行source /etc/profile即可(这一点比windows强多了,还需要重启才能够生效,当然可以通过set方式进行设置,重启前凑合用);
  69. Wget –c url 断点续传;
  70. 正常情况下,一个链接终端的命令将会伴随着这个终端断开或者Ctrl+C之后而断开,比如wget,终端断开,下载也就终止了;使用了nohug…&指令将会使得运行和终端(shell)链接情况无关,而是在服务器后台运行;
  71. source 执行脚本语言将不会创建子进程来执行脚本,但是./ 以及sh方式将会导致每一句脚本都是子新建的子进程来跑,对于sh,是不需要chmod +x来赋权限,./的方式则需要;sh这个命令很强悍,传统的./其实和他的作用是一样的,但是需要有权限,使用sh(shell)质量之后,就可以跳过文件权限的判断了;
  72. netstat -ao | find "listening"

    a,代表显示全部

    o,代表显示进程号

    |,代表要对结果进行过滤

    find是过滤机制,只是支持字符串,但是对于整数的检索也是要添加"";另外这个指令在LinuxWindows下面通用;

  73. Linux的配置文件都是在/etc/profile文件下面放置的,如果想要添加环境变量(比如JAVA_HOME)需要vi /etc/profile文件,进行export;修改之后要通过source /etc/profile来进行保存生效.
  74. 单独为应用指定Jdk:

start.sh文件中

export JAVA_HOME=XXX

export PATH=$JAVA_HOME:$PATH

ezport CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

 

或者:

JAVA_HOME=/home/gtps/java/jdk1.7.0_79

PATH=$JAVA_HOME/bin:$PATH

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JAVA_HOME

export PATH

export CLASSPATH

76.在使用service iptables ststus|grep ……

没太明白为啥grep之后的*tcp就没有数据,.*之后就有数据,如果是因为.*组合(*只是代表有一位任意字符数字),那么为什么1*tcp就可用呢?难带1代表全体整数吗(前缀任意一个整数即可)?后来验证觉得应该是这个原因,因为对于11*tcp没有数据,但是11.*tcp则有数据。

另外,grep -c代表的是返回匹配的个数这和参数很有用: 我想要判断某个端口是否打开,就判断符合条数是否大于0即可,但是注意: 不能赋值给变量,只能直接if跟着指令>0 then…fi。我尝试赋值给一个变量,但是变量返回为0。

77.今天看到虚拟机硬盘100%,发现原来是在/root/Documents/VirtualBox Dropped Files目录下(我使用root用户登录)成堆的Drop(拖拽文件)文件,难道虚拟机处理拖拽文件并不删除,而是放到了这个文件夹下面了?

78.网卡设置:/etc/sysconfig/network-script/下面每一个网卡都会有一个 ifcfg-XXX文件,进去编辑

DEVICE=eth0
BOOTPROTO=statics
HWADDR=00:0C:29:13:D1:6F
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.0.212
NETMASK=255.255.255.0

  ONBOOT代表开机启动;

  如果是外网,还需要配置网关和DNS,下面是完整的配置信息:

TYPE=Ethernet
BOOTPROTO=statics
DEFROUTE=yes
NAME=ens192
UUID=fdf0493d-4eae-46ae-aa4f-4f58b469b50a
DEVICE=ens192
ONBOOT=yes
IPADDR=X
NETMASK=255.255.255.0
GATEWAY=X
DNS1=X
DNS2=X

  配置完成后需要重启网卡,操作网卡的操作如下:

/etc/rc.d/init.d/network start | stop | restart
或者 service network start | stop | restart

centos高版本 system restart network.service

  也可以手工设定网卡信息(临时):ifconfig eth0 192.168.1.222 netmask 255.255.255.0

  关闭打开指定网卡:

ifconfig eth0 down
ifconfig eth0 up

ifdown eth0
ifup eth0

  注:在linux里面,断开网卡(interface)和拔网线是两个不同的处理,断开网卡,其实数据还是走到网口的只不过不处理而已,可以看到电脑插网线口的灯还是一闪一闪亮着的;

  但是如果是拔网线,无论拔下那一头,网口的灯都是灭的;这个也许就是keepalived在拔网线可以正常工作,但是手工断开网口却无法正常工作;如果是虚拟机测试,可以通过切换网络类型来实现断网效果。
  stat指令用于返回指定文件的设备信息。对于挂在在不同硬盘下面的路径他的设备号是一样的,通过stat --L可以查看。另外对于设备号小于100的设备,比如/proc,/dev,说明他们是虚拟设备,并不是真实的物理设备。这一点在Fast Data Transfer中曾经使用过这个指令来获取分区信息,同一块设备的文件将会被统一处理;

   

79.Linux下面修改最大文件数

echo ulimit -n 65535 >>/etc/profile
source /etc/profile
即完成了设置。
ulimit -n
查看当前ulimit值。

80.定时获取文件并进行删除

find /apps/M010/revFiles/ -mmin +10 -type f -name *.exe | xargs rm -rf

  -mmin,获取修改时间单位为分钟的文件列表;m代表modify,修改时间(通过ll看到文件显示的时间),cmin代表create,创建时间,amin,access,访问时间; +N,代表N分钟之前,-N代表N分钟之内;-mtime N,则是指修改的时间单位为天;

  -name,指定了文件模式;

  -exec,代表对于查询出来的文件要进行的操作;

  定时任务采用的是Linux的cron服务;一般用法是创建当前用户的服务;可以通过man cron来进行详细了解,尤其其中的安全机制;

crontab -l 查看当前用户的定时任务
crontab -e 编辑当前用户定时任务
crontab -r 删除当前用户定时任务

  crontab -e 之后将会进入到编辑页面,可以添加定时任务,例如增加一个定时删除文件:

*/10 * * * * find /mzm/cs/revFiles/* -type d -mmin +10 | xargs rm -rf
(记得完事后:wq!)

  crontab指令共分为两部分:定时(schedule),以及执行任务(指令)。

  定时规则:分 时 日 月 年,*/10代表是每10分钟执行一次,也可以写成0-59/10,以此类推;

  根据man上面记载修改完成后即可自动生效;可以通过下面的指令来手工强制生效;我测试的效果是修完成后自动可以生效。

service crond reload

 

81.根据端口号杀进程

lsof -i:22 | grep IP | awk '{print $2}' | xargs kill -9

  通过这个例子可以很经典的解释清楚Linux指令处理;这个指令其实是参考了上面的发现文件进行删除的脚本;

  lsof -i:22之后是下面场景

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    18190 root    3u  IPv4 299889      0t0  TCP *:ssh (LISTEN)
sshd    18190 root    4u  IPv6 299891      0t0  TCP *:ssh (LISTEN)

  在Linux可以指令里面每个"|"都是代表左半部份的列表(数据)执行右半部分的操作

  grep IP:为了获取到PID一列信息,首先是要过滤掉第一行的列名;通过grep IP就是只要包含IP字样的行,这样就把第一行完美过滤掉了;

  awk '{print $2}',grep IP之后的过滤的列表就是纯粹的数据了,这部分的含义是现实出第二列内容,即PID一列的数据;

  xargs kill -9,有awk过滤之后的(单列)数据,执行操作,如果返回时一个列表,将会取出列表数据逐个执行指令;xargs的用意是将管道符左侧返回的数据按照空格/换行符进行拆解(split),返回数据供后面的指令消费。

82. 为文件夹以及其子文件夹赋权限

 

chown -R userName:userName folderName

83. 和组以及用户信息相关指令

groups //当前用户所在组;
/etc/passwd以及/etc/shadow //里面装有所有的用户;
/etc/group //里面是全部的用户组

84. 修改完了DNS之后,需要service network restart才能够好用

85. alternatives

如果已经有了openjdk,希望使用oracle jdk但是又不想卸载openjdk怎么办?使用alternative;
首先使用whereis java指令找到java目录,是在/usr/lib/java下面;
然后使用下面的命令看看该文件下已经挂在了几个
alternatives --config java
*+ 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64/jre/bin/java)
2 java-1.7.0-openjdk.x86_64 (/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64/jre/bin/java)
注:带+的项目代表默认jdk版本。
于是需要附加在这个目录下面一个新的链接:
alternatives -install /usr/bin/java java /opt/jdk1.8.0_40/bin/java 3
1)install代表要挂在一个新的java版本;
2)/usr/bin/java代表挂载的路径;
3)java代表挂在名称;
4)/opt/jdk1.8.0_40/bin/java 代表挂载的目标路径
5)3代表排名,之前已经有了两个,所以它排第三
这样再使用alternative --config java
*+ 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64/jre/bin/java)
2 java-1.7.0-openjdk.x86_64 (/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64/jre/bin/java)
3 /opt/jdk1.8.0_40/bin/java
增加了刚才添加的内容。
在下面会有一行显示:“Enter to keep the current selection[+], or type selection number: ”,这样,添加上个“3”,就OK了。
再使用java -version就看到已经被oracle的jdk1.8成为了默认的jdk版本。
 
刚才许伟惊现java -version是1.7,alternatives却是1.8,这是因为1.7并没有附加到java的目录中(如果是rpm方式安装应该就会自动附加上,但是这里的1.7应该是拷贝的方式);方案:就是在/etc/profile中修改一下JDK路径,搞定。由此,想要设定默认的JDK,profile以及alternative都需要进行修改。记得source /etc/profile
 
alternatives还有很多参数,比如 --display java,将会展示所有的java的安装项,并显示优先度;
--remove java /srv/software/jdk1.8.0_40,将会删除一个注册;
记住,java正确的install是: alternatives --install /usr/bin/java java /srv/software/jdk1.8.0_40/bin/java 3 java对java,之前就是因为只是到了jdk1.8.0_40级别,导致java -version的时候报异常,说java是一个文件夹,因为/usr/bin/java被软连接到了jdk的文件夹,其实应该软连接到bin/java
86. sudo
1. 切换到root用户;
2. 执行指令"visudo"
3. 找到“root ALL=(ALL) ALL”一行,仿照在下面添加“hadoop ALL=(ALL) ALL”,这样hadoop就可以使用sudo指令了,但是第一次使用需要敲入hadoop用户的密码,之后就不需要了。
4. 如果想要免密使用就在两个ALL之间增加一个NOPASSWD:即可:
hadoop ALL=(ALL) NOPASSWD: ALL
其实在注释中有关于免密的样例。
87. Linux下面添加用户
useradd –d /home/username -m usnername
-d -m一般都会成对儿出现,用以表示新创建的用户的默认路径是-d后面的内容,如果不存在则创建(-m,mandatory:强制)
其实还可以通过-p来指定密码;如果创建的时候没指定,那么可以在创建之后,可以通过下面的指令修改密码:
passwd(当前用户,直接敲入passwd即可)
passwd hadoop(当前用户是root用户,通过此命令来修改密码))
删除一个用户
userdel -r hadoop
-r可选,代表删除用户工作目录
88.修改CentOS7的Linux的Hostname
hostnamectl set-hostname XXX
老版本的centos需要修改/etc/hosts,但是到了7这种方式已经不好使了,而是使用hostnamectl来进行操作;同步更新/etc/hostname文件;但是/etc/hosts文件不会修改,还是需要手工进行处理
 
89.SSH访问异常“coonect was reset”
异常信息:
Permission denied, please try again
在/etc/ssh/sshd_config中将PermitRootLogin yes中前面的“#”去掉即可
90.VI的跳转到指定行
:n即可,n代表要跳转的行数;
比如我在编辑visudo的时候发现119行报错,导致sudo指令无法正常执行,visudo之后敲入:119回车即可定位到该行。
91.SSH秒断
SSH连接本机的CentOS虚拟机,总是秒断;后来发现是因为虚拟机的IP被写死,然后和局域网的设备发生了冲突

92.默认命令行模式/GUI

服务器很多时候是讲究性能的,一个GUI就可能吃掉一个G的内存,所以对于小内存以及虚拟机而言很坑爹的。所以可以考虑设置为命令行模式。
1. 命令模式
 systemctl set-default multi-user.target 
2. 图形模式
 systemctl set-default graphical.target 
 
 

posted on 2016-11-05 21:20  下士闻道  阅读(761)  评论(0编辑  收藏  举报

导航