Linux快捷操作

目录跳转:

1、cd ~ 是跳转到当前用户的家目录
 如果是root用户,cd ~ 相当于 cd /root
 如果是普通用户,cd ~ 相当于cd /home/当前用户名
2、cd /home 可以在任意目录使用绝对路径
   cd home只能在你在/目录的时候使用, 没有指明直接路径,但隐藏的路径是当前目录。绝对路径:是以根目录(” / “)为起点的完整路径,以你所要到的目录为终点。相对路径:是你当前的目录为起点的路径,以你所要到的目录为终点,有三种写法:cd d 、 cd ./d 、 cd d/     DOS:切换到D盘命令: cd /d d:\

3、cd - :-表示返回到前一个工作目录。


curl命令

  curl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。用来与服务器之间传输数据的工具。直接在 curl 命令后加上网址,就可以看到网页源码。-i 参数可以显示 http response 的头信息,连同网页代码一起。-I 参数则只显示 http response 的头信息。

  Curl -X POST/PUT/DELETE 使用 POST/PUT/DELETE方法

-H: --header LINE Custom header to pass to server (H);使用 -H 自定义 header。当我们需要传递特定的 header 的时候,可以仿照以下命令来写: curl -H “请求头的字段键: 字段值” 。例 -H “User-Agent: Custom-User-Agent” 可以看到,当我们使用 -H 来自定义 User-Agent 时,需要使用 “User-Agent: xxx” 的格式。
-X: --request COMMAND Specify request command to use
–resolve HOST:PORT:ADDRESS Force resolve of HOST:PORT to ADDRESS
–retry NUM Retry request NUM times if transient problems occur
–retry-delay SECONDS When retrying, wait this many seconds between each
–retry-max-time SECONDS Retry only within this period
–sasl-ir Enable initial response in SASL authentication

-d: --data DATA HTTP POST data (H)
–data-ascii DATA HTTP POST ASCII data (H)
–data-binary DATA HTTP POST binary data (H)
–data-urlencode DATA HTTP POST data url encoded (H)
–delegation STRING GSS-API delegation permission
–digest Use HTTP Digest Authentication (H)
–disable-eprt Inhibit using EPRT or LPRT (F)
–disable-epsv Inhibit using EPSV (F)
–dns-servers DNS server addrs to use: 1.1.1.1;2.2.2.2
–dns-interface Interface to use for DNS requests
–dns-ipv4-addr IPv4 address to use for DNS requests, dot notation
–dns-ipv6-addr IPv6 address to use for DNS requests, dot notation
使用 -d 发送 POST 请求指定发送的数据,-X 用于指定发送数据的方式


ulimit

  使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数。新装的linux默认只有1024,当作负载较大的服务器时,很容易遇到error: too many open files。因此,需要将其改大。使用 ulimit -n 65535 可即时修改,但重启后就无效了。(注ulimit -SHn 65535 等效 ulimit -n 65535,-S指soft,-H指hard)有如下修改方式:在/etc/profile 中增加一行 ulimit -SHn 65535
  -S :设定资源的弹性限制 。-H :设定资源的硬性限制,也就是管理员所设下的限制 。 -n <文件数目> :指定同一时间最多可开启的文件数。
ulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户的最大线程数、Shell 进程所能使用的最大虚拟内存。同时,它支持硬性资源和软性资源的限制。


init

#init 0 - 停机(千万不能把initdefault 设置为0 )
#init 1 - 单用户模式
#init 2 - 多用户,没有 NFS 不联网
#init 3 - 完全多用户模式(标准的运行级)
#init 4 - 没有用到
#init 5 - X11 (xwindow) 图形化界面模式
#init 6 - 重新启动 (千万不要把initdefault 设置为6 )


vim

使用大写的O参数来垂直分屏。vim -On file1 file2 …
使用小写的o参数来水平分屏。vim -on file1 file2 …
上下分割,并打开一个新的文件。:sp filename
左右分割,并打开一个新的文件。:vsp filename
Vi中的光标键是h, j, k, l,要在各个屏间切换,只需要先按一下Ctrl+W把光标移到右边的屏。Ctrl+w l。或者把光标移到下一个的屏中。.
Ctrl+w w 注:也可以按住cntl键,同时按下两次w键
:set mouse=a 鼠标可以在多屏幕之间切换


source

source命令也称为“点命令”,也就是一个点符号(.),是bash的内部命令。
功能:使Shell读入指定的Shell程序文件并依次执行文件中的所有语句
source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。用法:source filename 或 . filename
source命令(从 C Shell 而来)是bash shell的内置命令;点命令(.),就是个点符号(从Bourne Shell而来)是source的另一名称。


tail

tail -f : 实时查看日志文件 tail -f 日志文件log
tail - 100f : 实时查看日志文件 后一百行
tail -f -n 100 catalina.out linux: 查看日志后100行
tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。
tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容

复制粘贴

Linux在终端和控制台下复制粘贴命令快捷键
1、在终端下:
(1)复制命令:Ctrl + Shift + C 组合键.
(2)粘贴命令:Ctrl + Shift + V 组合键. 或者鼠标右键即可
2、在控制台下:(即vi编辑过程中)
(1)复制命令:Ctrl + Insert 组合键或用鼠标选中即是复制。
(2)粘贴命令:Shift + Insert 组合键或单击鼠标右键即为粘贴


nohup

   nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。只需在要处理的命令前加上 nohup 即可,标准输出和标准错误缺省会被重定向到 nohup.out 文件中。
   一般我们可在结尾加上"&“来将命令同时放入后台运行,也可用”>filename 2>&1"来更改缺省的重定向文件名。在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件。该命令的一般形式为:nohup command &,注意nohup后一般直接跟可执行的文件或命令,不能直接跟配置选项。如:STORAGE_TYPE=elasticsearch ES_HOSTS=localhost:9200。
nohup java -jar zipkin.jar &
nohup ping www.ibm.com &
nohup /root/start.sh &
   0表示标准输入 1表示标准输出 2表示标准错误输出,> 默认为标准输出重定向,与 1> 相同
   2>&1 意思是把 标准错误输出 重定向到 标准输出.
   &>file 意思是把 标准输出 和 标准错误输出 都重定向到文件file中。
   & :指在后台运行, 而nohup是不挂断的运行,注意并没有后台运行的功能就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行。&是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出
               nohup command > myout.file 2>&1 &
标准输出和标准错误缺省会被重定向到 nohup.out 文件中。
   注意nohup后一般直接跟可执行的文件或命令,不能直接跟配置选项。如:STORAGE_TYPE=elasticsearch ES_HOSTS=localhost:9200
nohup java -jar zipkin.jar &
nohup ping www.ibm.com &
nohup /root/start.sh &


环境变量

linux系统区分大小写,查看系统环境变量的方法。

  • 使用echo命令查看单个环境变量。例如: echo $PATH
  • 使用env查看所有环境变量。例如env , env | grep 变量名:查找特定环境变量。
  • 使用set查看所有本地定义的环境变量
  • Linux export 命令用于设置或显示环境变量,只对当前shell(BASH)有效(临时的)。直接输入export会将显示bash下的所有环境变量. shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义
    修改环境变量:export PATH=$PATH:/home/roc/operation_tools这里是将/home/roc/operation_tools环境变量加入了进去。$PATH:$HOME/bin表示在保留原来的$PATH环境变量的基础上,再增加$HOME/bin这个路径作为新的$PATH环境变量。export MYENV=7//定义环境变量并赋值
  • 永久添加环境变量(影响当前用户)
    #vim ~/.bashrc
    export PATH="/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH"
  • 永久添加环境变量(影响所有用户) 在/etc/profile文件中添加变量【对所有用户生效(永久的)】 vim /etc/profile在文档最后,添加:
    export PATH="/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH"
    保存,退出,然后运行:#source /etc/profile
  • 常见环境变量
    PATH :决定了shell将到哪些目录中寻找命令或程序
    HOME :当前用户主目录
    HISTSIZE:历史记录数
    LOGNAME :当前用户的登录名
    HOSTNAME:指主机的名称
    SHELL :当前用户Shell类型
    LANGUGE :语言相关的环境变量,多语言可以修改此环境变量
    MAIL:当前用户的邮件存放目录

命令行光标快速移动

linux 命令行:Ctrl+a 移动到当前行的开头 Ctrl+e 移动到当前行的结尾


磁盘内存查看

free -h :查看总体系统内存占用
df -h :查看总体硬盘空间占用情况
top|grep pid 或top -p pid (实时) : 查看系统某一进程的实时内存占用
cat /proc/pid/status: 查看进程的status文件 VmRSS对应的值就是物理内存占用
ps -aux | grep pid: 也可以查看CPU和内存占用率。


CPU信息查看

1. lscpu命令查看cpu的信息

		[root@darren ~]# lscpu
		Architecture:          x86_64
		CPU op-mode(s):        32-bit, 64-bit
		Byte Order:            Little Endian
		CPU(s):                8
		On-line CPU(s) list:   0-7
		Thread(s) per core:    1
		Core(s) per socket:    8
		Socket(s):             1
		NUMA node(s):          1
		Vendor ID:             GenuineIntel
		CPU family:            6
		Model:                 94
		Model name:            Intel(R) Xeon(R) Gold 6133 CPU @ 2.50GHz
		Stepping:              3
		CPU MHz:               2494.140
		BogoMIPS:              4988.28
		Hypervisor vendor:     KVM
		Virtualization type:   full
		L1d cache:             32K
		L1i cache:             32K
		L2 cache:              4096K
		L3 cache:              28160K
		NUMA node0 CPU(s):     0-7

2. /proc/cpuinfo文件
①物理cpu个数:主板上实际插入的cpu数量,可以数不重复的 physical id 有几个(physical id)
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l: uniq删除重复的行

②查看每个物理CPU中core的个数(即cpu核数):单块CPU上面能处理数据的芯片组的数量,如双核、四核等 (cpu cores)
cat /proc/cpuinfo| grep "cpu cores"| uniq

③逻辑cpu数:简单来说,它可使处理器中的1颗内核,如2颗内核那样在操作系统中发挥作用。

cat /proc/cpuinfo| grep "processor"| wc -l

④查看cpu信息(型号)

cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c


历史命令快速查找 ctrl + R

在终端中按捉 [Ctrl] 键的同时 [r] 键,出现提示:(reverse-i-search), 此时你尝试一下输入你以前输入过的命令,当你每输入一个字符的时候,终端都会滚动显示你的历史命令。当显示到你想找的合适的历史命令的时候,直接 [Enter],就执行了历史命令。上下左右进行匹配选择,ctrl+c 退出查找。


Linux 系统信息显示

  • Linux uname命令用于显示系统信息,uname可显示电脑以及操作系统的相关信息。
    语法:uname [-amnrsv]
    常用参数:
    -a 或者 –all 显示全部信息 ; -m 或者 –machine 显示处理器类型 例如x86_64
    -n 或者 –nodename 主机名 ; -r 或者 –release linux内核发行编号
    -s 或者 –sysname 操作系统名称 ; -v 显示操作系统版本号
    uname -a: 显示全部信息
    显示处理器类型 uname -m: # 输出x86_64
    显示操作系统以及内核发行号 uname -sr :# 例如输出Linux 4.4.0-21-generic等

命令 << EOF 内容段 EOF

  • 在shell脚本中,通常将 EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的多行文本输入,直到遇到EOF为止,再返回到主Shell。执行脚本的时候,需要往一个文件里自动输入N行内容。如果是少数的几行内容,还可以用echo追加方式,但如果是很多行可以用<< EOF。EOF只是一个分界符,当然也可以用其它字符替换。当shell遇到<<时,它知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。此分界符可以是所定义的任何字符串,其实,不一定要用EOF,只要是“内容段”中没有出现的字符串,都可以用来替代EOF,完全可以换成abcde之类的其它字符串,只是一个起始和结束的标志罢了。使用格式基本是这样的:命令 << EOF 内容段 EOF 将“内容段”整个作为命令的输入

  • < 输入重定向
    > 输出重定向(覆盖)
    >>输出重定向(追加,不会覆盖之前内容)
    <<标准输入来自命令行的一对分隔号的中间内容。

  • 例子: 1. cat <<EOF,以EOF输入字符为标准输入结束:
            2、cat >filename,创建文件,并把标准输入输出到filename文件中,以ctrl+d作为输入结束,注意:输入时是没有’>'的。
            3、cat >filename << EOF,以EOF作为输入结束,和ctrl+d的作用一样。

// 覆盖test.sh
#cat << EOF > test.sh
> #!/bin/bash             
> #you Shell script writes here.
> EOF
//追加test.sh
#cat << EOF >>test.sh 
> 7777
> 8888
> EOF

命令建立TCP/UDP连接(测试端口开放与否)

Linux中的一个特殊文件: /dev/tcp, 打开这个文件就类似于发出了一个socket调用,建立一个socket连接,读写这个文件就相当于在这个socket连接中传输数据。可以使用bash shell 中的linux命令打开TCP / UDP套接字。

$ exec ${file-descriptor} </dev/${protocol}/${host}/${port} 套接字(文件描述符)绑定ip+port

  • “文件描述符”是与每个套接字相关联的唯一的非负整数。文件描述符0,1和2分别保留给stdin,stdout和stderr。因此,你必须指定3或更高(以未使用者为准)作为文件描述符。“<>”意味着套接字对于读写都是打开的,根据你的需要,你可以打开只读(<)或只写(>)的套接字。“协议”字段可以是tcp或udp,“主机”和“端口”字段是不言自明的。
  • 例如,echo >/dev/tcp/8.8.8.8/53
    这条命令的意思是向8.8.8.8的53端口建立一个tcp连接,会把连接返回的东西丢弃。
    要打开www.example.com的双向TCP套接字,使用HTTP端口和文件描述符3:
    $ exec 3 <> / dev/tcp /www.example.com/80
    打开后,可以使用以下语法关闭读/写套接字,第一个命令关闭输入连接,后者关闭输出连接:
    $ exec ${file-descriptor} <& -
    $ exec ${file-descriptor}>& -
  • 代码测试tcp连接成功与否(端口是否开放)
           string cmd = "exec 9>/dev/tcp/localhost/"+(*iter);
           int ret= system(cmd.c_str());
           if(ret!=0)
               exit(-1);
  • 在Bash Shell中读取或写入TCP / UDP套接字
    打开套接字后,你可以向套接字写入消息或从套接字读取消息。
    要将存储在$MESSSAGE中的消息写入套接字
    $ echo -ne $MESSAGE >&3
    $ printf $MESSAGE >&3
    要从套接字读取消息并将其存储在$MESSAGE中:
    $ read -r -u -n $MESSAGE <&3
    $ MESSAGE=$(dd bs=$NUM_BYTES count=$COUNT <&3 2> / dev / null

mpstat

  • mpstat: mpstat是MultiProcessor Statistics的缩写,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。mpstat也是sysstat安装包里面的一个命令。-P:指定CPU编号。
    使用方法:mpstat [ -A ] [ -I { SUM | CPU | ALL } ] [ -u ] [ -P { cpu [,...] | ON | ALL } ] [ -V ] [ interval [ count ] ]
    mpstat -P ALL 2

ln

创建软链接(源和目标都用绝对路径)
ln -s [源文件或目录] [目标文件或目录]
例:当前路径创建test 引向/var/www/test 文件夹 :ln –s /var/www/test test


df与du

linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

df -h :,查看整个磁盘分区的占用情况。df 命令使用的事statfs这个系统调用,直接读取分区的超级块信息获取分区使用情况。它的数据是基于分区元数据的,所以只能针对整个分区。由于df直接读取超级块,所以运行速度不受文件多少影响。

du:disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。它计算的大小就是当前它认为存在的所有文件大小的累加和。du 命令会对待统计文件逐个调用fstat这个系统调用,获取文件大小。它的数据是基于文件获取的,所以有很大的灵活性,不一定非要针对一个分区,可以跨越多个分区操作。如果针对的目录中文件很多,du速度就会很慢了。常见用法,查看并显示当前文件夹一级目录的存储比重:du -h --max-depth=1du -h:显示当前目录下面的所有嵌套目录的文件和目录的大小和当前目录的总的大小。

df与du区别: df通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件, df记录的是通过文件系统获取到的文件的大小,它比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。当文件系统也确定删除了该文件后,这时候du与df就一致了。


ssh

1. 连接到远程主机:

命令格式 : ssh root@9.134.1.2 (默认是22端口,如需要指定ssh端口需要-p选项)
ssh name@remoteserver #或者
ssh remoteserver -l name
说明:以上两种方式都可以远程登录到远程主机,server代表远程主机,name为登录远程主机的用户名。

2. 连接到远程主机指定的端口:

命令格式:
ssh name@remoteserver -p 2222 #或者
ssh remoteserver -l name -p 2222
说明:p 参数指定端口号,通常在路由里做端口映射时,我们不会把22端口直接映射出去,而是转换成其他端口号,这时就需要使用-p端口号命令格式。


linux网络分析工具

netstat: netstat -[atunlp]
-a :all,表示列出所有的连接,服务监听,Socket资料
-t :tcp,列出tcp协议的服务
-u :udp,列出udp协议的服务
-n :port number, 用端口号来显示
-l :listening,列出当前监听服务(显示作为服务端的连接,不加显示的是作为客户端的连接)
-p :program,列出服务程序的PID

telnet:
ping: 测试网络连通性,只需要ip 不需要端口
traceroute:
tcpdump:
lsof:
nslookup
ssh
curl
/dev/tcp

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值