首页 文章 精选 留言 我的

精选列表

搜索[linux],共10000篇文章
优秀的个人博客,低调大师

linux 进程优先级

1.进程定义 进程就是cpu未完成的工作 2.ps命令 ps a ##关于当前环境的所有进程 ps -a ##显示shell前台运行命令的进程,但不包含shell本身 由上图可以看出,每运行一次ps的值都会发生变化,这说明前台运行命令的进程在变化。 在这里要区分“ps a”和“ps -a”的作用。如果想要知道ps更多的命令用途可以用“man ps”查看。 x| -A ##所有进程,x会显示进程状态,-A不会 f ##显示进程从属关系 e ##显示进程调用环境工具的详细信息(运行环境) l ##长列表显示进程的详细信息 u ##显示进程的用户信息 ps ax -o %cpu,%mem,user,group,comm,nice,pid,stat ##指定显示进程的某些信息,-o显示内存使用量 %cpu ##显示进程cpu负载 %mem ##显示进程内存负载 user ##进程用户 group ##进程组 comm ##进程名称 nice ##进程优先级 pid ##进程的id stat ##进程状态 ####stat中显示的信息 S ##进程状态 l ##内存中有锁定空间 N ##优先级低 < ##优先级高 + ##前台运行 s ##顶级进程 关于ps进程的命令需要自己去运行,然后找你想看到的东西。 ps ax -o %cpu,comm --sort ( +|-%cpu ) (+|-%mem) ##按照进程信息排序 + ##正序 - ##倒序 %cpu ##cpu负载排序 %mem ##内存负载 ps ax --sort=%mem -o %mem 小到大排序 ps ax --sort=%mem -o %mem,comm 进程使用量排序 3.进程优先级 1)进程的优先级范围 -20~19 2)优先级查看 ps ax -o nice,comm,pid,stat 3)指定某个优先级开启进程 vim & nice -n 优先级数字 进程名称 nice -n -5 vim & ##开启vim并且指定程序优先级为-5 4)改变进程优先级 renice -n 优先级数字 进程pid renice -n -5 6442 ##改变6442进程的优先级为-5 运行后结果[root@desktop0 ~]# ps a -o pid,nice,comm PID NI COMMAND 590 0 Xorg 1178 0 agetty 6001 0 bash 6159 0 bash 6368 0 bash 6442 -5 vim 6466 0 ps 4.环境中进程的前后台调用 jobs ##查看被打入环境后台的进程 ctrl+z ##把占用终端的进程打入后台 gedit最小化 fg jobsnum ##把后台进程调回前台 bg jobsnum ##把后台暂停的进程运行 comm & ##让命令直接在后台运行 上图所示:先打开两个进程,用“ctrl+z”把gedit的进程打入后台,用jobs查看被打入环境的后台进程,可以看到vim的暂停运行和gedit正在运行。用fg 1 将vim从后台进程调回前台。 用bg 2 将gedit后台暂停运行的进程运行。 5.进程信号 1)常用信号等级 1 ##进程重新加载配置 2 ##删除进程在内存中的数据 3 ##删除鼠标在内存中的数据 9 ##强行结束单个进程(不能被阻塞) 15 ##正常关闭进程 (可能会被阻塞) 18 ##运行暂停的进程 19 ##暂停某个进程 (不能被阻塞) 20 ##把进程打入后台 (可以被阻塞) man 7 signal ##查看信号详细信息 kill -信号 进程pid killall -信号 进程名字 pkill -信号 -u student killall命令是杀死所有进程,而pkill是按照进程名称杀死进程 kill命令用来终止指定的进程 分析:左图用普通用户student登录,开启三个“vim &”进程用“ps”查看,右图是超级用户,用“kill -9 7265”结束左图PID为7265的进程。用“killall -9 vim”结束所有vim进程,“pkill -9 -u student”结束普通用户,从左图最后一行可知。 SIGHUP 终止进程 终端线路挂断 SIGINT 终止进程 中断进程 SIGQUIT 建立CORE文件终止进程,并且生成core文件 SIGILL 建立CORE文件 非法指令 SIGTRAP 建立CORE文件 跟踪自陷 SIGBUS 建立CORE文件 总线错误 SIGSEGV 建立CORE文件 段非法错误 SIGFPE 建立CORE文件 浮点异常 SIGIOT 建立CORE文件 执行I/O自陷 SIGKILL 终止进程 杀死进程 SIGPIPE 终止进程 向一个没有读进程的管道写数据 SIGALARM 终止进程 计时器到时 SIGTERM 终止进程 软件终止信号 SIGSTOP 停止进程 非终端来的停止信号 SIGTSTP 停止进程 终端来的停止信号 SIGCONT 忽略信号 继续执行一个停止的进程 SIGURG 忽略信号 I/O紧急信号 SIGIO 忽略信号 描述符上可以进行I/O SIGCHLD 忽略信号 当子进程停止或退出时通知父进程 SIGTTOU 停止进程 后台进程写终端 SIGTTIN 停止进程 后台进程读终端 SIGXGPU 终止进程 CPU时限超时 SIGXFSZ 终止进程 文件长度过长 SIGWINCH 忽略信号 窗口大小发生变化 SIGPROF 终止进程 统计分布图用计时器到时 SIGUSR1 终止进程 用户定义信号1 SIGUSR2 终止进程 用户定义信号2 SIGVTALRM 终止进程 虚拟计时器到时 1) SIGHUP 本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联. 2) SIGINT 程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出 3) SIGQUIT 和SIGINT类似, 但由QUIT字符(通常是Ctrl-)来控制. 进程在因收到 SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信号. 4) SIGILL 执行了非法指令. 通常是因为可执行文件本身出现错误, 或者试图执行数据段. 堆栈溢出时也有可能产生这个信号. 5) SIGTRAP 由断点指令或其它trap指令产生. 由debugger使用. 6) SIGABRT 程序自己发现错误并调用abort时产生. 6) SIGIOT 在PDP-11上由iot指令产生, 在其它机器上和SIGABRT一样. 7) SIGBUS 非法地址, 包括内存地址对齐(alignment)出错. eg: 访问一个四个字长 的整数, 但其地址不是4的倍数. 8) SIGFPE 在发生致命的算术运算错误时发出. 不仅包括浮点运算错误, 还包括溢出及除数为0等其它所有的算术的错误. 9) SIGKILL 用来立即结束程序的运行. 本信号不能被阻塞, 处理和忽略. 10) SIGUSR1 留给用户使用 11) SIGSEGV试图访问未分配给自己的内存, 或试图往没有写权限的内存地址写数据. 12) SIGUSR2 留给用户使用 13) SIGPIPE Broken pipe 14) SIGALRM 时钟定时信号, 计算的是实际的时间或时钟时间. alarm函数使用该信号. 15) SIGTERM 程序结束(terminate)信号, 与SIGKILL不同的是该信号可以被阻塞和处理. 通常用来要求程序自己正常退出. shell命令kill缺省产生这 个信号. 17) SIGCHLD 子进程结束时, 父进程会收到这个信号. 18) SIGCONT 让一个停止(stopped)的进程继续执行. 本信号不能被阻塞. 可以用一个handler来让程序在由stopped状态变为继续执行时完成特定的 工作. 例如, 重新显示提示符 19) SIGSTOP 停止(stopped)进程的执行. 注意它和terminate以及interrupt的区别: 该进程还未结束, 只是暂停执行. 本信号不能被阻塞, 处理或忽略. 20) SIGTSTP 停止进程的运行, 但该信号可以被处理和忽略. 用户键入SUSP字符时 (通常是Ctrl-Z)发出这个信号 21) SIGTTIN 当后台作业要从用户终端读数据时, 该作业中的所有进程会收到SIGTTIN 信号. 缺省时这些进程会停止执行. 22) SIGTTOU 类似于SIGTTIN, 但在写终端(或修改终端模式)时收到. 23) SIGURG 有"紧急"数据或out-of-band数据到达socket时产生. 24) SIGXCPU 超过CPU时间资源限制. 这个限制可以由getrlimit/setrlimit来读取/ 改变 25) SIGXFSZ 超过文件大小资源限制. 26) SIGVTALRM 虚拟时钟信号. 类似于SIGALRM, 但是计算的是该进程占用的CPU时间. 27) SIGPROF 类似于SIGALRM/SIGVTALRM, 但包括该进程用的CPU时间以及系统调用的 时间. 28) SIGWINCH 窗口大小改变时发出. 29) SIGIO 文件描述符准备就绪, 可以开始进行输入/输出操作. 30) SIGPWR Power failure 6.用户登陆审记 1)w ##查看使用系统的当前用户有那些 w -f ##-f查看使用地点 2)last ##查看用户登陆成功历史 3)lastb ##查看用户登陆未成功历史 7.top命令 top ##监控系统负载工具 s : 修改进程刷新间隔时间 m : 根据内存占有率进行排序 c : 根据 cpu 占有率进行排序 u : 后面输入用户名 , 用来查看该用户发起的所有进程 k : 后面跟要作用的进程 pid, 和发起的信号 (eg:9,15,20) 用来给某个进程发起一信号 q : 退出进程查看界面 h : 显示 top 命令的帮助 1 : 分开查看各个cpu信息 8.系统初始化程序 1)systemd 系统初始化程序,系统开始的第一个进程,pid为1 2)systemctl 命令 systemctl list-units ##列出当前系统服务的状态 systemctl list-unit-files ##列出服务的开机状态 systemctl status sshd ##查看指定服务的状态 systemctl stop sshd ##关闭指定服务 systemctl start sshd ##开启指定服务 systemctl restart sshd ##从新启动服务 systemctl enable sshd ##设定指定服务开机开启 systemctl disable sshd ##设定指定服务开机关闭 systemctl reload sshd ##使指定服务从新加载配置 systemctl list-dependencies sshd ##查看指定服务的倚赖关系 systemctl mask sshd ##冻结指定服务 systemctl unmask sshd ##启用服务 systemctl set-default multi-user.target ##开机不开启图形 systemctl set-default graphical.target ##开机启动图形 setterm ##文本界面设定color vga=ask 3)服务状态 systemctl status 服务名称 loaded ##系统服务已经初始化完成,加载过配置 active(running) ##正有一个或多个程序正在系统中执行。 atcive(exited) ##仅执行一次就正常结束的服务 atcive(waiting) ##正在执行当中, 不过还在再等待其他的事件才能继续处理 inactive ##服务关闭 enbaled ##服务开机启动 disabled ##服务开机不自启 static ##服务开机启动项不可被管理 failed ##系统配置错误

优秀的个人博客,低调大师

linux 强行杀掉进程

强行杀进程***** ps -ef 或 ps -aux 查看进程 $ ps -ef | grep firefox 1.给出进程名称一部分,查看符合进程 $ pgrep firefox 1827 kill pkill 说明:”-9” 即发送的信号是9,pkill与kill在这点的差别是:pkill无须 “s”,终止信号等级直接跟在 “-“ 后面。之前我一直以为是 “-s 9”,结果每次运行都无法终止进程。 kill&#x2212;s91827">kill−s91827kill−s91827pkill -9 firefox killall 这个必须要给出 “完整的进程名称” killall和pkill是相似的,不过如果给出的进程名不完整,killall会报错。pkill或者pgrep只要给出进程名的一部分就可以终止进程。 $killall -9 firefox

优秀的个人博客,低调大师

Linux 目录处理命令总结

命令提示符 [root@localhost ~]# root:当前登录用户 localhost:主机名 ~:当前所在的目录,此处为“家”目录 #:root超级用户的提示符,如果是普通用户,则为$ 命令格式 命令 [选项] [参数] 中括号[]表示可选 查询目录中的内容:ls ls [选项] [文件或目录] 选项: -a: 显示所有文件,包括隐藏文件 -l: 显示详细信息 -d: 查看目录属性 -h: 人性化显示文件大小 -i: 显示inode 根据以上选项,敲入命令,显示结果分别如下: [root@localhost ~]# lsanaconda-ks.cfg test [root@localhost ~]# ls -a. .. anaconda-ks.cfg .bash_history .bash_logout .bash_profile .bashrc .cache .config .cshrc .tcshrc test [root@localhost ~]# ls -l总用量 4-rw-------. 1 root root 2752 Nov 10 02:51 anaconda-ks.cfg drwxr-xr-x. 2 root root 6 Nov 12 19:26 test [root@localhost ~]# ls -l anaconda-ks.cfg -rw-------. 1 root root 2752 Nov 10 02:51 anaconda-ks.cfg [root@localhost ~]# ls -ld test/drwxr-xr-x. 2 root root 6 Nov 12 19:26 test/ [root@localhost ~]# ls -lh总用量 4.0K -rw-------. 1 root root 2.7K Nov 10 02:51 anaconda-ks.cfg drwxr-xr-x. 2 root root 6 Nov 12 19:26 test [root@localhost ~]# ls -i71259104 anaconda-ks.cfg 36099565 test 请注意观察ls -l与ls -lh命令的结果的区别 这里需要解释一下: -rw-------. 1 root root 2.7K Nov 10 02:51 anaconda-ks.cfgdrwxr-xr-x. 2 root root 6 Nov 12 19:26 test 首先第一个符号“-”(引号内的-),表示文件类型(常用的有三种,即-表示文件,d表示目录,l表示软链接文件),此外还有不常用的,为块设备文件,字符设备文件、套接字文件、管理文件。 在上述中,我们可以看到 anaconda-ks.cfg 是一个文件,而 test 是一个目录(可理解为windows的文件夹的概念)。 其次,除去第一个符号,我们来看rw-------,一共有九个字符,需分为三组,分别为rw-,---,---,每个组按照顺序分别表示u所有者,g所属组,o其他人的权限。在上述中,分别对应为 root,root。即第一个root表示所有者权限为root权限,第二个root表示所属组的权限也是root权限,对于其他人,则无所谓的权限可言。 其中,r表示可读,w表示可写,x表示执行的权限。 为了更加明白,对于anaconda-ks.cfg这个文件,这里列一个表格: 前三个字符 中间三个字符 后三个字符 rw- — — 所有者u的权限 所属组g的权限 o其他人的权限 可读可写 无权限 无权限 那么,对于 test 这个文件rwxr-xr-x,请读者自行判断它的权限。 在九个字符之后的点 “.”,表示ACL权限,之后的数字 1 表示引用计数,比如一个文件有一个软链接(类似windows快捷方式),那么它的引用计数就是2。 root 后面的2.7k表示文件的大小,再后面表示日期,最后是文件的名称。 目录处理命令 创建目录:mkdir mkdir -p [目录名] -p: 递归创建 [root@localhost ~]# lsanaconda-ks.cfg test [root@localhost ~]# mkdir otherFolder[root@localhost ~]# lsanaconda-ks.cfg otherFolder test [root@localhost ~]# mkdir folder_2/test_2mkdir: 无法创建目录"folder_2/test_2": 没有那个文件或目录 [root@localhost ~]# mkdir -p folder_2/test_2[root@localhost ~]# lsanaconda-ks.cfg folder_2 otherFolder test [root@localhost ~]# ls folder_2/test_2 如上所示,mkdir 不加选项 -p 时,可以创建一个空目录,但是无法递归创建一个包含子目录的目录。加上 -p 即可递归创建。 切换所在目录:cd cd [目录] 操作: cd ~: 进入当前用户的家目录 cd-: 进入上次目录 cd..: 进入上一级目录 cd: 回到家目录 [root@localhost ~]# lsanaconda-ks.cfg folder_2 otherFolder test [root@localhost ~]# cd /folder_2/test_2[root@localhost test_2]# cd[root@localhost ~]# cd -/root/folder_2/test_2 [root@localhost test_2]# cd ../../otherFolder[root@localhost otherFolder]# cd ..[root@localhost ~]# 注意理清概念:相对路径和绝对路径 绝对路径:从根目录一级级找下去,需要写全路径 [root@localhost ~]# cd folder_2/test_2[root@localhost test_2]# 相对路径:参照当前所在目录进行查找 [root@localhost test_2]# cd ../../otherFolder[root@localhost otherFolder]# 查询所在目录位置:pwd pwd 可以说是最简单的命令了,查询所在目录的位置 [root@localhost ~]# pwd/root [root@localhost ~]# lsanaconda-ks.cfg folder_2 otherFolder test [root@localhost ~]# cd folder_2/[root@localhost folder_2]# lstest_2 [root@localhost folder_2]# cd test_2/[root@localhost test_2]# pwd/root/folder_2/test_2 删除空目录:rmdir rmdir [目录名] 只能删除空目录,这个命令用得比较少。 [root@localhost ~]# lsanaconda-ks.cfg folder_2 otherFolder test [root@localhost ~]# rmdir otherFolder[root@localhost ~]# lsanaconda-ks.cfg folder_2 test [root@localhost ~]# rmdir folder_2rmdir: 删除 "folder_2" 失败: 目录非空 [root@localhost ~]# 删除文件或目录:rm rm -rf [文件或目录] r 表示可以同时删除文件和目录,f表示强制删除 如果不添加任何选项,那么只可以删除文件,删除时提示是否确认删除 如果只添加选项-r,那么可以删除文件也可以删除目录,删除时提示是否确认删除 如果添加了选项-rf,那么将不做任何提示删除文件或目录 [root@localhost ~]# lsabc.txt anaconda-ks.cfg folder_2 test [root@localhost ~]# rm abc.txtrm:是否删除普通空文件 "abc.txt"?y [root@localhost ~]# rm testrm: 无法删除"test": 是一个目录 [root@localhost ~]# rm -r testrm:是否删除目录 "test"?y [root@localhost ~]# lsanaconda-ks.cfg folder_2 [root@localhost ~]# rm -rf folder_2[root@localhost ~]# lsanaconda-ks.cfg [root@localhost ~]# 复制命令:cp cp [选项] [原文件或目录] [目标目录] 选项: -r: 复制目录 -p: 同时复制文件属性 -d: 若源文件是链接文件,则复制链接属性 -a: 包含以上所有选项,相当于 -rpd 在[目标目录]后面加上文件名,就是改名复制。 [root@localhost ~]# lsanaconda-ks.cfg bbc.txt folder_a folder_b [root@localhost ~]# cp bbc.txt folder_a[root@localhost ~]# ls folder_a/bbc.txt [root@localhost ~]# cp folder_a folder_bcp: 略过目录"folder_a"[root@localhost ~]# cp -r folder_a folder_b[root@localhost ~]# ls folder_bfolder_a test_1 [root@localhost ~]# ll总用量 4-rw-------. 1 root root 2752 Nov 10 02:51 anaconda-ks.cfg -rw-r--r--. 1 root root 0 Nov 13 17:21 bbc.txt drwxr-xr-x. 2 root root 20 Nov 13 17:38 folder_a drwxr-xr-x. 4 root root 34 Nov 13 17:39 folder_b [root@localhost ~]# ll folder_a总用量 0-rw-r--r--. 1 root root 0 Nov 13 17:38 bbc.txt [root@localhost ~]# cp -a bbc.txt folder_b[root@localhost ~]# ll folder_b总用量 0-rw-r--r--. 1 root root 0 Nov 13 17:21 bbc.txt drwxr-xr-x. 2 root root 20 Nov 13 17:39 folder_a drwxr-xr-x. 2 root root 6 Nov 13 17:38 test_1 [root@localhost ~]# 这里需要解释一下的是,在原文件bbc.txt中,其修改时间为 17:21,在普通复制下,它的时间这个属性是不会被复制,我们可以看到复制后的bbc.txt的时间为17:38,如果需要连同属性一起复制,那么就加上-pd或者 直接-a,如上所示,我们把bbc.txt复制到folder_b,这时我们查看属性的时候,时间属性和原属性是一致的。 在上述命令中,ll 是ls -l的简写。 剪切或改名命令:mv mv [原文件或目录] [目标目录] 如果原文件或者目录 与 目标目录在同一个目录下,那么就是重命名 如果不在同一个目录下,那么就是剪切 通过以下实践理解: [root@localhost ~]# lsanaconda-ks.cfg bbc.txt [root@localhost ~]# mv bbc.txt abc.txt[root@localhost ~]# lsabc.txt anaconda-ks.cfg [root@localhost ~]# mkdir test[root@localhost ~]# lsabc.txt anaconda-ks.cfg test [root@localhost ~]# mv abc.txt test/[root@localhost ~]# lsanaconda-ks.cfg test [root@localhost ~]# ls test/abc.txt [root@localhost ~]# 链接命令:ln ln -s [原文件] [目标文件] 生成链接文件 -s: 创建软连接 硬链接的特征: 拥有相同 i 节点和存储block块,可以看做是同一个文件 可通过i节点识别,i节点是相同的 不能跨分区 不能针对目录使用 通过上述命令,可以理解为为某个内容添加一个标签,通过打开这个标签就可以进入这个内容,硬连接,即再生成一个标签,同样可以通过这个标签进入这个内容。 如果内容被修改,那么不管从硬链接的哪个文件进入,都是被修改的。 软链接的特征: 类似windows的快捷方式 软链接拥有自己的i节点和block块,但是数据块只保存原文件的文件名和I节点号,并没有实际的文件数据 lrwxrwxrwx l为软链接(软链接的权限都为rwxrwxrwx,这只是软链接本身的权限) 修改任意文件,另一个都改变 删除原文件,软链接不能用(和windows的快捷方式一样) 硬链接: [root@localhost ~]# lsanaconda-ks.cfg [root@localhost ~]# mkdir folder[root@localhost ~]# lsanaconda-ks.cfg folder [root@localhost ~]# touch bbb.txt[root@localhost ~]# lsanaconda-ks.cfg bbb.txt folder [root@localhost ~]# ln bbb.txt folder/ccc.txt[root@localhost ~]# ll folder/总用量 0-rw-r--r--. 2 root root 0 Nov 13 18:08 ccc.txt [root@localhost ~]# ll bbb.txt -rw-r--r--. 2 root root 0 Nov 13 18:08 bbb.txt 软链接: [root@localhost ~]# mkdir folder_b[root@localhost ~]# ln -s bbb.txt folder_b/eee.txt[root@localhost ~]# ll 总用量 4-rw-------. 1 root root 2752 Nov 10 02:51 anaconda-ks.cfg -rw-r--r--. 2 root root 0 Nov 13 18:10 bbb.txt drwxr-xr-x. 2 root root 20 Nov 13 18:09 folder drwxr-xr-x. 2 root root 20 Nov 13 18:11 folder_b [root@localhost ~]# ll folder_b总用量 0lrwxrwxrwx. 1 root root 7 Nov 13 18:11 eee.txt -> bbb.txt [root@localhost ~]# rm -rf bbb.txt [root@localhost ~]# ll folder_b总用量 0lrwxrwxrwx. 1 root root 7 Nov 13 18:11 eee.txt -> bbb.txt 删除了原文件,软链接的箭头目标为红色一闪一闪,表示找不到目标文件。 常用目录作用 [root@localhost ~]# ls /bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys temp tmp usr var 说明: /根目录 /bin命令保存目录(普通用户权限) /sbin命令保存目录(root权限) /boot启动目录,包含启动相关文件,和开机有关 /dev设备文件保存目录 /etc配置文件保存目录 /home普通用户家目录 /lib系统库保存目录 /mnt系统挂载目录 /media挂载目录(常用于光盘挂载) /root超级用户家目录 /tmp临时目录 /proc直接写入内存的 /sys直接写入内存的 /usr系统软件资源目录 /var系统相关文档内容

优秀的个人博客,低调大师

linux下vim 命令详解

vi: Visual Interface 可视化接口 vim: VI iMproved VI增强版 全屏编辑器,模式化编辑器 vim模式: 编辑模式(命令模式) 输入模式 末行模式 模式转换: 编辑-->输入: i: 在当前光标所在字符的前面,转为输入模式; a: 在当前光标所在字符的后面,转为输入模式; o: 在当前光标所在行的下方,新建一行,并转为输入模式; I:在当前光标所在行的行首,转换为输入模式 A:在当前光标所在行的行尾,转换为输入模式 O:在当前光标所在行的上方,新建一行,并转为输入模式; 输入-->编辑: ESC 编辑-->末行: : 末行-->编辑: ESC, ESC 注:输入模式和末行模式之间不能直接切换 一、打开文件 vim +# :打开文件,并定位于第#行 vim +:打开文件,定位至最后一行 vim +/PATTERN : 打开文件,定位至第一次被PATTERN匹配到的行的行首 注:默认处于编辑模式 二、关闭文件 1、末行模式关闭文件 :q 退出 :wq 保存并退出 :q! 不保存并退出 :w 保存 :w! 强行保存 :wq --> :x 2、编辑模式下退出 ZZ: 保存并退出 三、移动光标(编辑模式) 1、逐字符移动: h: 左 l: 右 j: 下 k: 上 #h: 移动#个字符 2、以单词为单位移动 w: 移至下一个单词的词首 e: 跳至当前或下一个单词的词尾 b: 跳至当前或前一个单词的词首 #w: 移动#个单词 3、行内跳转: 0: 绝对行首 ^: 行首的第一个非空白字符 $: 绝对行尾 4、行间跳转 #G:跳转至第#行 gg: 第一行 G:最后一行 5、末行模式 .: 表示当前行 $: 最后一行 #:第#行 +#: 向下的#行 四、翻屏 Ctrl+f: 向下翻一屏 Ctrl+b: 向上翻一屏 Ctrl+d: 向下翻半屏 Ctrl+u: 向上翻半屏 五、删除单个字符 x: 删除光标所在处的单个字符 #x: 删除光标所在处及向后的共#个字符 六、删除命令: d d命令跟跳转命令组合使用 #dw, #de, #db dd: 删除当前光标所在行 #dd: 删除包括当前光标所在行在内的#行; 七、粘贴命令 p p: 如果删除或复制为整行内容,则粘贴至光标所在行的下方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的后面 P: 如果删除或复制为整行内容,则粘贴至光标所在行的上方,如果复制或删除的内容为非整行,则粘贴至光标所在字符的前面 八、复制命令 y 用法同d命令 九、修改:先删除内容,再转换为输入模式 c: 用法同d命令 十、替换: r:单字符替换 #r: 光标后#个字符全部替换 R: 替换模式 十一、撤消编辑操作 u u:撤消前一次的编辑操作 #u: 直接撤消最近#次编辑操作 连续u命令可撤消此前的n次编辑操作 撤消最近一次撤消操作:Ctrl+r 十二、重复前一次编辑操作 .:编辑模式重复前一次编辑操作 十三、可视化模式 v: 按字符选取 V:按矩形选取 十四、查找 /PATTERN ?PATTERN n 下一个 N 上一个 十五、查找并替换 在末行模式下使用s命令 headline,footlines#PATTERN#string#g 1,$:表示全文 %:表示全文 十六、使用vim编辑多个文件 vim FILE1 FILE2 FILE3 :next 切换至下一个文件 :prev 切换至前一个文件 :last 切换至最后一个文件 :first 切换至第一个文件 :q退出当前文件 :qa 全部退出 十七、分屏显示一个文件 Ctrl+w, s: 水平拆分窗口 Ctrl+w, v: 垂直拆分窗口 在窗口间切换光标: Ctrl+w, ARROW(h,j,k,l或方向键) :qa 关闭所有窗口 十八、分窗口编辑多个文件 vim -o : 水平分割显示 vim -O : 垂直分割显示 十九、将当前文件中部分内容另存为另外一个文件 末行模式下使用w命令 :ADDR1,ADDR2w /path/to/somewhere 二十、将另外一个文件的内容填充在当前文件中 :r /path/to/somefile 附加到当前文件光标后 二十一、跟shell交互 :! COMMAND 二十二、高级话题 1、显示或取消显示行号 :set nu :set nonu mu = number 2、显示忽略或区分字符大小写 :set ic :set noic ic = ignorecase 3、设定自动缩进 :set ai :set noai ai = autoindent 4、查找到的文本高亮显示或取消 :set hlsearch :set nohlsearch 5、语法高亮 :syntax on :syntax off 注:特性当前有效,如果想要永久有效需修改配置文件 二十三、配置文件 /etc/vimrc 针对所有用户 ~/.vimrc 针对当前用户

优秀的个人博客,低调大师

linux资源管理命令

一、系统资源 网络资源、存储资源,计算资源 二、系统资源管理名命令 1.查看目录下的文件使用情况 du -sh 目录/文件 注:du -sh查看的是目录/文件占用block块的大小 ll -h查看文件/目录的本身大小 2.查看文件系统(格式化好的分区)的使用情况 df -h 注:查看文件系统使用i节点的情况 df -i 查看文件系统的使用情况,同时查看文件系统的格式 df -Th 3.查看内存使用情况 free -m/g/k 4.进程与线程 1)当一个应用程序运行时,会在内存和CPU中产生一个或多个与该应用程序对应的进程 2)每个进程下,存在多个线程 3)进程是系统资源管路的最小单位,线程是程序运行的最小单位 4)系统内最高进程是systemd进程,它在系统启动是诞生,是系统所有其他进程的父进程 5)进程的诞生是通过派生,派生出其他的进程的进程被称为父进程,被派生的进程称为“子进程” 6)进程在完成被执行后,会退出 7)如果一个子进程没有被执行,其父进程就退出了,那么该子进程被称为“孤儿进程”,“孤儿进程”会被systemd进程接管 8)如果一个进程以被执行,但不释放资源,那么该进程被称为“僵尸进程” 5.查看系统进程情况 ps -elf :侧重于查看父进程和子进程间的关系(PID、PPID、NI) ps aux :侧重于查看每个进程占用的系统资源(CPU、内存)的情况(PID、%CPU、%MEN、STAT) 注:在使用 ps aux时,重点关注状态为z的僵尸进程 例:查看系统占用CPU最高的前五个进程 ps aux |sed 1d|sort -rn -k3|head -n5 查看系统占用内存最高的前五个进程 ps aux |sed 1d|sort -rn -k4|head -n5 查看系统内的僵尸进程,输出僵尸进程的PID、STAT ps aux|awk '$8 ~/z/'|awk '{print $2,$8}' 6.以树形机构显示系统进程 pstree 注:如果没有该命令,可以使用yum进行安装 yum install psmisc -y 显示进程PID pstree -p 用户名 7.显示当前系统信息 top 实时显示当前系统状态(每隔3秒刷新一次) 内置命令: h 帮助(ESC或q退出帮助) 空格 立即刷新 s 设置刷新时间 r 设置一个进程的优先级(-20到19,-20优先级最高) k 终止一个进程 q 退出top 注:仅显示一个top的输出结果:top -n1 8.显示进程打开的文件/目录 1)显示进程打开的文件/目录 losf 文件/目录 例:显示/mnt/cdrom 被哪个进程占用 losf /mnt/cdrom 2)显示进程打开的端口号 例:显示TCP22号端口被哪个进程占用 lsof -i tcp:22 3)显示root账户打开的所有文件 lsof -u root 4)显示PID为1的进程打开的所有文件 lsof -p l 9.显示系统负载 uptime 10.向其他进程发送信号 kill -信号名/信号代码 进程的PID 注:共64个信号,前32个信号被称为非实时信号,后32个信号,称为实时信号 kill -l查看说有信号 SIGHUP 1 使程序退出或重新加载 SIGINT 2 中断当前程序 SIGKILL 9 使程序强制退出 SIGTERN 15 使程序自然退出 SIGCONT 18 使暂停的程序继续运行 SIGSTOP 19 使正在运行的程序暂停 SIGSTP 20 使正在运行的程序终止 11.控制所有同名进程 killall -信号名/信号代码 进程名 12.进程调度 1)前台命令/程序放入后台执行;& 例:将命令ping 127.0.0.1> /dev/null 放入后台运行 ping 127.0.0.1> /dev/null & 2)前台命令/程序放入后台暂停(挂起):ctrl+Z 3)后台暂停的命令/程序继续执行:bg 后台进程编号 4)将后台程序放入前台运行:fg 后台进程编号 5)杀死后台程序:kill -9 %后台进程编号 6)查看后台程序:jobs 13.nohup 常用于程序的启动。当前中终端退出后,在当前终端执行的命令/程序依然执行 nohup 命令/程序/脚本 14.优先级 多个程序以队列的方式等待CPU的处理,可以对程序赋予优先级以确保哪些程序可以优先被执行 优先级从-20(最高)到19(最低) 1)在程序启动时服务程序优先级 nice -优先级 程序/脚本/命令 & 例:将 ping 127.0.0.1进程优先级设置为-20 nice --20 ping 127.0.0.1 将ping 127.0.0.1进程优先级设置为19 nice -19 ping 127.0.0.1 2)修改程序的优先级 renice 优先级 命令/程序/脚本 例:将PID为25245的进程优先级调整为-19 renice -19 25245 将PID为25245的进程优先级调整为+20 renice 20 25245

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册