Linux只是一个操作系统内核而已,而GNU提供了大量的自由软件来丰富在其之上的各种应用程序。我们常说的linux实际是GNU/Linux,GNU是一个自由的操作系统。
绝大多数基于Linux内核的操作系统使用了大量的GNU软件,包括了一个shell程序、工具、程序库、编译器及工具,还有许多其他程序,例如Emacs。

一、参考学习

https://www.runoob.com/linux/linux-command-manual.html

https://man.linuxde.net/

二、常用变量

1、特殊位置参数变量

  1. $*
  2. 取当前shell的所有参数,将所有的命令行视为单个字符串,相当于'$1$2'
  3. $@
  4. 取当前shell的所有参数,保留参数里的空白。

三、常用命令

1、查看 Kernel、GCC 以及 RedHat 版本信息

  1. cat /proc/version
  2. Linux version -.el7.x86_64 (builder (Red Hat -) (GCC) ) #1 SMP Tue Aug 22 21:09:27 UTC 2017
  3.  
  4. uname -a
  5. Linux localhost.localdomain.com -.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
  6.  
  7. uname -r
  8. -.el7.x86_64
  9.  
  10. more /etc/system-release
  11. CentOS Linux release (Core)
  12.  
  13. more /etc/redhat-release
  14. CentOS Linux release (Core)
  15.  
  16. more /etc/centos-release
  17. CentOS Linux release (Core)

2、查看操作系统的位数

  1. getconf LONG_BIT
  2.  
  3. getconf WORD_BIT
  4.  
  5. file /bin/ls
  6. /bin/ls: ELF -bit LSB executable, x86-, version (SYSV), dynamically linked (uses shared libs), , BuildID[sha1]=3d705971a4c4544545cb78fd890d27bf792af6d4, stripped

3、查看 CPU 个数、核心数和线程数

  1. # 查看 CPU 的物理个数
  2. grep 'physical id' /proc/cpuinfo | sort -| wc -l
  3.  
  4. # 查看 CPU 的核心数量
  5. grep 'core id' /proc/cpuinfo | sort -u | wc -l
  6.  
  7. # 查看 CPU 的线程数量
  8. grep 'processor' /proc/cpuinfo | sort -u | wc -l
  9.  
  10. # 查看 CPU 的型号
  11. dmidecode -s processor-version
  12. Intel(R) Core(TM) i3- CPU @ .70GHz
  13.  
  14. # 查看 内存 方法
  15. grep MemTotal /proc/meminfo
  16. MemTotal: kB

4、知道22端口被哪个进程占用

  1. lsof -i :
  2. netstat -lnp|

5、显示http response头信息

  1. curl -I http:///webhook/comment

6、把文件内容输出到本地,并保留文件名,可以理解为直接把文件下载到本地。

  1. curl -O http:///object/test02

7、操作文件夹

  1. mkdir folderName
  2. 创建文件夹
  3.  
  4. rm -r folderName
  5. 删除文件夹
  6.  
  7. rm -rf folderName
  8. 强制删除文件夹
  9.  
  10. mv sfolderName dfolderName
  11. 重命名文件夹

8、操作文件

  1. touch filename 比如touch index.js
  2. 创建一个空的js文件。
  3.  
  4. find path -name filename 比如find components -name "*.js"
  5. 查找指定类型的文件。
  6.  
  7. ls
  8. 查看有哪些文件
  9.  
  10. ll
  11. 查看文件的详细信息
  12. head -n filename查看一个文件的前n行,如果不指定n,则默认显示前n行。
  13. tail -f storage/logs/xf-web---.log
  14. 查看文档内容,默认显示最后10行,比如查看服务器文件日志
  15.  
  16. vim /root/.pm2/logs/monitorApp-out.log
  17. 文本查看和编辑
  18.  
  19. cat /root/.pm2/logs/monitorApp-out.log
  20. 文本查看
  21.  
  22. cp oldfile newfile
  23. 复制文件
  24.  
  25. cp -r old/ new/
  26. 不是把old目录里面的文件拷贝到new目录,而是把old直接拷贝到new下面。
  27.  
  28. cp -r ../teamb/xf-web .
  29. 不是把old目录里面的文件拷贝到new目录,而是把old直接拷贝到new下面。
  30.  
  31. :q
  32. git log之后要退出(不保存),并回到命令行。
  33.  
  34. :q! 
  35. 强制退出,放弃修改。
  36.  
  37. :wq
  38. 保存文件后退出。
  39.  
  40. :wq!
  41. 强制保存退出。

9、vim模式

  1. i
  2. 进入编辑模式
  3.  
  4. /
  5. 查找关键字
  6.  
  7. :
  8. 跳到某行
  9.  
  10. esc
  11. 退出编辑模式
  12.  
  13. pwd
  14. 查看当前路径
  15.  
  16. >
  17. 表示覆盖原文件内容(文件的日期也会自动更新)
  18.  
  19. >>
  20. 表示追加内容(会另起一行,文件的日期也会自动更新)
  21.  
  22. cat /etc/hosts > hosts.log
  23. 执行命令cat /etc/hosts,将其返回结果保存到hosts.log中。
  24.  
  25. &
  26. 表示任务在后台执行,如要在后台运行redis-server,则有 redis-server &
  27.  
  28. &&
  29. 表示前一条命令执行成功时,才执行后一条命令,如echo '1‘ && echo '2'
  30.  
  31. |
  32. 表示管道,上一条命令的输出,作为下一条命令参数,如 echo 'yes' | wc -l
  33.  
  34. ||
  35. 表示上一条命令执行失败后,才执行下一条命令,如 cat nofile || echo "fail"
  36.  
  37. .
  38. 指当前目录
  39.  
  40. ./
  41. 可以用来执行当前目录下的可执行文件

10、其他操作

  1. telnet
  2. telnet连接
  3.  
  4. flush_all
  5. 清空所有键值,flush并不会将items删除,只是将所有的items标记为expired,因此这时memcache依旧占用所有内存。

11、make命令

https://www.cnblogs.com/camille666/p/make_command_project.html

12、export命令

https://www.runoob.com/linux/linux-comm-export.html

  1. # 列出环境变量
  2. export -p
  3.  
  4. # 定义环境变量,列出分支,查找当前分支,匹配至少有一个.的
  5. export branch=`git branch | grep \* | grep -Eo ' .+'`
  6. # 使用环境变量
  7. $$branch

13、xargs命令

https://www.runoob.com/linux/linux-comm-xargs.html

14、grep命令

查找字符串。

  1. git log develop.. --pretty=format:%B | grep -vE '^\s*$$' | cat

https://www.runoob.com/linux/linux-comm-grep.html

15、echo命令

  1. echo -e "\033[字背景颜色;字体颜色m字符串\033[0m"
  1. echo -e "\e[1;31mThis is red text\e[0m"

\e[1;31m 将颜色设置为红色
  \e[0m 将颜色重新置回

背景颜色码:重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47

文本颜色码:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37

四、正则表达式

  1. 假设当前项目分支为feature/A
  2.  
  3. grep \*
  4. 对*进行转义,查找存在*的分支,输出* feature/A
  5.  
  6. grep -Eo ' .+'
  7. 启用正则,并按该规则去查找,输出feature/A
  8.  
  9. grep -vE '^\s*$$' test.log 或者 grep -vE '^$' test.log 或者 grep -vE '^\s$' test.log
  10. 查找没有空格,空行的行。反向匹配,过滤掉空行,空格。比如输出feat: 这是一个提交。

五、安装node
1、建立一个文件夹命名node

  1. wget https://nodejs.org/dist/v12.13.0/node-v12.13.0-linux-x64.tar.xz
  2. tar xvf node-v12.13.0-linux-x64.tar.xz
  3. cd /node/node-v12.13.0-linux-x64/bin

2、创建软链接,以便全局使用

  1. ln -s /node/node-v12.13.0-linux-x64/bin/npm /usr/bin/npm
  2. ln -s /node/node-v12.13.0-linux-x64/bin/node /usr/bin/node
  3. node -v
  4. npm -v

3、如果无法创建,先在/usr/bin/目录下删除已存在的

  1. rm -rf node
  2. rm -rf npm

六、问题与方案

1、不识别pm2

  1. pm2: command not found

创建linux下的软连接,在linux上的设置软连接相当于windows下的配制环境变量

  1. ln -s /node/node-v12.13.0-linux-x64/bin/pm2 /usr/bin/pm2

linux那些事儿的更多相关文章

  1. Linux那些事儿之我是Hub(大结局)挂起自动化【转】

    转自:http://blog.csdn.net/fudan_abc/article/details/1805471 目睹了当今大学校园的素质流氓化,kiss公开化,消费白领化,上课梦游化,逃课普遍化, ...

  2. Linux就这个范儿 第9章 特种文件系统

    Linux就这个范儿 第9章 特种文件系统 http://book.douban.com/reading/32081222/ P326 有一种文件系统,根本不在磁盘上.这种文件系统就是大名顶顶的ram ...

  3. [转]十年前的老文:以 Linux 的名义

    一.灰姑娘的狂欢 今年初,林纳斯·托瓦兹承认:“如果在12年前,有人告诉我Linux会发展到今天的模样,我肯定会惊得目瞪口呆.” 托瓦兹说的是实话.1991年,这名21岁的芬兰赫尔辛基大学的学生,偶然 ...

  4. Linux下USB suspend/resume源码分析【转】

    转自:http://blog.csdn.net/aaronychen/article/details/3928479 Linux下USB suspend/resume源码分析 Author:aaron ...

  5. linux设备驱动之USB主机控制器驱动分析 【转】

    转自:http://blog.chinaunix.net/uid-20543183-id-1930831.html   ---------------------------------------- ...

  6. Linux内核“问题门” - 学习问题、经验集锦

    陈宪章说:“学贵有疑,小疑则小进,大疑则大进.疑者,觉悟之机也,一番觉悟一番长进.” 培根说:“多问的人将多得.” 还在学校的时候导师在激情讲演之后对着会议室里形态各异但均静默不语的我们痛心疾首的说: ...

  7. 《网蜂A8实战演练》——8.Linux USB 主机控制器和设备驱动

    USB 的全称是 Universal Serial Bus,顾名思义:通用串行总线. 提到总线,联想一下,在你心目中总线总是用来干嘛的?还记得 I2C 总线? I2C 总线上挂有二条信号线,一条是 S ...

  8. 转: 嵌入式linux下usb驱动开发方法--看完少走弯路【转】

    转自:http://blog.csdn.net/jimmy_1986/article/details/5838297 嵌入式linux下的usb属于所有驱动中相当复杂的一个子系统,要想将她彻底征服,至 ...

  9. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

随机推荐

  1. ARTS-week8

    Algorithm 给出两个 非空 的链表用来表示两个非负的整数.其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字.如果,我们将这两个数相加起来,则会返回一个新的 ...

  2. 追光的人beta冲刺总结

    所属课程 软件工程1916 作业要求 Beta冲刺博客汇总 团队名称 追光的人 作业目标 beta阶段总结 队员学号 队员博客 221600219 小墨 https://www.cnblogs.com ...

  3. 将表格转化为Latex代码的在线工具

    这个在线工具的网址为:http://www.tablesgenerator.com/latex_tables,好用.

  4. Redis主从复制之哨兵模式(sentinel)

    介绍:反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库 调整结构:6379带着80.81 自定义的/myredis目录下新建sentinel.conf文件,名字绝不 ...

  5. int pthread_cond_wait(pthread_cond_t *restrict cond, pthread_mutex_t *restric mutex)

    mutex:为了保护条件变量而存在的: cond:为了线程通信而存在的. 整个机制都是为了保护条件变量和线程间通信而存在的. pthread_cond_wait()函数一进入wait状态就会自动rel ...

  6. java 解决nginx代理的跨域访问问题

    一.什么是跨域 跨域是浏览器对JavaScript同源策略的限制 二.什么情况下会产生跨域 域名不同 wwww.baidu.com www.jd.com 域名相同,访问的端口不同 wwww.baidu ...

  7. ant-design-vue有v-decorator时defaultValue无效

    <a-input v-decorator="[ 'userName', { rules: [ { required: true, message: '请输入您的账号!' } ], in ...

  8. 关于读取Com口数据时,Com口的名字的两种读法。

    1,直接调用SerialPort类中的GetPortNames()方法. string[] portList = System.IO.Ports.SerialPort.GetPortNames(); ...

  9. wireshark安装和使用 -基础篇

    使用前知道: wireshark版本:3.0.2 使用wireshark的目的是因为它支持linux/windows/mac,而且新版本是开源免费的.还有一个原因是使用Fiddler不支持mac.截止 ...

  10. Navicat自动断开连接处理方式

    问题描述 使用Navicat连接mysql后,如果一段时间不操作,那么会再次操作时会提示无响应,每次都这样确实折磨人,大大降低了工作效率! 问题解决 关闭连接→右键连接→连接属性 将上述心跳时间设置为 ...