0.0一条命令杀进程
ps -aux | grep mysql | grep -v grep | awk '{print $2}' | xargs kill -9
ps -ef 或 ps aux 这两者是最多的来查看静态的进程命令
grep mysql 这里以mysql为例
grep -v grep 将grep自身的进程排除在外,-v参数,除..之外
awk '{print $2}' 获得进程号
xargs命令会将前面命令的输出结果(pid)作为"kill -9"命令的参数,并执行该命令。"kill -9"会强行杀掉指定进程
0.1用shell脚本杀进程
./kill_process.sh mysql
vim kill_process.sh
#!/bin/bash
ps -ef | grep $1 | grep -v grep | awk '{print $2}' | xargs kill -9
mysql将会作为参数传递给$1
0.2每隔10分钟自动杀进程
./kill_process.sh mysql
vim kill_process.sh
#!/bin/bash
while [ 1 ]
do
ps -ef | grep $1 | grep -v grep | awk '{print $2}' | xargs kill -9
sleep 600
done
1.linux文件操作命令
pwd - 查看当前文件路径
cd - 进入指定文件夹
ls - 查看当前文件下文件
ls -a查看当前文件夹下所有文件(包括隐藏文件)
ls -l将当前文件夹下文件按长格式展现
ls -R递归查找当前文件夹及其下所有文件夹中的所有文件
mkdir 创建文件夹
rmdir 删除空文件夹
touch 创建文件
cp 复制文件 -i询问 -f 强制 -n 不覆盖
rm 删除文件
rm -r删除文件夹
mv 移动文件(可以用于文件重命名)
mkdir -p a/{b,c}/{d,e,f} 同一层级创建多个目录
less/more/head/tail查看文件
cat 查看文件内容
find'/grep文件查找
找出文件夹 /tmp/xyz/ 下所有的权限为 642 大小, 在 10k 到 100k 之间的 log 文件 :
find /tmp/xyz/ ‑perm 0642 ‑size +10k ‑size ‑100k ‑name '*.log'
uniq 去重, 依赖排序, 常跟在 sort 后面使用 sort/ 排序 diff比较文件内容的差异 /wc -l统计文件的行数 -w统计单词计数,-c统计字符计数
ps -ef /ps -aux查看进程
netstat -nap 查看网络连接状态
netstat -natp|grep 端口号 - 查看指定端口的网络连接状态
ifconfig / ip查看网络状态
top /sar动态查看所有进程运行情况
查历史记录配置时间显示:bashrc 配置显示时间:
export HISTTIMEFORMAT="[%y‑%m‑%d_%T] "
修改 bashrc 后使其生效: source ~/.bashrc
free ‑m 以 Mb 为单位查看内存
kill 进程 结束进程 ‑1不间断重启,-9强制杀死进程,-15正常终止进程
获取一个命令的帮助的三种方式:
man 命令
info 命令
命令 --help
jobs查看后台任务
bg%编号 让任务在后台运行
fg%编号 让任务回到前台运行
redis-server & 让redis在后台运行
ctl+z 把任务放到后台,但不一定让他运行
ctl +c 关闭前台进程
ps -ef | grep redis-server 查看redis-server的进程
kill 23420 - 结束id为23420的进程(redis)
netstat -nap | grep 6379 查看端口状态
du 查看磁盘占比情况
redis-server > redis.log 2>redis-error.log& 开启进程不要输出,直接跳入输入界面,如果开启成功,把结果写入 redis.log文件,否则写入redis-error.log文件
redis-cli -h 120.77.222.217 -p 6379 用客户端连接redis
用长格式列出/etc目录下所有文件和文件夹并将结果输出到result.txt文件中
ls -la /etc > result.txt
在当前路径下名为hello的文件在/usr/bin路径下创建一个名为gooodbye的软连接
ln -s hello /usr/bin/goodbye
在vim的命令模式下,回到文件起始位置并删除5行内容的命令是
gg5dd
在当前路径下有一个名为hello.py的文件,其访问权限为rw-r--r--,要将该文件访问权限修改为rwxr-xr--的命令:
chmod 754 hello.py
将当前路径下所有的文件和文件夹归档到一个名为all.tar文件的命令:
tar -cvf all.tar *
在Linux系统下如何将一个进程置于后台运行,如何查看后台运行进程,如何将后台运行的进程置于前台:
在命令后使用&可以将进程置于后台运行或者bg%编号也可以将其置于后台
可以使用jobs命令查看所有的后台进程
可以用fg%编号将指定编号的后台进程置于前台运行
linux系统下查看是否存在名为foo的进程有哪些方式,如果存在如何将其结束掉
查找名为foo进程可以用ps -aux | grep foo或者top | grep foo
kill 进程号 可以结束该进程
在linux系统下如何配置一个在每周五19:00自动执行的任务:
crontab -e
0 19 * * 5 任务
linux系统下安装软件有哪些方式
使用包管理工具yum或rpm进行安装
运行二进制安装程序进行安装
解压缩压缩文件并配置环境变量来使用软件
通过源代码构建安装
2.linux安装软件和配置服务
1.通过包管理工具 yum/rpm/apt/deb
2.源代码构建安装
wget -网上下载源文件
gunzip /xz -d 解压
make && make install
ln -s 所在文件夹 快捷方式所在文件夹 生成快捷方式
systemctl start/stop/restart/status/enable/disable 启动/停止/重启/查看状态系统
service 启动服务
配置防火墙:firewalld/iptables
systemctl start firewalld 开启防火墙
systemctl restart firewalld 重启
3压缩及解压:
tar
压缩: tar ‑czf newfile.tgz files
解压: tar ‑xzf file.tgz
zip
压缩 zip ‑r newfile.zip src‑file1 src‑file2 ...
解压 gunzip file.zip
4.磁盘管理
du ‑hs 查看文件或文件夹大小
df ‑h 查看磁盘分区的占用情况
5vim的使用
命令模式 --i/a --> 插入模式(编辑模式) --esc-->命令模式--:?/-->末行模式 -- enter-->命令模式
ctrl+e/ctrl+y - 滚动一行
ctrl+f/ctrl+b - 滚动一页
gg - 到首行
G - 到末行
100G - 将光标移动到第100行
hjkl - 左下上右移动光标
-删到文件结尾
100dw删100行
yy/p -复制/粘贴
数字yy -- 从光标所在行开始复制指定行数的内容
u/ctrl+r撤销/恢复
ZZ/:wq - 保存退出 -!-强制操作
:%!sort -- 对内容排序
/搜索内容(正则) -查找 -n/N-向下/上搜索
?搜索内容(正则) -查找
:1,$s/搜索的内容(正则)/替换后的内容/ice 从第一行到最后一行搜索替换
版本比较: vim -d 文件1 文件2
多文件查看 vim 文件1 文件2 文件3
末行模式中输入ls查看文件(:ls -查看文件)
(:b 文件 -切换文件)
:sp/:vs -水平/垂直拆分窗口
ctrl+w ctrl+w -切换窗口
6设置vim系统提示及快捷键:
用户主目录下: vim ~/.vimrc
set nu
set ts=4
set expandtab
set autoindent
set nohls
syntax on
set ruler
7git使用
git init 新建git 仓库
git add 文件/文件夹 将工作区内容提交到缓存区
git add -A 将工作区所有内容提交到缓存区
git commit -m ‘提交信息备注’ 将缓冲区内容提交到本地仓库
git push ‑u origin master 将本地仓库代码推送到远程库 (第一次在仓库中提交才加-u)
git reset --hard HEAD^ 回到上一个版本
git reset - - hard 版本号 回到指定的版本
git reset - - hard HEAD 让工作目录中的内容和仓库中的内容保持一致
git clone <url> 将服务器上的项目(仓库)克隆
git diff 差异对比
git pull 将远程库代码下载到工作区
git status 查看当前git状态
git log 查看提交历史/版本
git reset 将本地仓库代码取消并添加到工作区
分支管理
git checkout 分支名 切换分支
git branch 分支名 创建分支
git branch 查看分支
git checkout -b 分支名 切换并创建新的分支
git merge 分支名 让当前分之和指定分之进行合并
git diff 分之1 分之2 查看两个分之之间的差异
注意: 切换分之、push、pull,这些操作前要保证工作区是clean
8几个特殊符号
| 管道符: 把前面的输出结果作为后面命令的参数
重定向: 把前面的输出结果重定向到指定的文件中
< 重定向: 把前面的输出结果重定向到指定的文件中
8服务器中安装python3
[root@iZwz97tbgo9lkabnat2lo8Z ~]# yum install gcc
[root@iZwz97tbgo9lkabnat2lo8Z ~]# wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
[root@iZwz97tbgo9lkabnat2lo8Z ~]# gunzip Python-3.6.5.tgz
[root@iZwz97tbgo9lkabnat2lo8Z ~]# tar -xvf Python-3.6.5.tar
[root@iZwz97tbgo9lkabnat2lo8Z ~]# cd Python-3.6.5
[root@iZwz97tbgo9lkabnat2lo8Z ~]# ./configure --prefix=/usr/local/python36 --enable-optimizations
[root@iZwz97tbgo9lkabnat2lo8Z ~]# yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
[root@iZwz97tbgo9lkabnat2lo8Z ~]# make && make install
... 配置环境变量 ...
[root@iZwz97tbgo9lkabnat2lo8Z ~]# ln -s /usr/local/python36/bin/python3.6 /usr/bin/python3
[root@iZwz97tbgo9lkabnat2lo8Z ~]# python3 --version
Python 3.6.5
[root@iZwz97tbgo9lkabnat2lo8Z ~]# python3 -m pip install -U pip
[root@iZwz97tbgo9lkabnat2lo8Z ~]# pip3 --version
9ssh免密登陆
1.在主机和从机上执行:ssh-keygen
2.在从机上执行: scp id_rsa.pub root@主机地址:~/.ssh/master.pub
(上面这条指令是将从机上的 id_rsa.pub文件拷贝传递给到主机的.ssh文件夹下,并且命名为’master.pub’)
3.在主机中的.ssh文件夹中创建authorized_keys文件: touch authorized_keys
4.修改文件authorized_keys的权限: chmod 600 authorized_keys
5.将master.pub放进authorized_keys文件中: cat master.pub >> authorized_keys
6.在操作主机的时候,需要主机能够自己免密访问自己就将自己的公钥放在自己的authorized_keys文件中