关于linux命令:常用linux命令

一、文件目录命令 1. vim/vi ----编辑文件2. find 指定目录 -name 指定文件 查找指定文件3. cp 源文件 指标文件 复制文件4. mv 源文件 指标文件 挪动文件5. mkdir -p 递归创立文件目录二、远程管理命令 1. ssh ssh 用户名@主机地址 回车 输出明码2. scp 从一台服务器拷贝文件到另一台服务器 近程拷贝操作 scp 源文件 指标文件 本机 -- 本机门路 近程主机 -- 用户名@主机地址:/绝对路径 scp 用户名@主机地址:/绝对路径 用户名@主机地址:/绝对路径3. ifconfig 查看本机的IP地址4. ping 查看指标主机网络连通性三、权限治理命令 1. chmod 批改权限 2. chown 批改文件所属用户四、零碎信息命令 1. ps -ef 查看所有过程信息2. ps -ef | grep 过滤过程 3. natstat 查看网络监听状态查看网络端口监听状态 -- 某些端口是否被占用 netstat -tnulp | grep 端口号5. kill -9 强制完结过程6. kill 杀死过程7. service 治理服务器service mysql stop 进行mysql服务器service mysql start 开始mysql服务器8. du -h 查看文件占用空间内容9. df -h 查看磁盘应用状态五、打包压缩操作 ...

April 17, 2021 · 1 min · jiezi

关于linux命令:使用cp命令复制隐藏文件

用mac,把第三方代码拷贝到本地git仓库应用。作为一个命令行使用者,当然要应用cp命令进行拷贝。 cp -r path1/* path2开始并没有发现有异样,起初发现好多暗藏文件没有一起拷过去,比方vue-cli3的环境变量文件.env等。 正确的操作姿态是: cp -r path1/. path2

December 2, 2020 · 1 min · jiezi

Linux命令-vmstat命令与top命令

vmstat命令vmstat命令是Linux中常见的监控工具,可以打印给定时间间隔内服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。它是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。vmstat的使用一般是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如:vmstat 2表示让服务器一直每隔2秒就采集一次系统信息并打印,可以使用Ctrl+C退出程序。vmstat 2 3表示让服务器每隔2秒就采集一次系统信息并打印,打印3次。vmstat命令结果参数的意义r:表示运行队列b:表示堵塞的进程swpd:虚拟内存已使用的大小,如果大于0,表示机器物理内存不足了,如果不是程序内存泄露的原因,那么应该升级内存或者把耗内存的任务迁移到其他机器。free:空闲的物理内存的大小buff:用作缓冲的内存大小cache:用作缓存的内存大小si:每秒从磁盘读入虚拟内存的大小,若值大于0,表示物理内存不过或者内存泄漏so:每秒虚拟内存写入磁盘的大小,若值大于0,同上bi:块设备每秒接收的块数量,这里的块设备是指系统上所有的磁盘和其他块设备,默认块大小是1024byte。bo:每秒发送到块设备的块数量,例如我们读取文件,bo就要大于0。bi和bo一般都要接近0,不然就是IO过于频繁,需要调整。in:每秒CPU的中断次数,包括时间中断cs:每秒上下文切换次数us:用户CPU时间。 us的值比较高时,说明用户进程消耗的CPU时间多sy:系统CPU时间,如果太高,表示系统调用时间长,例如是IO操作频繁id:空闲 CPU时间,一般来说,id + us + sy = 100,wa:表示等待使用CPU的百分比(该数值大说明CPU不足)st:表示被偷走的CPU所占百分比(该值一般为0,不用关注)关于buffer/cacheCache:高速缓存位于CPU与主内存间的一种容量较小但速度很高的存储器。由于CPU的速度远高于主内存,CPU直接从内存中存取数据要等待一定时间周期,Cache中保存着CPU刚用过或循环使用的一部分数据,当CPU再次使用该部分数据时可从Cache中直接调用,这样就减少了CPU的等待时间,提高了系统的效率。Buffer:缓冲区一个用于存储速度不同步的设备或优先级不同的设备之间传输数据的区域。通过缓冲区,可以使进程之间的相互等待变少,从而使从速度慢的设备读入数据时,速度快的设备的操作进程不发生间断。小结buffers是指用来给块设备做的缓冲大小,他只记录文件系统的metadata以及 tracking in-flight pages.cached是用来给文件做缓冲。也就是说:buffers是用来存储,目录里面有什么内容,权限等等。而cached直接用来记忆我们打开的文件,如果你想知道他是不是真的生效,你可以试一下,先后执行两次命令#man X ,你就可以明显的感觉到第二次的开打的速度快很多。如果 cache 的值很大,说明cache住的文件数很多。如果频繁访问到的文件都能被cache住,那么磁盘的读IO 必会非常小。top命令top命令可以实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器,它提供了实时地对系统的状态监视,该命令可以按CPU使用.内存使用和执行时间对任务进行排序;而且该命令的很多特性都可以通过交互式命令或者在个人定制文件中进行设定.top命令输出结果先看看top命令的输出结果:其中前5行是系统整体信息的统计信息,从第6行开始为进程信息区统计信息区域,主要显示各个进程的详细信息。第一行:top - 第一行是任务队列信息,同uptime命令的执行结果,参数含义如下:top - 15:31:37 up 3:00, 1 user, load average: 0.00, 0.01, 0.0515:31:37表示当前时间up 3:00 表示系统的运行时间1 user表示当前登录的用户数量为1load average: 0.01, 0.04, 0.05表示系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。第二、三行为进程和CPU的信息。当有多个CPU时,这些内容会超过两行。内容如下:第二行:Tasks: 126 total: 进程总数1 running: 正在运行的进程数125 sleeping: 睡眠的进程数0 stopped: 停止的进程数0 zombie: 僵尸进程数第三行:Cpu(s):0.0% us: 用户空间占用CPU百分比0.0% sy: 内核空间占用CPU百分比0.0% ni: 用户进程空间内改变过优先级的进程占用CPU百分比100% id: 空闲CPU百分比0.0% wa: 等待输入输出的CPU时间百分比0.0% hi: 硬件CPU中断占用百分比0.0% si: 软中断占用百分比0.0% st: 虚拟机占用百分比第四行为内存信息total:物理内存总量used:使用的物理内存总量free:空闲内存总量buffers:用作内核缓存的内存量cached:用作缓存的内存大小第五行为swap交换分区信息total:交换区总量used:已使用的总量free:空闲中总量avail Mem:可用总量第六行及以下显示了各进程(任务)的状态监控各列所代表的含义如下:PID 进程idUSER 进程所有者PR 进程优先级NI nice值。负值表示高优先级,正值表示低优先级VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RESRES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATASHR 共享内存大小,单位kbS 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程%CPU 上次更新到现在的CPU时间占用百分比%MEM 进程使用的物理内存百分比TIME+ 进程使用的CPU时间总计,单位1/100秒COMMAND 进程名称(命令名/命令行)top的常见使用常用选项:-d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之-p:通过指定监控进程ID来仅仅监控某个进程的状态。 -c:显示整个命令行而不只是显示命令名 -i:使top不显示任何闲置或者僵死进程。常用交互命令:ctrl+m:根据驻留内存大小进行排序ctrl+p:根据CPU使用百分比大小进行排序。ctrl+w:将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。i:忽略闲置和僵死进程。这是一个开关式命令。h: 显示帮助画面,给出一些简短的命令总结说明。k:终止一个进程。系统将提示用户输入需要终止的进程PID,以及需要发送给该进程什么样的信号。一般的终止进程可以使用15信号;如果不能正常结束那就使用信号9强制结束该进程。默认值是信号15。在安全模式中此命令被屏蔽。q: 退出程序。常用操作:top :每隔5秒显式所有进程的资源占用情况top -d 2 :每隔2秒显式所有进程的资源占用情况top -c:每隔5秒显式进程的资源占用情况,并显示进程的命令行参数(默认只有进程名)top -p 12345 -p 6789:每隔5秒显示pid是12345和pid是6789的两个进程的资源占用情况top -d 2 -c -p 123456 :每隔2秒显示pid是12345的进程的资源使用情况,并显式该进程启动的命令行参数 ...

April 11, 2019 · 1 min · jiezi

cut命令、sort命令、uniq命令使用

cut命令含义正如cut的中文意思,cut的工作就是“剪”,具体来说是在文件负责剪切数据用的,它以每一行为一个处理对象,与sed的机制是一样的。剪切依据cut命令主要是接受三个定位方法:第一,字节(bytes),用选项-b第二,字符(characters),用选项-c第三,域(fields),用选项-f语法格式cut [-bn] [file] 或 cut [-c] [file] 或 cut [-df] [file]使用说明cut命令从文件的每一行剪切字节、字符和字段并将这些字节、字符和字段写至标准输出。如果不指定 File 参数,cut 命令将读取标准输入。必须指定 -b、-c 或 -f 标志之一。主要参数-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。-c :以字符为单位进行分割。-d :自定义分隔符,默认为制表符。-f :与-d一起使用,指定显示哪个区域。-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的范围之内,该字符将被写出;否则,该字符将被排除。常用示例:“字节”定位中,提取第1到第5和第10个字节,-b支持形如1-5的写法,而且多个定位之间用逗号隔开注意,cut命令如果使用了-b选项,那么执行此命令时,cut会先把-b后面所有的定位进行从小到大排序,然后再提取。示例1:提取第1到第5字节和第10个字节的内容[root@moli_linux1 ~]$ echo “abcde12345” | cut -b 1-5,10abcde5示例2:-3表示从第1个字节到第3个字节,3-表示从第3个字节到行尾[root@moli_linux1 ~]$ echo “abcde54321” | cut -b -3abc[root@moli_linux1 ~]$ echo “abcde54321” | cut -b 3-cde54321示例3:多字节字符处理1个空格算1个字节,而1个汉字算3个字节,因此汉字是多字节字符.遇到多字节字符可以使用-c选项,也可以使用-b选项,不过要结合-n选项,-n选项告诉cut命令不要将多字节字符拆开。[root@moli_linux1 ~]$ cat cut_test2.txt 星期一aa星期二bb星期三cc[root@moli_linux1 ~]$ cut -b 3 cut_test2.txt # 因为没加-n选项,因此将"星"字给拆分了.. [root@moli_linux1 ~]$ cut -nb 3 cut_test2.txt # 切割第3个字符一二三[root@moli_linux1 ~]$ cut -c 3 cut_test2.txt 一二三[root@moli_linux1 ~]$ cut -c 4,5 cut_test2.txt aabbcc[root@moli_linux1 ~]$ cut -nb 4,5 cut_test2.txt aabbcc 示例4:对于非固定格式的文档,使用-f选项来定义域来切割文件[root@moli_linux1 ~]$ head -n 5 /etc/passwd > cut_test.txt[root@moli_linux1 ~]$ cat cut_test.txt root❌0:0:root:/root:/bin/bashbin❌1:1:bin:/bin:/sbin/nologindaemon❌2:2:daemon:/sbin:/sbin/nologinadm❌3:4:adm:/var/adm:/sbin/nologinlp❌4:7:lp:/var/spool/lpd:/sbin/nologin[root@moli_linux1 ~]$ cut -d “:” -f 1-3,5 cut_test.txt root❌0:rootbin❌1:bindaemon❌2:daemonadm❌3:admlp❌4:lp上面的cut -d “:” -f 1-3,5 cut_test.txt 中,-d选项指定:为分割符,每个分隔符作为一个域,-f后面的数字指定切割哪个域,这里1-3,5表示截取第1,2,3和第5个域。sort命令说明sort命令将文件进行排序,并将排序结果标准输出。sort命令既可以从特定的文件,也可以从stdin中获取输入。工作原理sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。语法sort(选项)(参数)常用选项-u:unique 唯一,排序并且排除重复项-n: number 按照数字进行排序,默认数字会被当作字符串进行比较,字符或者其他特殊符号会被当做0排在数字前面-r:反向排序-b:忽略每行前面开始出的空格字符示例1:-u选项[root@moli_linux1 ~]$ cat sort_test.txt helloworld>>>hello12345shell??? have a space[root@moli_linux1 ~]$ sort -u sort_test.txt # 去除重复hello并排序>>>???12345 have a spacehelloshellworld示例2:-n选项。按照数字进行排序,默认数字会被当作字符串进行比较,字符或者其他特殊符号会被当做0排在数字前面[root@moli_linux1 ~]$ cat sort_test2.txt 987124123234???hello123[root@moli_linux1 ~]$ sort -n sort_test2.txt ???hello123123124234987示例3:反向排序-r[root@moli_linux1 ~]$ cat sort_test2.txt 987124123234???hello123[root@moli_linux1 ~]$ sort -rn sort_test2.txt 987234124123123hello???uniq命令说明uniq命令用于报告或忽略文件中的重复行,一般与sort命令结合使用。对于uniq来说,去除重复的内容,内容之间必须相邻,不然无法去除。因此多先用sort排序,再用uniq去重。语法uniq(选项)(参数)常用选项-c:在每列旁边显示该行重复出现的次数-d: 仅显示重复出现的行列;示例1[root@moli_linux1 ~]$ cat uniq.txt helloworldhellopython1123[root@moli_linux1 ~]$ uniq uniq.txt # 只会去除相邻的重复内容数字1,不相邻的重复内容hello不会被删除helloworldhellopython123示例2,结合sort删除所有重复内容[root@moli_linux1 ~]$ sort uniq.txt |uniq123hellopythonworld示例3:统计各行在文件中出现的次数[root@moli_linux1 ~]$ sort uniq.txt |uniq -c 2 1 1 2 1 3 2 hello 1 python 1 world示例4:找出文件中重复的行[root@moli_linux1 ~]$ sort uniq.txt |uniq -d1hello总结:这三个命令经常在shell脚本中使用,除了grep,sed,awk三个之外,也需要熟练掌握。 ...

April 8, 2019 · 1 min · jiezi

Linux命令-文件管理篇-cat

1.cat 说明cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名。2.使用权限所有使用者3.cat 语法- 语法格式cat [-AbeEnstTuv] [–help] [–version] fileName- 参数说明-n 或 –number:由 1 开始对所有输出的行数编号。-b 或 –number-nonblank:和 -n 相似,只不过对于空白行不编号。-s 或 –squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。-v 或 –show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。-E 或 –show-ends : 在每行结束处显示 $。-T 或 –show-tabs: 将 TAB 字符显示为 ^I。-A, –show-all:等价于 -vET。-e:等价于"-vE"选项;-t:等价于"-vT"选项;4.cat 实例查看/etc/bashrc的内容[root@elk1 ~]# cat /etc/bashrc 查看/etc/目录下的bashrc内容,并且对非空白行进行编号,行号从1开始[root@elk1 ~]# cat -b /etc/bashrc … 70 SHELL=/bin/bash 71 # Only display echos from profile.d scripts if we are no login shell 72 # and interactive - otherwise just process them to set envvars 73 for i in /etc/profile.d/.sh; do 74 if [ -r “$i” ]; then 75 if [ “$PS1” ]; then 76 . “$i” 77 else 78 . “$i” >/dev/null 79 fi 80 fi 81 done 82 unset i 83 unset -f pathmunge 84 fi 85 # vim:ts=4:sw=4对/etc目录中的profile的所有的行(包括空白行)进行编号输出显示[root@elk1 ~]# cat -n /etc/bashrc… 65 66 # By default, we want umask to get set. This sets it for non-login shell. 67 # Current threshold for system reserved uid/gids is 200 68 # You could check uidgid reservation validity in 69 # /usr/share/doc/setup-/uidgid file 70 if [ $UID -gt 199 ] && [ “/usr/bin/id -gn” = “/usr/bin/id -un” ]; then 71 umask 002 72 else 73 umask 022 74 fi 75 76 SHELL=/bin/bash 77 # Only display echos from profile.d scripts if we are no login shell 78 # and interactive - otherwise just process them to set envvars 79 for i in /etc/profile.d/.sh; do 80 if [ -r “$i” ]; then 81 if [ “$PS1” ]; then 82 . “$i” 83 else 84 . “$i” >/dev/null 85 fi 86 fi 87 done 88 89 unset i 90 unset -f pathmunge 91 fi 92 # vim:ts=4:sw=4查看/etc/下的bashrc内容,并且在每行的结尾处附加$符号[root@elk1 ~]# cat -E /etc/bashrc… esac$ }$$ # By default, we want umask to get set. This sets it for non-login shell.$ # Current threshold for system reserved uid/gids is 200$ # You could check uidgid reservation validity in$ # /usr/share/doc/setup-/uidgid file$ if [ $UID -gt 199 ] && [ “/usr/bin/id -gn” = “/usr/bin/id -un” ]; then$ umask 002$ else$ umask 022$ fi$$ SHELL=/bin/bash$ # Only display echos from profile.d scripts if we are no login shell$ # and interactive - otherwise just process them to set envvars$ for i in /etc/profile.d/*.sh; do$ if [ -r “$i” ]; then$ if [ “$PS1” ]; then$ . “$i”$ else$ . “$i” >/dev/null$ fi$ fi$ done$$ unset i$ unset -f pathmunge$fi$# vim:ts=4:sw=4$cat 加参数-n 和nl工具差不多,文件内容输出的同时,都会在每行前面加上行号[root@elk1 ~]# cat -n /etc/bashrc[root@elk1 ~]# nl /etc/bashrccat 可以同时显示多个文件的内容,比如我们可以在一个cat命令上同时显示两个文件的内容;[root@elk1 ~]# cat /etc/fstab /etc/bashrccat 对于内容极大的文件来说,可以通过管道|传送到more 工具,然后一页一页的查看;[root@elk1 ~]# cat /etc/fstab /etc/bashrc | more5.cat 创建、连接文件功能实例cat 有创建文件的功能,创建文件后,要以EOF或STOP结束;[root@localhost ~]# cat > ng-sec.txt << EOF [root@elk1 ~]# cat >ng-sec.txt <<EOF> hello> this is cat test> EOF#说明:创建ng-sec.txt文件[root@elk1 ~]# cat ng-sec.txt hellothis is cat test为刚刚创建的ng-sec.txt追加内容[root@elk1 ~]# cat >>ng-sec.txt <<EOF> This is new contents for test2> EOF[root@elk1 ~]# cat ng-sec.txthellothis is cat testThis is new contents for test2# 说明:>>可以追加信息到文档,可以看到已经追加了一行信息通过cat 连接多个文件的内容并且输出到一个新文件中假设我们有ng-sec01.txt、ng-sec02.txt,需要将他们文件内容合并后输出到ng-sec03.txt注意:其原理是把两个文件的内容连接起来,然后创建ng-sec.txt文件,并且把几个文件的内容同时写入ng-sec03.txt中。特别注意的是,如果您输入到一个已经存在的ng-sec03.txt文件,会把该文件内容清空。[root@localhost ~]# cat sir01.txt sir02.txt sir03.txt > sir04.txt[root@elk1 ~]# cat ng-sec01.txt ng-sec02.txt > ng-sec03.txt[root@elk1 ~]# cat ng-sec03.txt i am ng-sec01.txti am ng-sec02.txt ...

January 5, 2019 · 3 min · jiezi

Linux常用命令

因为不是纯Linux的开发工作,所以工作中的Linux操作命令一段时间不用就会忘记,特别是各种参数,每次都要查各种手册,这里专门做一个整理。系统信息uname含义:显示电脑以及操作系统的相关信息。语法:uname [-amnrsv][–help][–version]参考资料:runoob uname命令参数说明:-a或–all 显示全部的信息。-m或–machine 显示电脑类型。-n或-nodename 显示在网络上的主机名称。-r或–release 显示操作系统的发行编号。-s或–sysname 显示操作系统名称。-v 显示操作系统的版本。–help 显示帮助。–version 显示版本信息文件系统mkdir含义:建立子目录。语法:mkdir [-p] dirName参考资料:runoob uname命令参数说明:-p 确保目录名称存在,不存在的就建一个。

January 4, 2019 · 1 min · jiezi