标签:执行命令 com library expr 历史 $* ubunt ps aux 查询
用途:
可以设置 shell 的执行方式,不带参数时输出环境变量。
> set [+-abCdefhHklmnpPtuvx]
注:
1. [-] 表示设置参数
2. [+] 表示取消设置参数
示例:
> tmp="nice day"
> $tmp
nice day
> set | grep tmp
tmp="nice day"
> unset tmp
> $tmp
用途:
连接远程计算机。
> ssh -p <port> <user>@<hostname> <remote cmd>
注:
配置 [.ssh] 在 [~/.ssh/config] 中,
Host <myhost>
User <username>
HostName <ip>
IdentityFile ~/env/<username>.id_rsa
可快速进行ssh连接,ssh myhost
。
不用提示输入密码,直接使用配置的密码进行远程登录,适用于脚本。
安装:
# Ubuntu
apt-get install sshpass
# Mac
brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb
> fg <task id>
> bg <task id>
注:
no job control in this shell
,可以使用 set -m
命令开启。ctrl + Z
,若要终止,进入 suspended
状态,使用 ctrl + C
,进入terminated
状态。fg
重新调到前台运行,或者通过 bg
调到后台运行。kill <pid>
。用途:
放在启动参数后面表示设置此进程为后台进程,这是称之为 job。通过 jobs
命令可以查看当前有多少后台运行的命令。
示例:
> ./run.sh &
> jobs -l
注:
当用户关闭窗口时,终端会受到HUP(hungup)信号,从而关闭其所有子进程。
若要让命令不被终止,有两种处理方式:
nohup
之所为setsid
、(<cmd> &)
之所为示例:
> nohup ping www.ibm.com &
> setsid ping www.ibm.com
> (ping www.ibm.com &)
> ps -ef | grep www.ibm.com
如果事前没有使用前面的方式保住进程,那么可以使用如下流程进行补救:
ctrl+Z
挂起进程,使用 jobs -l
获取进程号;bg <pid>
将其放入后台运行;disown <pid>
,可以避免 HUP 信号的影响。使用 nohup
命令时默认会将输出保存到文件 nohup.ou
,可以通过以下方式修改保存文件
> nohup ${my_app} > common.out 2> error.out
> nohup ${my_app} > all_in.out &
process status, 列出当前运行的进程的快照。命令参数:
查找特定的名称的进程时通常与 grep 命令连用,以查找 Wechat 相关进程为例:
# 将所有进程中的包含 Wechat 的连同表头一起输出
> ps -ef | grep -Ei 'PID|Wechat'
在我的电脑上输出结果是:
UID PID PPID C STIME TTY TIME CMD
501 1079 1 0 Thu10AM ?? 3:23.55 /Applications/WeChat.app/Contents/MacOS/WeChat
终止进程的命令,参数有:
> tail [-n <line numbers>] [-f] <file>
注:
tailf
head
> cat [-ns] <file>...
注:
tac
可以从尾到头显示文件内容(Mac 好像不支持)示例:
# 一次显示整个文件
cat <file1> <file2>
# 创建新文件
cat > <file>
# 将多个文件合并为一个文件
cat <file1> <file2> > <file>
> more [-s] [-<line numbers>] [+<line numbers>] <file>
注:
ctrl +F
向上滚动一屏,空格键
向下滚动一屏=
显示当前显示的行数范围及文件名称示例:
# 从第 100 行开始显示 debug.log, 每次滚动 10 行,合并空行为一
> more -s -10 +100 debug.log
比 more
强大的真正意义上的分页查看文件命令,more
一次会加载整个文件,而 less
是逐页加载。less
还支持向上翻页和搜索。
> less [-gimNsS] [-x <numbers>] <file>
注:
tab
为规定的数量的空格/
向上查找?
向下查找n
正向重复查找N
反向重复查找b
向后翻一页d
向后翻半页y
向前翻一页u
向前翻半页q
退出示例:
# 查找历史命令中包含run的命令
> history | less
/run
# 假设找到要运行的命令序号为 100,按 q 退出,再按如下重新执行
> !100
grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)
> grep <option> <file>...
示例:
# 查询日志文件中包含 keyword 但不含 keywords 的行,最多输出 10 行匹配,且显示匹配行前后 2 行
> grep -C 2 -n -m 10 keyword *.log | grep -v keywords
# 同时查找多个关键字
> grep -E 'a_key|b_key' a.file
tar 最初的设计目的是将文件备份到磁带上(tape archie),故名 tar。
tar 代表未压缩的 tar 文件,已经压缩的 tar 文件会附加压缩文件的扩展名,如 .tar.gz
表示经过 gzip 压缩。
命令参数:
# 解压 .tar.gz 文件到当前文件夹
> tar -zxf a_file.tar.gz
# 解压 .tar 文件到 tmp 文件夹
> tar -xf b_file.tar -C tmp/
# gzip 压缩文件 c_file 和目录 d_dir 到 out.tar.gz
> tar -czvf out.tar.gz c_file d_dir
gzip -d all.gz
gunzip all.gz
文本处理语言和工具,用于在文件中查找与模式匹配的行并在这些行上执行指定的操作,名称取自三位创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。可参见 AWK程序设计语言 、 awk命令 - IBM 以及 Linux awk 命令 - runoob.com 进行完整的学习。下面简单介绍下语法:
> awk '{[pattern] action}' {filenames} # 行匹配语句 awk '' 只能用单引号
Pattern 支持:
awk ‘/smith?/‘ a_file
awk ‘$1 > $3‘ b_file
|| && !
,值为真则匹配()
,组合匹配,
,匹配前一个的匹配示例:
# 指定分隔符(默认是空格或 TAB),有两种写法
## 用逗号分割
> awk -F, '{print $3}' a_file
> awk 'BEGIN{FS=","} {print $3}' a_file
## 先用空格分割再用逗号分割
> awk -F '[ ,]' '{print $3}' a_file
> awk 'BEGIN{FS="[ ,]"} {print $3}' a_file
# 忽略匹配文本的大小写
> awk 'BEGIN{IGNORECASE=1} /a_key/' a_file
# 获取 Kafka 进程的 ID
> ps aux | grep server.properties | grep -v grep | awk '{print $2}'
树状查看文件:
# 注意:这种方式会列出所有文件,建议使用 brew instal tree. 因为可以使用 `tree -L [depth]`自定义深度
> alias tree="find . -print | sed -e 's;[^/]*/;|____;g;s;____|; |;g'"
> source ~/.zshrc
取消别名:
> unalias tree
Windows 快捷键 | Mac 快捷键 | 功能 |
---|---|---|
ctrl + 左右键 | option + 左右键 | 在单词之间跳转 |
ctrl + a | 同左 | 跳到本行的行首 |
ctrl + e | 同左 | 跳到页尾 |
ctrl + u | 同左 | 删除当前光标前面的文字 |
ctrl + k | 同左 | 删除当前光标后面的文字 |
ctrl + w、ctrl + d | 同左 | 对于当前的单词进行删除操作,w删除光标前面的单词的字符,d则删除后面的字符 |
ctrl + y | 同左 | 恢复删除的文字 |
ctrl + l | 同左 | 清屏 |
基本思路:拷贝文件到本地,然后覆盖另一台上的同名文件。命令如下,其中 server-a
以及 server-b
是定义在文件 ~/.ssh/config
中的 HOST
。
ssh server-a "cat ~/test.txt" > ~/Desktop/test.txt;scp ~/Desktop/run.sh server-b:~/test.txt
# scp
scp root@172.34.2.7:/root/apps/web/app.mdeploy.config ~/Downloads
tree -N folder
以下摘引自 鸟哥的 Linux 私房菜 第六章,略有删减。
(1)数字类型改变文件权限
Linux文件的基本权限就有九个,分别是 owner/group/others
三种身份各有自己的 read/write/execute
权限,文件的权限字符为:-rwxrwxrwx
, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4
w:2
x:1
每种身份( owner/group/others
)各自的三个权限( r/w/x
)分数是需要累加的,例如当权限为:[-rwxrwx---]
分数则是
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
变更权限的指令chmod的语法是这样的:
chmod [-R] xyz 文件或目录
选项与参数:
(2)符号类型改变文件权限
还有一个改变权限的方法呦!从之前的介绍中我们可以发现,基本上就九个权限分别是 (1)user (2)group (3)others
三种身份啦!那么我们就可以藉由 u, g, o
来代表三种身份的权限!此外, a
则代表 all 亦即全部的身份!那么读写的权限就可以写成 r, w, x
!也就是可以使用底下的方式来看:
格式 | chmod | u g o a | +(加入) -(除去) =(设定) | r w x | 文件或目录 |
---|---|---|---|---|---|
例子 | chmod | a | = | r | .bashrc |
来实作一下吧!假如我们要设定一个文件的权限成为-rwxr-xr-x
时,基本上就是:
chmod u=rwx,go=rx .bashrc
# 注意喔!那个 u=rwx,go=rx 是连在一起的,中间并没有任何空格!
chmod a+w .bashrc
# 增加.bashrc这个文件的每个人均可写入的权限
偶然间,使用 ll
命令发现桌面上有许多 ~$
开头的文件,是用微软三件套打开后暂存文件,原文件已经删除了,可这暂存文件还隐存在桌面上,于是想要批量删除它们。
# 在当前目录找到以 “~$” 开头的文件,然后执行删除操作
find . -name "~\$*" -delete
wget "http://mirrors.hust.edu.cn/apache/kafka/2.1.0/kafka_2.11-2.1.0.tgz"
# 查看内核/操作系统/CPU信息
uname -a
# 查看操作系统版本
head -n 1 /etc/issue
# 查看CPU信息
cat /proc/cpuinfo
# 查看计算机名
hostname
# 查看环境变量
env
# 查看内存使用量和交换区使用量
free -m
# 查看各分区使用情况
df -h
# 查看指定目录的大小
du -sh <目录名>
# 查看内存总量
grep MemTotal /proc/meminfo
# 查看空闲内存量
grep MemFree /proc/meminfo
# 查看系统运行时间、用户数、负载
uptime
# 查看系统负载
cat /proc/loadavg
# 查看所有磁盘分区
fdisk -l
for i in `seq 1 $(cat /proc/cpuinfo |grep "physical id" |wc -l)`; do dd if=/dev/zero of=/dev/null & done
使用 https://github.com/oldratlee/useful-scripts 即可,命令如下:
sh show-busy-java-threads
限制:
sudo yum install java-1.8.0-devel
安装。标签:执行命令 com library expr 历史 $* ubunt ps aux 查询
原文地址:https://www.cnblogs.com/lshare/p/11334751.html