快速使用linux系统指令
Posted 明镜清玄子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速使用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)
Most Used Linux Commands
- `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:mkdir test/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.touch file1.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,$2 log.txt
3.用法三:awk -F [ ,] print $1,$2,$5 log.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 -I echo
- `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 查看网络连通性
File System
Processes
User Environment
Text Processing
editor
Misc
Power Tools
network
git commod
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
Linux SysAdmin Tools
-
netstat
and vmstat
and top
and free
-
sar
-
tcpdump
and wireshark
- TODO: blah blah blah
以上是关于快速使用linux系统指令的主要内容,如果未能解决你的问题,请参考以下文章
AngularJS中ng-include指令实现头部和尾部的共用