Linux中 常用命令 和 进程管理

Vim: 文本编辑器

vim   文件名

vim  + n(行号)  如  vim  + 3  /etc/passwd 光标在第三行;

+ /word       光标在有word的行首;

Vim主要有三种模式:

命令,输入,末行这三种模式

命令模式 —>  输入模式

1)i   I

2)a   A

3)o   O

4)c   C

命令模式 —>  末行模式

在命令模式下:  光标移动:h(左), l (右); k(上), j(下)

单词间跳转:w  下一个单词的词首

e   下一个单词的词尾

b    前一个单词的词首

行首行尾间跳转:^(非空字符的行首),0(空字符行首)

$(此行最后的字符)

句间跳转: )    下一句句首;  (   前一句句首

段间跳转:}      下一段段首;  {    上一段段首

行间跳转:nG 或:n   跳到第n行;  G   跳到最后一行;

1G  跳到第一行;

Ctrl+f   向下翻一屏;  crtl+b   向上翻一屏 ;

Ctrl+d   向下翻半屏;  ctrl+u   向上翻半屏;

编辑的命令:

x: 删除一个字符    d  dd ,dw ,de ,db ,d),d$等是删除到光标定位的位置。删除掉的内容不会马上清空,而是保存在缓冲区内的。

p: 粘贴;

y: 复制;

u: 撤销最近一次的操作;U  撤销上回的所有操作;ctrl+r 撤销撤销

. :redo 重做;

查找并替换的命令:s///gi   s 表示搜索替换;g表示全局替换;i表示忽略大小写

配置vi和vim

动态配置  :set (列举一小部分重要的配置项目)或 :set all (例举所有配置项目)

:set  number  设置行号; :set  autoindent(ai)  自动缩进

:set  ignorecase(ic) 忽略大小写;  :set  nowrap   不拆行显示

Syntax  enable  on ,off ,enable,clear  语法着色。

若是取消用 :set no[]   如  :set  noai

永久配置:  ~/.vimrc  或者~/.exrc

要保存这些配置,因此每次启动编辑器时都能够使用它们,需要把那些配置项目的命令放在~/.vimrc文件中。如果该文件不存在,vi和vim就会读取较老的~/.exrc文件。

在vi中我们还可以分屏查看,在末行模式中输入:split,或ctrl+w,s  会水平分割屏幕;

Ctrl+w,v  会垂直分割屏幕;ctrl+w,方向键会在窗口切换

当我们分割的不是一个文件而是多个文件时:vim  +o  1.diff  2.diff   水平分割2个文件;+O  垂直分割 查看我们也可以用ctrl+w,方向键。

当我们用  vim  1..diff  2.diff  时  这时会先显示1..diff 然后再末行模式输next  会显示2..diff;previous 会显示1.diff ;last 显示最后一个;first显示第一个文件;

退出时我们用qall  关闭全部;

 

什么是进程?

进程就是被载入内存的一个指令集合。

在Linux系统中,触发任何一个事件,系统都会将定义成为一个进程,并且给这个进程一个ID,称为PID,同时根据这个进程的用户与相关属性关系,给这个PID一组有效的权限设置。Linux内核通过进程的PID来跟踪他的方方面面,运行信息位于/proc目录中,其中进程号在1——32767中产生。进程号1永远属于init这个进程。因为init是你启动linux时的第一个进程。而后其他进程都是他衍生出来的,是她的子进程。子进程都是从父进程衍生出来的。我们可以用命令“pstree”来看产生的进程。

内核的几大功能:内存管理,进程管理,硬件管理,cpu管理,文件系统管理。

查看进程信息(ps)  a 包括所有终端的进程;

系统中有两种进程:用户进程(终端进程) ; 守护进程(在启动Linux时都运行了)

x  显示不包括终端进程,显示守护进程;

u  显示进程所有者的信息,谁发起了这个进程。

o  显示定制的信息  如pid  tty

-e  显示所有信息(=ax)

-f   显示完整格式的信息  如  ps  -ef

Pid   进程号

Command   那个命令启动了这个进程

%cpu  cpu使用率

%men  内存使用率

State   进程状态   D(不可打断的休眠)   R(running)S(sleeping)T(stopped)X(dead)<(高优先级进程)  N(低优先级进程)L(被锁定在内存中)Z(zombie)l(多线程)+(在前台运行的程序)start(进程的开始时间)

Tty

Euser  effictive  user name

Ruser   发起者

Vsz    占用虚拟内存大小

Rss     非虚拟内存大小

Time  占用cpu的累加时间

我们也可以用  ps  aux | grep  x  显示特定进程。

Pgrep  支持正则表达式的命令

Pgrep  -U  root

-G    student

Pgrep -l  1  ;   pgrep  -U  root  -v   反向显示;

按确切的程序名称:pidof  如  pidof  bash

进程之间通讯的信号;常用信号,

信号15, term(默认)  整洁终止

信号9,  kill    立即终止

信号1,   hup   重读配置文件

我们可以用man  7  signal  显示完整列表;

给进程发送信号

按PID :kill  pid  如  kill  3428

按名称:  killall  comm   如  killall  httpd

按模式:   pkill   pattern   关闭某些匹配模式的进程

调度优先性决定对CPU的使用:

优先性受进程的(Nice value)影响,这个值的范围是-20到19之间,默认为0!值越小说明对cpu的使用越优先。

我们可以改变调度优先值:

在启动进程时:  nice  -n  5  命令(如ifconfig)

在启动后:  renice  5  PID    如   renice  15  -p  PID

只有根用户才能降低nice的值(提高其优先性),普通用户只能提高nice值。

查看nice值:  ps  axo  pid ,nice

显示实时的进程信息,动态查看进程信息的命令top

Top默认每隔5秒刷新一次。

#top

Cpu(s)0.0%us(用户发起的进程)0.1%sy(系统发起的进程)0.0%ni(修改nice值的百分比) 99.4%id(cpu的空闲率)0.0%wa(cpu等待)0.0%hi(硬件中断)0.0%si(软中断)0.0%st(被虚拟机偷走的时间)

 

 

Top   -b  -n 2

在后台运行进程:在命令行添加一个&

暂停某个运行进程:使用ctrl+z或发送信号17(stop)

管理后台进程和暂停进程

列举进程的号码和名称:jobs  jobs -l  同时也显示进程号:-r  仅列出那些运行状态的作业;  -s  仅列出那些停止状态的作业

在后台运行:bg  %作业号码;  %可以省略

在前台运行:fg   %作业号码;

发送信号:kill  -[信号] [%作业号码]  %不可省略

一次性运行进程使用at (用mail查看创建的进程已经完成),重复性运行使用crontab

At  time  创建    使用ctrl+d结束             crontab  -e

-l    列举                               crontab  -l

-c  作业号码   详情

-d  作业号码   删除                     crontab -r

Crontab 包括以下几段:

Min  hour   day  month   week-day   command

如   10  3,9  *  *  *  echo “how  are  you!”

在每天的9:10和3:10分别发送

用crtontab编写的文件保存在/var/spoo/cron/中

为了弥补crontab要24小时在线的缺点,这时使用anacron,他可以在开机后执行所没有执行的作业。

Trap 捕捉信号  如  trap  “do not interrup me!”INT  (ctrl+c)

环境变量

Path  命令搜索路径

声明坏境变量:export A 或declare  -x  A

某些通用变量

Ps1  变量设置提示符;默认常用的转义序列包括:

\h  主机名; \u  用户名;\w  当前工作目录;\$ 若是root用户显示#,若是普通用户显示$。

别名(aliase)

如  alias dir= 'ls  -l'

撤销别名  unalias 别名

如果想使用rm命令本身而不通过它的别名,需用\rm

如  alias  rm=“rm  -i”

\rm  -r  junk

登录shell和非登录shell

登录shell是某个用户登录到系统后启动的shell。非登录的shell是使用其他方式启动的shell,可能是被用户或程序发出bash命令后启动。

Bash启动任务:profile

保存在/etc/profile文件(全局)和~/.bash_profile文件(用户)中

只为登录shell运行。

用于设置环境变量,运行命令(如邮件检查程序脚本)

/etc/profile shell脚本是登录shell启动后运行的第一个启动脚本,它只为登录的shell运行;非登录shell不会引用这个脚本。

登录shell 首先调用/etc/profile这个文件,该文件调用/etc/profile.d。然后,~/.bash_profile这个文件被调用。

Bash 启动任务:bashrc

保存在/etc/bashrc文件(全局)和~/.bashrc文件(用户)中

为所有shell运行

用于设置本地变量,定义别名。

Bash退出任务

保存在~/.bash_logout文件中(用户)

在退出登录shell时运行

用于创建自动备份,清除临时文件。

文章来源于网络或者作者投稿,若有侵权请联系删除,作者:老钟,如若转载,请注明出处:https://www.laoz.net/71.html

(1)
老钟
上一篇 2011 年 08 月 08 日 下午 12:17
下一篇 2011 年 08 月 15 日 下午 2:31

相关推荐

  • Nginx服务器安装SSL后全站http跳转https

     网上很多教程关于如何做全站的http转https,我这里只讲述nginx服务器的跳转方法之前提到过阿里云申请的SSL如何部署到服务器:lnmp安装阿里云免费SSL,出现welcome to nginx页面,提示403错误解决办法这里主要讲述…

    vps教程 2018 年 04 月 13 日
  • linux命令scp远程拷贝

    1、scp复制到远程 scp local_file remote_username@remote_ip:remote_folder 实例: scp test.txt root@remote_ip:/home/root/ 第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字…

    vps教程 2020 年 11 月 21 日
  • 本地CentOS6.5安装配置JDK1.6

    Linux系统安装jdk 首先,在网上下载jdk, 例如下载了 jdk-6u38-linux-i586.bin 可以是在linux系统下载,也可以在你自己的电脑下载,再通过ftp上传到linux,放在/usr/local下 下面安装jdk 添加执行权限 [root@linux ~…

    vps教程 2017 年 06 月 20 日
  • linux下统计文件夹文件数量

    linux下统计文件夹数量 egrep "7966.org"  file|wc -l 最近bluehost主机上,发现文件限制为50,000个文件。于是想看一下,主机文件夹里的文件数量,由于主机是linux的,所以找了一下。大致有两种: 一种是: ls   -…

    vps教程 2011 年 11 月 23 日
  • linux - java启动脚本

    懒,时间长了不经常写,会忘记记录下来JAVA_HOME=/usr/java/jdk1.6.0_14   CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:./lib/mysql-connector-java-5.1.17-bin.jar   PATH=.:$JAVA_HOM…

    vps教程 2012 年 11 月 29 日
  • 硬盘安装redhat 6.5图文教程 linux rhel-server-6.5安装

    硬盘安装redhat    硬盘安装linux redhat有很多版本,我安装在一台台式电脑上面,这台电脑原来在使用的,内存4G,可以全盘格式化再安装,不过我装了双系统,即win7和linux 首先第一步,下载redhat 6.5的ISO镜像,我…

    2016 年 08 月 16 日
  • vmware下centos找不到网卡eth0 没有ip

    vmware安装完成centos之后,使用ifconfig命令,发现没有eth0出现 那么,可以用ifconfig -a 试试,如果还是没看到,则使用命令ifconfig eth0 up开启网卡 如果发现显示出来的信息没有显示ip地址,这个时候vi /etc/sys…

    vps教程 2017 年 03 月 28 日
  • linux安装jdk出现java/lang/NoClassDefFoundError: java/lang/Object错误的解决方案

    出现这个问题,是通过这篇文章解决的: http://www.cnblogs.com/chenguangyu/archive/2009/11/06/1597706.html 记得rt.pack 和 tools.pack 这两个都要处理好,都要 转换成  .jar  的形式 rt.pack 是在jre/lib 下面…

    vps教程 2011 年 11 月 25 日
  • thinkphp5.0写的项目放到lnmp上出现404错误

    thinphp5.0在Nginx上不适用pathinfo格式的url,在项目的Nginx配置文件里找到include enable-php.conf 改为 include enable-php-pathinfo.conf ,然后就可以了 第一步:打开nginx配置文件 /usr/local/nginx/conf/nignx…

    vps教程 2023 年 11 月 28 日
  • 新建VPS服务器的安全防护设置

    0x00 起因 最近我自己的 vps 越来越不稳定,开始还以为是因为我自己在路由器里面添加了透明代理使用的流量大造成的,后来越来越发觉不正常,毕竟我也是用了几年 vps 的老手了,总觉的不正常。后来 iftop 发现我的 v…

    vps教程 2020 年 05 月 04 日