复杂shell 用python
$(xxx) `` 是取结果的值 (fish)
${} or $xx 取声明了的变量的值
$# 是传给脚本的参数个数
$0 是脚本本身的名字
$1 是传递给该shell脚本的第一个参数
$2 是传递给该shell脚本的第二个参数
$@ 是传给脚本的所有参数的列表
$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$ 是脚本运行的当前进程ID号
$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误
if [ $? -eq 0 ]; then shell对空格比较敏感 [ ]都要有空格
xxxx
else
xxxx
exit 1
fi
#!/bin/bash
for i in $(seq 1 10)
do
echo $(expr $i \* 3 + 1);
done
-w file 用户可写为真
-x file 用户可执行为真
-f file 文件为正规文件为真
-d file 文件为目录为真
-eq | 等于 |
-ne | 不等于 |
-gt | 大于 |
-lt | 小于 |
ge | 大于等于 |
le | 小于等于 |
linux 杀死进程 ps -aux | grep xxx kill
或者pkill xxx 更直接 pgrep
linux 按住 super 键 + 鼠标可移动位置 或者 alt+F7
对每行文件内容操作 主要是 | while read line
cat ~/profile | while read line
do
sleep 3s
echo $line
done
shell 脚本退出状态 0 正常 1 错误
1、定义变量时不加$,使用时要加$,用以区别字符串,变量名用{}括来是个好习惯,shell会将花括号里面的字符解释为一个整体,后面将数组的时候会体现。即 $xx ${xxx}
2、不要在等号两边加上空格,否则将会报错! shell对空格敏感
apt -f install install deb 时修复安装
awk '{print $2}' 打印第二个字段
shell \ / 转义字符
ctrl ;显示最近历史粘贴命令 其实是fcitx自带的历史粘贴板 ,可以调节数量和皮肤
alt+F2可直接执行命令
ls
文件类型 rwx rwx rwx
r 4 w 2 x 1
user group other
chmod -R 700 -R递归
locate 比find 快使用简单
locate自己的索引库 每天更新一次crontab ,最近最新的不会出现
可以手动sudo updatedb更新, /var/cache/locate
fish alt left right path前进 后退
ps -aux | grep guake | awk '{print $2}' awk ‘{print $2}’ 方便查进程号 第几列
利用awk 对列的操作可以 轻易的操作,比如删除 此文件夹下的隐藏文件
rm -rf `ls -dl .* | grep '^-' | awk '{print $9}'`
只列出隐藏文件包括文件 目录 ls -dl .*
只列出 文件 ls -al | grep '^-' 匹配以-开头
只列出 目录 ls -al | grep '^d' 匹配以 d开头
ssh远程执行命令
#! /bin/bash
for i in 1 2 3 for循环的多种样式
do
ssh root@mini0$i "source /etc/profile;/opt/zookeeper-3.4.11/bin/zkServer.sh start" 需要将待执行命令加入到
引号中,此脚本为开启zk 因为ssh 不会source /etc/profile 所以还需要source 默认开机会自动读取 profile
done
pkill 相当与 kill -9 grep 模糊杀死进程 pgrep 模糊查找进程
猜想内部是利用的pgrep= ps -aux | grep xxx | awk '{print $2}'
grep -v 反向
grep -i 忽略大小写
shell 双引号里面套单引号
awk '{print $2}'
cut -d , -f 1 d分隔符 f第几个
uniq去除重复行
终端中 alt d删除后一个单词
alt backspace 删除前一个单词
ctrl m 显示菜单栏menu ctrl h hide 显示隐藏文件
ctrl 选择几个不同的文件
fish ls - tab 会提示每个参数
pwd | xsel 会直接将路径名复制到粘贴板上方便快捷
升级版 直接获取文件名和路径名封装成脚本放到$PATH中
echo (pwd)/fileName | xsel
echo `pwd`/fileName | xsel
echo $(pwd)/fileName | xsel
fcitx 历史粘贴板 ctrl ;
vim ctrl o i历史上次下次
gnome3移动窗口
1 super+鼠标
2 shift+F7
3 最上顶部栏
shell 一次读文件的一行
cat xxx | while read line
do
echo $line
sleep 2
done
查看发行版 cat /etc/issue
chmod 4755与chmod 755 的区别在于开头多了一位,这个4表示其他用户执行文件时,具有与所有者相当的权限。
sudo chown -R root file
date -s 17:01:00 设置时间
/media/user/u 盘
linux万一图形界面崩了,可以从终端进入,ctrl alt F3 返回F1
cat /etc/profile | awk -F: '{print $2}' 根据:分割取第二个 可以替代 cut -d 分割副 -f fields
awk 默认按照空格分割
for f in `ls`; do echo $f | cut -d . -f 2; done 取那个名字 而不是那个文件
`ls` $(ls) (ls) bash fish 取返回结果
grep -v 反转
grep -i 忽略大小写
xargs
uniq
awk -F '_|-' '{print $6}' awk 指定多个分割符
lvdisplay 查看逻辑卷 centos 查看未挂载的磁盘 挂载 mount xxx /exist 指定的目录必须存在
自动登录
1 cookie 如百度云网页版 到配置目录中将cookie搞下来 复杂的验证码短信等
2 selenium 模拟登录如 网易企业邮箱 简单的只需模拟点击即可
#! /opt/anaconda3/bin/python3
from selenium import webdriver
# 去掉 头部的auto info 最新版采用的是options
options = webdriver.ChromeOptions()
options.add_argument("--disable-infobars")
driver = webdriver.Chrome(options=options)
driver.get("https://qiye.163.com/login/")
driver.find_element_by_id('accname').send_keys("")
driver.find_element_by_id('accpwd').send_keys("")
driver.find_element_by_xpath('//*[@id="loginForm"]/div[4]/button').click()
linux 下视频格式转换 ffmpeg -i input.flv output.mp4
ffmpeng 还可用作视频截取
rpm <-> deb
sudo alien xxx.rpm or xx.deb
按照指定分隔符且切分,并统计个数
head -1 csv | awk -F "," '{print NF}' NF 个数 -F 大写F
或者用py len(a.split(","))
locate sudo updatedb /var/cache/locate/
/etc/sudoers username ALL=NOPASSWD:ALL
init 6优雅重启 reboot 强制重启
yy复制当前页url到粘贴板
yt 重新打开一个相同的标签页
ls 按照大小排序 S sort h human r 反转
ls -Slh 由大到小
ls -Slrh 由小到大
history -c 清除
history -a 合并
history clear
history merge
!history
result=dict(zip(a,b)) list->dict
图形界面崩溃,紧急情况下,切换到字符界面,ctrl alt F3 F4 super left right 切换
shell 去重 uniq 而diff 是比较文件的不同
设置默认程序
1 ~/.config/mime.list 配置
2 setting default
3 在任意PDF文件上右键->属性->点击“打开为”,如下图所示
选中“Document Viewer”,点击“set as default”。
linux 删除拿不准的东西时记得 备份一下,或者直接注释掉,惨痛的教训
脚本的头 shell python
#! /bin/bash #! /bin/python
可加可不加
加上直接chmod +x xxx 可以直接 ./xxx
不加执行需要 bash python xxxx
一句话头声明其解释器
chown -R xxx path
sublimetext cfg
ctrl shift p 前缀快捷键
head menu bar
bottom status bar
right minimap
top tab
cfg /home/zl/.config/sublime-text-3/Packages/User/
{
"font_size": 14,
"ignored_packages":
[
],
"save_on_focus_lost": true,
"theme": "Default.sublime-theme"
}
wget 下载ftp链接
例如wget ftp://ftpuser:pwd@10.110.138.140/down/dhcp-4.2.3.tar.gz
shell先排序sort再去重 uniq
cat xxx | sort | uniq
ALT+F2 restarting gnome-shell 重启gnome shell插件
shell对应列拼接 paste命令
systemd-analyse (blame) 分析启动时间被谁给耽误了
shell replace 命令
firfox 按住shift url会在新的窗口实例中打开,而不是在新的标签页
replace xx zz
find 查找文件位置 find . -name xx 正则 深度 tree找不到
sudo dpkg-reconfigure gdm3 切换桌面环境 gdm sddm etc
sleep 默认为 秒
消除vim搜索后高亮 :noh
使用navicat查看表字段 注释创建表信息等 右键表最下面对象信息
点击右边的ddl 注意看很小