变量 PATH,HOME,PWD,LOGNAME env命令,来获取系统的变量 set命令多了很多变量,并且包括用户自定义的变量 自定义变量a=1 变量名规则:字母、数字下划线,首位不能为数字 变量值有特殊符号时需要用单引号括起来 变量的累加 全局变量export b=2 格式 export 变量名=变量值 全局变量仅仅在子shell里面生效 运行bash 命令,直接进去 子shell unset变量 //取消变量 查看环境变量的命令 env命令,查看系统常用的环境变量 系统的变
8.6 管道符和作业控制 管道符、作业控制 ctrl z //暂停一个任务 jobs //查看后台的任务 bg [id] //把任务调到后台 fg [id] //把任务调到前台 命令后面加&直接丢到后台 管道符的使用 管道符 | ,表示把前面命令输出的结果,传输给后面的命令 cat 1.txt |wc -l ;cat 1.txt |grep 'aaa' grep 命令,用来过滤指定关键词的命令,只要在一行中含有这个关键词,就会把这一行过滤出来 wc -l 命令,查看文件有多少个 [root@loca
本文介绍.bash_profile文件的编写规则,给出.bashrc, .tmux.conf, .vimrc中常用的配置,还有一个有趣的配置,可以实现登陆后在命令行输出你喜欢的符号。
vmstat 1 自动显示系统的状态 sleep 100 可以使系统沉睡100秒 管道符和作业控制 管道符的作用:把管道符前面执行的结果输出内容交给管道符后面的命令。 查看1.txt的内容并输出给wc -l命令统计行数: cat 1.txt |wc -l 查看1.txt的内容并输出给grep命令查询关键词’aaa’: cat 1.txt |grep ‘aaa’ 暂停一个任务,比如用vim正在编辑一个文件,可以暂停到命令界面做别的事情,vim编辑的文件则暂停在后台里: ctrl z 把任务调
(2).如果按作用范围的话,可分为自定义变量和环境变量(后面会将自定义变量和环境变量)。
如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs,一个基于内核的动态设备文件系统,他首次出现在2.3.46 内核中。Mandrake,Gentoo等Linux分发版本采用了这种方式。devfs创建的设备文件是动态的。但是devfs有一些严重的限制,从 2.6.13版本后移走了。目前取代他的便是文本要提到的udev--一个用户空间程序。 目前很多的Linux分发版本采纳了udev的方式,因为它在Linux设备访问,特别是那些对设备有极端需求的站点(比如需要控制上千个硬盘)和热插拔设备(比如USB摄像头和MP3播放器)上解决了几个问题。下面我我们来看看如何管理udev设备。 实际上,对于那些为磁盘,终端设备等准备的标准配置文件而言,你不需要修改什么。但是,你需要了解udev配置来使用新的或者外来设备,如果不修改配置,这些设备可能无法访问,或者说Linux可能会采用不恰当的名字,属组或权限来创建这些设备文件。你可能也想知道如何修改RS-232串口,音频设备等文件的属组或者权限。这点在实际的Linux实施中是会遇到的。 为什么使用udev 在此之前的设备文件管理方法(静态文件和devfs)有几个缺点: * 不确定的设备映射。特别是那些动态设备,比如USB设备,设备文件到实际设备的映射并不可靠和确定。举一个例子:如果你有两个USB打印机。一个可能称为 /dev/usb/lp0,另外一个便是/dev/usb/lp1。但是到底哪个是哪个并不清楚,lp0,lp1和实际的设备没有一一对应的关系,因为他可能因为发现设备的顺序,打印机本身关闭等原因而导致这种映射并不确定。理想的方式应该是:两个打印机应该采用基于他们的序列号或者其他标识信息的唯一设备文件来映射。但是静态文件和devfs都无法做到这点。 *没有足够的主/辅设备号。我们知道,每一个设备文件是有两个8位的数字:一个是主设备号 ,另外一个是辅设备号来分配的。这两个8位的数字加上设备类型(块设备或者字符设备)来唯一标识一个设备。不幸的是,关联这些身边的的数字并不足够。 */dev目录下文件太多。一个系统采用静态设备文件关联的方式,那么这个目录下的文件必然是足够多。而同时你又不知道在你的系统上到底有那些设备文件是激活的。 *命名不够灵活。尽管devfs解决了以前的一些问题,但是它自身又带来了一些问题。其中一个就是命名不够灵活;你别想非常简单的就能修改设备文件的名字。缺省的devfs命令机制本身也很奇怪,他需要修改大量的配置文件和程序。; *内核内存使用,devfs特有的另外一个问题是,作为内核驱动模块,devfs需要消耗大量的内存,特别当系统上有大量的设备时(比如上面我们提到的系统一个上有好几千磁盘时) udev的目标是想解决上面提到的这些问题,他通采用用户空间(user-space)工具来管理/dev/目录树,他和文件系统分开。知道如何改变缺省配置能让你之大如何定制自己的系统,比如创建设备字符连接,改变设备文件属组,权限等。 udev配置文件 主要的udev配置文件是/etc/udev/udev.conf。这个文件通常很短,他可能只是包含几行#开头的注释,然后有几行选项:
(1)前言 Shell是什么? 答:Shell(壳)本身是一个用C语言编写的程序也是一个是解释执行的脚本语言即命令解释器,它在操作系统最外层是用户使用Unix/Linux的桥梁,把用户输入解释给操作系统等待操作系统处理后,将结果输出返回给用户,用户的大部分工作都是通过Shell完成的,还是一个功能强大的编程语言,易编写,易调试,灵活性较强。
对于用户账户的管理是系统管理员最重要的工作之一。尤其是,对于任何自称安全的linux系统,最受关心的应该是密码安全问题。在本教程中,我将介绍如何在linux上设置严密的密码策略。
当然,你可以进入子bash中去尝试输出变量,无法输出则是局部变量,可以输出则是全局变量 全局变量 如何定义一个全局变量呢?需要先声明一个局部变量,然后再通过export 导出为一个全局变量 在子bash中修改全局变量,只会再当前环境中生效,不会影响父bash环境,哪怕是你增加 export 也依然不会影响到父bash环境 Shell脚本中使用变量 我们可以在 hello.sh 的脚本中去调用全局和局部变量 export 变量名 txt=10 export txt #!/bin/bash echo $txt 在shell脚本中使用变量,同样遵循全局和局部变量的规则
当然,你可以进入子bash中去尝试输出变量,无法输出则是局部变量,可以输出则是全局变量 全局变量 如何定义一个全局变量呢?需要先声明一个局部变量,然后再通过export 导出为一个全局变量 在子bash中修改全局变量,只会再当前环境中生效,不会影响父bash环境,哪怕是你增加 export 也依然不会影响到父bash环境 Shell脚本中使用变量 我们可以在 hello.sh 的脚本中去调用全局和局部变量
https://baike.baidu.com/item/%E7%A7%92/2924586
对于 Linux,普通开发者不必像运维工程师那样掌握大量复杂的操作命令,更不用像 Linux内核工程师那样了解精深的 Linux内核,但是掌握一些 Linux的基本概念和常用的命令,能够大幅度地提高开发效率,尤其是对于数据工程师而言, Shell更是构建数据管道重要的一环,是不可或缺的一项技能。本篇文章将介绍和总结一些我在日常开发中用到的Linux基本命令。
本文讲解LINUX下用户/用户组,文件属性及修改,SUDO免密登录,SSH互信免密登录,VIM,history等命令操作实践。
诶诶欸?不是学Linux么?怎么要讲shell了?shell是啥?啥是shell?
制作 ar -cr libxxx.a xxx1.o xxx2.o xxx3.o ...
shell脚本是按行分隔每一条shell语句。如果每一条shell语句写在单独一行,此时可以加分号,也可以不加,没有什么区别。如果多条shell写在同一行,那么此时需一定要用分号将不用语句分隔开来。
$>cp /mnt/hdfs/downloads/bigdata/jdk-8u65-linux-x64.tar.gz ~/downlooads
shell为用户与Kernel之间的一个接口:shell主要是一个命令解释器,它接受并解释用户输入的命令,然后将这些命令传给内核,最后由内核来执行这些命令。Bourn shell是现在所有shell的始祖,C shell增加了若干Bourn shell没有的特性,如命令行历史、别名和作业控制等。Korn shell增加了若干Bourn shell的超集,它具有类似C shell的加强功能。bash与Bourn shell兼容同时加入了csh、ksh和tcsh的一些有用的功能、GNU项目开发、也是实际上的标准Linux shell。系统中所有shell都存放在/etc/shells文件中。
VScode下载地址:https://code.visualstudio.com/Download
当然了,我这种人怎么可能按照官方文档按部就班的去研究,我肯定是先 fuzz 一波了,没错,我是手动 fuzz
命令历史 history !! 表示执行上一条命令 !n 表示执行历史中第n条命令 !字符串 表示执行命令历史中首次出现该字符串的命令 设置别名:alias 取消别名:unalias 通配符 在bash下 * :匹配0个或多个字符 ?:只匹配一个字符 输入重定向:< 输出重定向:> 追加重定向:>> 错误重定向: 2> 错误追加重定向:2>> 管道符:| 作业控制 job:查看任务 Ctrl+z:暂停任务 fg:恢复暂停的任务 bg:把暂停的任务丢到后台运行
例3:ls -ltr 查看当前目录详细列表,按时间顺序逆序排序,最近修改的文件在后面
想要在Linux下开发Go,就要在Linux下搭建Go开发环境,由于我的电脑已经安装了vscode,因此基于vscode搭建开发环境。
MySQL数据库管理系统(后续简称MySQL),是一款知名的数据库系统,其特点是:轻量、简单、功能丰富。
在进行编程的过程之中,我们常常遇见变量或函数重名的情况。比如:函数的重载,或通过不同程序块与命名空间变量与函数的重名。
除了上述常见的排序规则,MySQL还提供了其他一些排序规则,如utf8mb4_unicode_520_ci、utf8mb4_unicode_520_bin等。这些规则可以根据具体需求选择使用。
SSH(Secure Shell)是一种安全的远程登录协议,它允许您通过网络远程连接到Linux系统并进行管理操作。默认情况下,SSH使用22端口进行通信。然而,为了增强系统的安全性,有时候我们需要更改SSH端口,以减少潜在的攻击。
命令历史 # cat /root/.bash_history //存放历史命令的地方 # history //查看命令历史的条数 # echo $HISTSIZE //查看可以保存的条数 # vim /etc/profile //改变变量HISTSIZE的值 “/HISTSIZE” 去搜索 # source /etc/profile //这样才能使我们刚刚修改的值生效 # vim /etc/profile →在HISTSIZE下增加 HISTTIME
无论你是在文件系统中四处查看、寻找文件还是尝试进入重要目录,Linux 都可以提供很多帮助。在本文中,我们将介绍一些技巧,使你可以在文件系统中移动,查找和使用所需的命令也更加轻松。
还记得上篇文章中,AddressSanitizer(ASAN)linux下的内存分析神器的问题的文章吧,
umask(user’s mask)用来设置文件权限掩码。权限掩码是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。
最近在看 FreeRTOS 的源码,发现其命名规则和 Linux 很不一样,遂写文章记录一下。
为了区分生产环境和测试环境,强烈调整Linux的命令行颜色,避免误操作导致生产故障,很不起眼的一个操作,但是在犯蒙时刻能救命~
下载 nginx 的压缩包文件到根目录,官网下载地址:nginx.org/download/nginx-x.xx.xx.tar.gz
理解链接器将帮助你构造大型程序。构造大型程序的程序员经常会遇到由于缺少模块、缺少库或者不兼容的库版本引起的链接器错误。除非你理解链接器是如何解析引用、什么是库以及链接器是如何使用库来解析引用的,否则这类错误将令你感到迷惑和挫败。
syslog是Linux系统默认的日志守护进程,可以接受来自系统的各种功能的信息,下面为大家分享一下搭建Syslog服务器的具体方法。
Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后,都有自己专用的运行环境。而这个环境是由一组变量所定义,这组变量被称为环境变量。用户可以对自己的环境变量进行修改以达到对环境的要求。
还可以使用set命令查看shell变量,该命令不仅可以显示系统内置环境变量,还可以显示用户自定义的环境变量。
表3-1 输入重定向中用到的符号及其作用
1.将本地安装包jdk-7u71-linux-x64.tar.gz拷贝到服务器/opt/java目录
第1章 sed命令详解 1.1 查找固定的某一行 1.1.1 awk命令方法 [root@znix ~]# awk '!/oldboy/' person.txt 102,zhangyao,CTO 10
描述: Linux 用户常常会很难鉴别同一类型的设备名,比如 eth0, eth1, sda, sdb 等等。通过观察这些设备的内核设备名称,用户通常能知道这些是什么类型的设备,但是不知道哪一个设备是他们想要的
1, 编译器编译源代码生成的文件叫做目标文件。 从结构上说,是编译后的可执行文件,只不过还没有经过链接 3.1 目标文件的格式 1,可执行文件的格式: Windows下的PE 和 Linux下的ELF 2,从广义上说,目标文件与可执行文件的格式几乎是一样的,所以广义上可以将目标文件与可执行文件看成是一种类型的文件。 3,可执行文件,动态链接库,静态链接库都按照可执行文件格式存储(Windows下是 PE-COFF格式,Linux下是ELF格式)。 4,Linux下命令: $: file ***
https://www.gnu.org/software/make/manual/make.pdf
Microsoft SQL Server(简称SQL Server)是由微软公司开发的关系数据库管理系统,它是一个功能强大、性能卓越的企业级数据库平台,用于存储和处理大型数据集、支持高效查询和分析等操作。SQL Server 支持广泛的应用程序开发接口(API),包括 T-SQL、ADO.NET、ODBC、OLE DB 等,并支持多种操作系统,包括 Windows、Linux 和 Docker 等。SQL Server 包含许多高级功能和组件,如数据仓库、分析服务、报告服务、全文搜索等,可为企业提供全面的数据管理和分析解决方案。
大多数情况下,我们都 使用SSH 或者 telent(基本已不用了~) 远程登录到 Linux 服务器。但是有时候我们有这样的需求:经常为一些长时间运行的任务而头疼,比如系统备份、ftp 传输等等
cron该词来源于希腊语chronos(χρόνος),原意是时间。是一款类Unix的操作系统下的基于时间的任务管理工具。用户可以通过cron在固定时间、间隔下,运行指定任务(可以是命令和脚本)。
字符范围: 指定字符串1或字符串2的内容时,只能使用单字符或字符串范围或列表。 [a-z] a-z内的字符组成的字符串。 [A-Z] A-Z内的字符组成的字符串。 [0-9] 数字串。 \octal 一个三位的八进制数,对应有效的ASCII字符。 [On] 表示字符O重复出现指定次数n。因此[O2]匹配OO的字符串。
领取专属 10元无门槛券
手把手带您无忧上云