家资是何物,积帙列梁梠。这篇文章主要讲述快速使用linux系统指令相关的知识,希望能为你提供帮助。
基础Overview
- How to remember all these linux commands?
- English
- Official Manual : use ?
?man?
? command - Frequently Used Options :: ?
?tldr.sh?
?
- tldr.ostera.io/
- Practice,Practice and Practice (Muscle memory)
- `cat`cat xxxx.txt
[https://tldr.ostera.io/cat](https://tldr.ostera.io/cat) - `chmod`1.4读2写1执行
2.r读w写x执行
3.u文件所属者,g文件所属者所在组,o其他用户,a所有用户
4.+增加权限,-减少权限,=重新赋值
5.常用组合1:chmod ugo+r file1.txt
6.常用组合2:chmod a+r file1.txt
7.常用组合3:chmod ug+w,o-w file1.txt file2.txt
8.常用组合4:chmod -R a+r *
9.常用组合5:chmod 777 file - `chown`1.-R : 处理指定目录以及其子目录下的所有文件
2.--help : 显示辅助说明
3.-v : 显示详细的处理信息
4.-f : 忽略错误信息
5.常用组合1:chown root /var/run/httpd.pid
6.常用组合2:chown runoob:runoobgroup file1.txt
7.常用组合3:chown -R runoob:runoobgroup *
8.常用组合4:chown :512 /home/runoob - `cp`1.[https://tldr.ostera.io/cp](https://tldr.ostera.io/cp)
2.-a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
3.-f:覆盖已经存在的目标文件而不给出提示。
4.-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
5.-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
6.常用组合1:cp –r test/ newtest - `du`1.查看文件目录大小
2.常用组合1:du -h test
3.常用组合2: du -sh * - `df`1.常用查看存储空间
2.常用组合1:df -h
3.常用组合2: df -T - `file`1.查看文件属性
2.常用组合1:file /root/test
3.常用组合2: file -c 文件名 查看指令执行过程 - `ln`1.创建连接
2.-s:对源文件建立符号连接,而非硬连接。
2.常用组合1:ln -s 源目录 链接目录
3.常用组合2:ln源目录 链接目录 - `ls`1.-a 列出目录所有文件,包含以.开始的隐藏文件
2.-l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
3.-t 以文件修改时间排序
4.-S 以文件大小排序
5.-h 以易读大小显示。
6.常用组合1:ls -la 或者单独使用ls - `mkdir`1.-p 确保目录名称存在,不存在的就建一个。
2.常用组合1:mkdir test
3.常用组合2:mkdirtest/newtest - `mv`1.改名:mv zhangsan lisi
2.mv /var/log/test.txt. - `pwd`1.查看当前路径
`rm`1.-r 将目录及以下之档案亦逐一删除。
2.-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
2.常用组合1:rm -rf /opt/test/ - `rmdir`1.删除空的目录
2.常用组合1:rmdir -p test/test1 - `tee`1.标准输入
2.tee test.txt - `touch`1.touch命令有两个功能:一是创建新的空文件,二是改变已有文件的时间戳属性。
2.touch file1..5.txt
3.touchfile1.txt更改创建时间stat进行验证 - `find`1.常用组合1:find . -name "*.c"
2.常用组合2:find . -type f
3.常用组合3:find . -ctime -20
4.常用组合4:find /var/log -type f -mtime +7 -ok rm\\;
- `crontab`1.分 时 日 月 周
2.crontab -e 编辑定时任务
3.crontab -l 列出定时任务
4.crontab -r 删除定时任务 - `kill`1.kill -9 id 强制杀死进程
2.kill -15 正常停止一个进程。
3.kill -1 id 重新加载进程
- `ps`1.ps -ef 显示所有程序间的关系
2.ps -aux 显示所有包含其他使用者的行程 - `time`1.后面接要执行的指令,执行完成后会显示完成时间,以及使用机器性能等信息
- `env`1.env 显示所有环境变量
2.env -u 删除某个环境变量
3.env LOGNAME=root 定义指定的环境变量 - `exit`1.退出终端
`who`1.用于显示系统中有哪些使用者正在上面,显示的资料包含了使用者 ID、使用的终端机、从哪边连上来的、上线时间
2.who -H - `uanme`1.uname -a 依次输出内核名称,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称
- `grep`1.grep -v linuxtechi /etc/passwd
`awk`1.用法一:awk print $1,$4 log.txt
2.用法二:awk -F, print $1,$2log.txt
3.用法三:awk -F [ ,]print $1,$2,$5log.txt 用空格分隔,再用逗号分隔
4.用法四: awk -va=1 print $1,$1+a log.txt设置参数a=1
5.用法五:awk print $NF file1.txt输出最后一列
6.用法六:awk NR==2print $3 file1.txt - `dirname` and `basename`1.dirname命令去除文件名中的非目录部分,删除最后一个“\\”后面的路径,显示父目录。 语法:dirname [选项] 参数
2.basename命令用于打印目录或者文件的基本名称,显示最后的目录名或文件名。语法:basename [选项] 参数 -
`diff`1. diff log2014.log log2013.log-y -W 50
- `sort` and `uniq`1.sort log | uniq -c | sort
2.-r 反向排序
3.https://www.runoob.com/linux/linux-comm-sort.html
4.https://www.runoob.com/linux/linux-comm-uniq.html - `tail`1.tail notes.log# 默认显示最后 10 行
2.-f 循环读取
3.-n 行数显示文件的尾部 n 行内容
4.tail -fn 20 notes.log - `wc`1.-l 显示行数
2.-w 显示字数
3.wc将计算指定文件的行数、字数,以及字节数。
- `xargs`1.是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。l
2.cat test.txt | xargs 全部放在一行
3.cat test.txt | xargs -n3每行三个
4.echo "nameXnameXnameXname" | xargs -dX自定义分隔符
5.cat zhangsan.txt |xargs -Iecho - `vim`1.文本编辑工具
2.q退出,w保存,!强行,:set nu显示行号
3.-f:覆盖已经存在的目标文件而不给出提示。
4.-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
5.-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
6.:数字 到某一行
7.i 光标插入进入编辑模式
8.dd 删除一行
9.J合并一行
10.ctrl+v 选中
11.yy 复制整行,yw复制某个单词,y$复制光标到最后,y^复制光标到最前,p黏贴 11.u撤销上一步 12./ 查找,n下一个,N上一个 13.:s/1/2搜索当前行第一个1并用2代替,:s/1/2/g搜索当前行所有的1并用2代替, :%s/1/2/g在整个文档中将1替换为2, :s/1/2/c每次替换都给出提示确认 - `sleep`睡眠默认以秒为单位
- `tmux`1.tmux new -s session-name 创建新会话
2.tmux detach 离开会话
3.tmux ls 查看有哪些会话
4.tmux attach -t session-name 接入会话
5.tmux kill-session -t杀死会话
6. tmux switch -t session-name 切换会话 - `curl`1.curl -o /dev/null -s -w %http_code www.linux.com返回网站返回码
2. curl -O http://www.linux.com/hello.sh
3.curl -x 192.168.100.100:1080 http://www.linux.com使用代理
5.-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
6.常用组合1:cp –r test/ newtest - `ifconfig`查看ip `ping`查看网络连通性 `telnet` telnet ip port查看网络连通性
git config --global user.name "ASxx"
git config --global user.email "123456789@qq.com"
git代码库
git clone ssh://git@47.101.174.187:10022/liwenchang/liwenchang-devops.git
推送:
git add README.md
git add --all//相反的命令restore
git commit -m "first commit"//相反的命令 git rm
git remote add origin ssh://git@47.101.174.187:10022/liwenchang/liwenchang-devops.git
git push -u origin master
拓展:
git在push东西的时候,系统会检测本地的基础代码(就是更改前的代码)和仓库中的基础代码是不是一样,如果不一样就会报错
git fetch origin/master//同步远程分支,然后在执行下面的指令进行创建,就是新的分支
git branch [branch-name]//新建一个分支,但依然停留在当前分支
git checkout -b [branch]//新建一个分支,并切换到该分支
分支操作:
查看分支:
git branch//查看当前分支
git branch -a//查看全部分支
git日志:
git log
git log -x//x是变量,换成数字就是显示前x个提交的日志
合并分支:
第一步你要把你当前分支都add进暂存区,然后暂存区commit提交到分支,清空暂存区。
git add .
git commit -m ‘dev//如果本地目录有要删减的地方,删减以后,加-a的这个参数,就会让远程和本地同步
git push -u origin dev
第二部切换要合并的分支,比如说我们切换到master分支,然后一定要pull一下最新的代码,我专门把这个步骤加粗一下:
git checkout master
git pull origin master
第三步合并代码:
git merge dev
第四步:查看git状态,没有问题直接合并
git status
这一步查看状态就是看看又没有冲突,为提交,暂存区还有东西等问题,没有问题就可以直接解决了
git push origin master
新建分支:
复制代码
Bash
- Basic Shells
- TODO:
- Useful Command ?Oneliner?
- ?
?for i in `seq 1 100`; do echo $i; done for i in `seq 1 100`; do wget http://xxx/$i.png; done for i in `seq 1 100`; do wget http://11xxx/$(printf "%04d" $i).png; done 复制代码?
? $ netstat -lantp |grep ESTABLISHED | awk print $5 |awk -F: print $1 |sort -u
复制代码
lsof -P | grep :3000
复制代码
watch -n 0.1 "ls -lh"
复制代码
tar xfz filename. tar.gz -C PathToDirectory
复制代码
tail -1000 /some/file | vim -
复制代码
scp aaa.img target_username@target_host:
scp aaa.img target_username@target_host:/tmp/bbb.img
rsync -avrz -e ssh source_dir/ target_username@target_host:/tmp/target_dir/
复制代码
diff -urN < (command1 arg1) < (command2 arg1 arg2)
vimdiff < (command1 arg1) < (command2 arg1 arg2)
复制代码
- diff two different command outputs
- ?
?netstat?
?? and ??vmstat?
?? and ??top?
?? and ??free?
? - ?
?sar?
? - ?
?tcpdump?
?? and ??wireshark?
? - TODO: blah blah blah
推荐阅读
- 使用Dynamic LINQ创建高级查询服务 #yyds干货盘点#
- FAQ接入HMS Core应用内支付服务过程中一些常见问题总结
- #yyds干货盘点#高级IO模型之kqueue和epoll
- 微信小程序环境共享,多个小程序共享一个云开发数据库
- #yyds干货盘点#Git学习-如何修改已经提交的记录
- Java8新特性Optional类在处理空值判断场景的应用 回避空指针异常 编写健壮的应用程序
- docker 批量删除 none 镜像
- #yyds干货盘点#在element-ui中使用dialog的时候只有遮罩,看不见内容的问题
- Redis发布订阅原理与实践