一、linux kill命令详解
进程管理
二、使用过程的命令
GNU工具链-GCC/GDB/MakeFile
--------------------------------------------------------------------------------------------------------------------------------------------------------------------
https://tomasonl.lanzous.com/icq55yh ------linux指导书下载地址
一、linux kill命令详解
1.命令格式:kill[参数][进程号]
2.命令功能:发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用“-KILL” 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。
3.命令参数:
-l | 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称 |
-a | 当处理当前进程时,不限制命令名和进程号的对应关系 |
-p | 指定kill 命令只打印相关进程的进程号,而不发送任何信号 |
-s | 指定发送信号 |
-u | 指定用户 |
关键点:
1、kill命令可以带信号号码选项,也可以不带。如果没有信号号码,kill命令就会发出终止信号(15),这个信号可以被进程捕获,使得进程在退出之前可以清理并释放资源。也可以用kill向进程发送特定的信号。
2、kill可以带有进程ID号作为参数。当用kill向这些进程发送信号时,必须是这些进程的主人。如果试图撤销一个没有权限撤销的进程或撤销一个不存在的进程,就会得到一个错误信息。
3、当kill成功地发送了信号后,shell会在按下Enter键使shell的命令提示符再次出现时屏幕上显示出进程的终止信息。
4、应注意,信号使进程强行终止,这常会带来一些副作用,如数据丢失或者终端无法恢复到正常状态。发送信号时必须小心,只有在万不得已时,才用kill信号(9),因为进程不能首先捕获它。要撤销所有的后台作业,可以输入kill 0。因为有些在后台运行的命令会启动多个进程,跟踪并找到所有要杀掉的进程的PID是件很麻烦的事。这时,使用kill 0来终止所有由当前shell启动的进程,是个有效的方法。
只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。 下面是常用的信号:
HUP 1 终端断线 INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \) TERM 15 终止
KILL 9 强制终止 CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)
先用ps查找进程,然后用kill杀掉
命令:kill 3268
[root@localhost test6]# ps -ef|grep vim
root 3268 2884 0 16:21 pts/1 00:00:00 vim install.log
root 3370 2822 0 16:21 pts/0 00:00:00 grep vim
[root@localhost test6]# kill 3268
[root@localhost test6]# kill 3268 -bash: kill: (3268) - 没有那个进程
杀死指定用户所有进程
命令:kill -9 $(ps -ef | grep peidalinux)
kill -u peidalinux
输出:
[root@localhost ~]# kill -9 $(ps -ef | grep peidalinux)
[root@localhost ~]# kill -u peidalinux
init是Linux系统操作中不可缺少的程序之一。由内核启动的用户级进程,始终是第一个进程pid=1。 不可以kill!
进程管理
Linux中一切皆文件
(文件:读写执行(查看,创建,删除,移动,复制,编辑),权限(用户、用户组)。系统:(磁盘,进程))
对于我们开发人员来说,其实Linux更多偏向于使用即可!
ps 查看当前系统中正在执行的各种进程的信息!
ps aux :
-a 显示当前终端运行的所有的进程信息(当前的进程一个)
-u 以用户的信息显示进程
-x 显示后台运行进程的参数!
对于我们来说,这里目前只需要记住一个命令即可 ps aux|grep 进程名字! 过滤进程信息!
ps -ef:可以查看到父进程的信息
# ps -aux 查看所有的进程
ps -aux|grep mysql
# | 在Linux这个叫做管道符 A|B
# grep 查找文件中符合条件的字符串!
ps -ef|grep mysql # 看父进程我们一般可以通过目录树结构来查看!
# 进程树!
pstree -pu
-p 显示父id
-u 显示用户组
结束进程:杀掉进程,等价于window结束任务!
kill -9 进程的id
二、使用过程的命令
1 解除占用 sudo rm /var/cache/apt/archives/lock&& sudo rm /var/lib/dpkg/lock
2 rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。 rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明。
ps、lrzsz是一款在linux里可代替ftp上传和下载的程序。也很香
语法
拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":"分隔符时就启动这种工作模式。如:rsync -a /data /backup
使用一个远程shell程序(如rsh、ssh)来实现将本地机器的内容拷贝到远程机器。当DST路径地址包含单个冒号":"分隔符时启动该模式。如:rsync -avz *.c foo:src
使用一个远程shell程序(如rsh、ssh)来实现将远程机器的内容拷贝到本地机器。当SRC地址路径包含单个冒号":"分隔符时启动该模式。如:rsync -avz foo:src/bar /data
从远程rsync服务器中拷贝文件到本地机。当SRC路径信息包含"::"分隔符时启动该模式。如:rsync -av root@192.168.78.192::www /databack
从本地机器拷贝文件到远程rsync服务器中。当DST路径信息包含"::"分隔符时启动该模式。如:rsync -av /databack root@192.168.78.192::www
列远程机的文件列表。这类似于rsync传输,不过只要在命令中省略掉本地机信息即可。如:rsync -v rsync://192.168.78.192/www
选项
-v, --verbose 详细模式输出。
-q, --quiet 精简输出模式。
-c, --checksum 打开校验开关,强制对文件传输进行校验。
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD。
-r, --recursive 对子目录以递归模式处理。
-R, --relative 使用相对路径信息。
-b, --backup 创建备份,也就是对于目的已经存在有同样的文件名时,将老的文件重新命名为~filename。可以使用--suffix选项来指定不同的备份文件前缀。
--backup-dir 将备份文件(如~filename)存放在在目录下。
-suffix=SUFFIX 定义备份文件前缀。
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件,不覆盖更新的文件。
-l, --links 保留软链结。
-L, --copy-links 想对待常规文件一样处理软链结。
--copy-unsafe-links 仅仅拷贝指向SRC路径目录树以外的链结。
--safe-links 忽略指向SRC路径目录树以外的链结。
-H, --hard-links 保留硬链结。
SSH方式
首先在服务端启动ssh服务: service sshd start 启动 sshd: [确定] 使用rsync进行同步
http://man.linuxde.net/rsync这是使用教程的网址
3.vim使用(https://blog.csdn.net/leon1741/article/details/54314053)
正常模式:可以使用快捷键命令,或按:输入命令行。
· 插入模式:可以输入文本,在正常模式下,按i、a、o等都可以进入插入模式。
· 可视模式:正常模式下按v可以进入可视模式, 在可视模式下,移动光标可以选择文本。按V进入可 视行模式, 总是整行整行的选中。ctrl+v进入可视块模式。
· 替换模式:正常模式下,按R进入。
4.屏幕分辨率怎么都跳不回来
The System is running in low graphics mode
Your Screen, graphics card,and input device settings could not be detected correctly. You will need to configure this yourself
解决方法:
01. cd /etc/X11
02. sudo cp xorg.conf.failsafe xorg.conf
reboot重启就好了
linux下的ubuntu快速配置开发
1,语言汉语应用到系统
2,删除不用的软件
3,apt-get update&&apt-get upgrade
4,http://www.odoov.com/index.php?title=%E4%BB%8E%E6%BA%90%E7%A0%81%E5%AE%89%E8%A3%85Odoo
克隆Odoo12源码
git clone https://www.github.com/odoo/odoo --branch master --depth 1 --single-branch ./Odoo12
部署java项目
nohup java -jar XXX.jar > log.log 2>&1 &
-2020.05.05--
通常服务器采用LAMP或者LNMP :Apache、Nginx!!linux+Mysql+PHP。。。
-2020.05.08--
GNU工具链-GCC/GDB/MakeFile:
- GNU Compiler Collection(GCC):这里GCC纯指编译器,包括链接等其它操作----编译
- GNU Debugger(GDB):著名的gcc下调试工具---------调试
- GNU Make(Makefile):编译和构建工程的自动化工具,即Makefile------工程
GCC
yum install gcc
yum install g++
yum install gdb
默认情况下一般是安装好的。
gcc --version
gdb --version
可分别查看gcc和gdb的版本信息,
gcc --help (man gcc)
gdb --help
g++ --help
或下面的命令获得关于gcc以及gdb的帮助信息。在使用gcc时偶尔会忘掉一两个参数,这几个命令就非常有用。
GCC的使用
(1)预处理pre-processing(2)编译compiling(3)汇编assembling(4)链接linking
gcc main.c
gcc基础语法gcc [option][filename]
option:
-o 确定编译出来的可执行文件的名称
-c 只编译不连接成可执行文件,由.c->.o
-g 生产调试工具(gdb)所必要的符号信息
-O 对程序进行优化编译和链接
-O2 优化比O好
-Idirname
-Ldirname
-lname
-static静态链接库文件 静态.a,动态.so
-Wall 生成所有警告信息
-w 不生成任何警告信息
-DYES 定义MACRO宏,等效于在程序中#define MACRO
GDB
GDB方面嘛,知道如何实现其他平台上IDE提供的功能同样也算做合格,比如设置断点,单步调试,step in,step over,监视变量,分析coredump文件回溯stack。如果能条件触发断点、attach到不同的进程啥的应该就算加分了吧。
GDB命令
启动GDB (1)gdb 文件名(2)gdb ->file 文件名
list 查看程序
break 函数名/行号 /文件名:行号/行号 if 条件
info break 查看所有的断点
delete 断点编号 删除
print 变量名 查看指定的变量
watch 变量名 对指定的变量进行监控
quit 退出
MakeFile
1.makefile规则:如何生成一个或者多个目标文件
targets(目标):prerequisites(依赖)
command(命令)
编写makefile文件所有的文件必须要以[TAB]键开始
2.make默认在当前目录下寻找makefile或者Makefile文件或 make -f 文件名
3.伪目标
.PHONY:clean
clean:
rm -f hello main.o fun1.o fun2.o
4.变量
obj=main.o fun1.o fun2.o
hello:(obj)gcc(obj)gcc(obj) -o hello
自动化变量
:代表所有的依赖文件:代表所有的依赖文件@:代表目标
$<:代表第一个依赖文件
5.注释 #
取消回显 @