Linux Shell 基础知识(一)
1. 本文知识结构
2. shell 基础知识
2.1 shell 简单介绍
GNU bash shell 能提供对 Linux 系统的交互式访问,一般来说,使用快捷键 Ctrl + Alt + T 即可打开 Linux Terminal 。
/etc/passwd 文件包含所有系统用户账户列表以及每个用户的基本配置信息,从该文件中可以找到各用户使用的默认 shell 程序。
大多数 Linux 发行版自带用以查找 shell 命令以及其他 GNU 工具信息的在线手册。man 命令常用于访问存储在 Linux 系统上的手册页面。 man man 命令可用来查看手册页相关的手册页。如果存在不记得命令名的情况,可用 man -k keyword 命令来查找与 keyword 相关的命令,譬如 man -k terminal 即为查找与终端相关的命令。
手册页不是唯一的参考资料,另外还有 info 页面信息,执行 info info 可了解 info 页面的相关内容。另外,大多数命令都可通过 -help 或 --help 命令获取帮助信息,譬如 help help。
2.2 linux 文件系统
不同于 Windows 为每个物理磁盘驱动器分配一个盘符,Linux 在获取路径时不涉及到驱动器盘符,其文件存储在虚拟目录(virtual directory)。虚拟目录将安装在PC上的所有存储设备的文件路径纳入单个目录结构中。
Linux PC 上安装的第一块一盘称为根驱动器,根驱动器包含了虚拟目录的核心,其他目录都是由此开始构建的。Linux 在根驱动器上创建一些挂载点(mount point),这些挂载点是虚拟目录中用于分配额外存储设备的目录,通过把文件和目录挂载到挂载点目录中,实现另一驱动器与根驱动器的协同存储文件。通常系统文件会存储在根驱动器中,而用户文件则存储在另一驱动器中。
常见的 Linux 顶层虚拟目录名及其内容见下表:
目录 | 用途 |
---|---|
/ | 虚拟目录的根目录,通常不会在此存储文件 |
/bin | 二进制目录,存放了用户级的GNU工具 |
/boot | 启动目录,存放启动文件 |
/dev | 设备目录,Linux在这里创建设备节点 |
/etc | 系统配置文件目录 |
/home | 主目录,Linux在这里创建用户目录 |
/lib | 库目录,存放系统和应用程序的库文件 |
/media | 媒体目录,可移动媒体设备的常用挂载点 |
/mnt | 挂载目录,另一可移动媒体设备的常用挂载点 |
/opt | 可选目录,常用于存放第三方软件包和数据文件 |
/proc | 进程目录,存放现有硬件及当前进程的相关信息 |
/root | root用户的主目录 |
/sbin | 系统二进制目录,存放许多GNU管理员级工具 |
/run | 运行目录,存放系统运作时的运行时数据 |
/srv | 服务目录,存放本地服务的相关文件 |
/sys | 系统目录,存放系统硬件信息的相关文件 |
/tmp | 临时目录,可以在该目录中创建和删除临时工作文件 |
/usr | 用户二进制目录,大量用户级的GNU工具和数据文件都存储在这里 |
/var | 可变目录,用以存放经常变化的文件,比如日志文件 |
这些常见的目录名均基于**文件系统层级标准(filesystem hierarchy standard, FHS)**。Linux 发行版大多遵循了FHS,但由于FHS偶有更新,可能存在标准未同步的情况。
绝对文件路径定义了在虚拟目录结构中该目录的确切位置,以虚拟目录的根目录开始,相当于目录的全名。相对文件路径允许用户指定一个基于当前位置的目标文件路劲,它不以代表根目录的正斜线(/)开头,而是以目录名(当前工作目录下的一个子目录)或一个特殊的字符(常见的以单点符或双点符为主)开始。特殊字符的含义如下:
- 单点符( . ),表示当前目录
- 双点符( . . ),表示当前目录的父目录
2.3 常用 shell 文件命令
常用的shell 文件命令清单
命令 | 用途 |
---|---|
cd | 切换目录 |
pwd | 显示当前工作目录 |
ls | 显示当前目录下的文件和目录 |
touch | 创建空文件或改变文件修改时间 |
cp | 从源对象复制到目标对象 |
ln | 创建符号链接或硬链接 |
mv | 将文件和目录移动到另一个位置或重新命名 |
rm | 删除文件或目录 |
mkdir | 创建目录 |
rmdir | 删除目录 |
file | 探测文件内部,决定文件类型 |
cat | 显示文本文件的内容 |
more | 显示文本文件的内容,每次显示一页(分页工具) |
less | more命令的升级版 |
tail | 显示文件最后几行的内容 |
head | 显示文件开头几行的内容 |
文件和目录列表操作
- 遍历目录
#切换目录
$ cd destination
#显示当前目录
$ pwd
destination 参数可以两种方式表示:绝对文件路径与相对文件路径
- 列表命令(ls)
#显示当前目录下的目录和文件
$ ls
#用正斜线(/)和(*)区分显示当前目录下的目录和文件
$ ls -F
#显示当前目录下的目录和文件(包括隐藏文件,隐藏文件以点号开头)
$ ls -a
#递归显示当前目录下的目录和文件(包含子目录下的文件)
$ ls -R
#显示长列表(包含文件的更多相关信息,时间列默认为修改时间)
$ ls -l
#查看test_file的详细信息,其中时间列为访问时间
$ ls -l --time=atime test_file
#另外,与linux常用短命令相同,它支持将多个参数结合使用,比如
$ ls -alF
- 通配符
问号( ? )代表一个字符;
星号( * )代表零个或多个字符。
文件扩展匹配(file globbing),指的是使用通配符进行模式匹配的过程。除星号、问号之外,还有更多的元字符通配符用于文件扩展匹配,比如中括号( [] )、感叹号( ! )等。
- 文件处理
#文件不存在时,创建一个空文件,文件存在时,更新文件的修改时间
$ touch test_file
#复制文件或目录
$ cp source destination
#复制文件或目录,复制时强制询问是否需要覆盖已有文件
$ cp -i source destination
#递归复制文件或目录
$ cp -R source destination
#将文件和目录移动到另一个位置或者重新命名
$ mv source destination
#将文件和目录移动到另一个位置或者重新命名,操作时强制询问
$ mv -i source destination
#删除文件(加入参数 -i 实现在删除前询问)
$ rm -i test_file
#不受提示符打扰地删除很多文件(使用前确保文件都是你想要删除的)
$ rm -f test_file*
制表键(Tab)自动补全允许你在输入文件名或目录名时按一下制表键,让shell帮忙将内容补充完整。
- 链接文件
链接文件是Linux文件系统的一个优势。如需要在系统上维护同一文件的两份或多份副本,除了保存多份单独的物理文本副本之外,还可以采用保存一份物理文件副本和多个虚拟副本的方法,这些虚拟的副本即链接。链接是目录中指向文件真实位置的占位符。在Linux中有两种不同类型的文件链接:符号链接和硬链接。
符号链接是一个实实在在的文件,它指向存放在虚拟目录结构中某个地方的另一个文件。这两个通过符号链接在一起的文件,彼此内容并不相同。通过对比符号链接文件和数据文件的文件大小与inode编号均可知晓两者并非一个文件。
#为test_file创建符号链接test_file_sl
$ ln -s test_file test_file_sl
#查看可与test_file*通配的文件的inode编号
$ ls -i test_file*
硬链接会创建独立的虚拟文件,其中包含了原始文件的信息及位置,但是它们从根本上而言是同一个文件。引用硬链接文件等同于引用了源文件。要创建硬链接,原始文件也必须时间存在。
#为test_file创建硬链接test_file_hl
$ ln test_file test_file_hl
#查看可与test_file*通配的文件的inode编号
$ ls -i test_file*
注意:只能对处于同一存储媒体的文件创建硬链接。要想在不同存储媒体的文件之间创建链接,只能使用符号链接。同一个文件可以拥有多个链接,但不要创建软链接文件的软链接。混乱的链接链不仅会容易断裂,还会造成各种麻烦。
- 处理目录
#创建目录
$ mkdir new_dir
#创建多个目录及子目录
$ mkdir -p new_dir/sub_dir/under_dir
#删除目录(默认情况下,rmdir命令只能删除空目录)
$ rmdir new_dir
#删除非空目录(-i参数仅表询问,先删除目录下的文件再删除目录)
$ rm -ri new_dir
#不做提示地删除目录下的子目录及文件
$ rm -rf new_dir
#展示目录结构
$ tree new_dir
- 查看文件
#查看文件类型
$ file test_file
#查看文件内容
$ cat test_file
#查看文件内容,所有行加上行号
$ cat -n test_file
#查看文件内容,有文本行加上行号
$ cat -b test_file
#查看文件内容,不出现制表符
$ cat -T test_file
#显示文本文件内容,每次显示一页
$ more test_file
#其他显示命令less, more命令的升级版,详讯 man less
#查看文件的末尾(默认10行)
$ tail test_file
#查看文件的末尾2行
$ tail -n 2 test_file
$ tail -2 test_file
#查看文件的开头(默认10行)
$ head test_file
#查看文件的开头10行
$ head -n 10 test_file
$ head -10 test_file
3. shell 系统交互命令
3.1 管理进程
当程序运行再系统上时,我们称之为进程(process),在Linux系统中,我们可以使用 ps 命令监测进程的运行情况。
Linux系统种使用GNU ps命令支持3种不同类型的命令行参数:
- Unix风格参数,前面加单破折线
- BSD风格参数,前面不加破折线
- GNU风格的长参数,前面加双破折线
#ps 命令的基本情况(进程ID/Process ID,运行终端/TTY,进程已用的CPU时间)
$ ps
Unix风格的 ps 命令参数
参数 | 描述 |
---|---|
-A | 显示所有进程 |
-N | 显示与指定参数不符的所有进程 |
-a | 显示除控制进程(session leader)和无终端进程外的所有进程 |
-d | 显示除控制进程外的所有进程 |
-e | 显示所有进程 |
-C cmdlist | 显示包含在cmdlist列表中的进程 |
-G grplist | 显示组ID在grplist列表中的进程 |
-U userlist | 显示属主的用户ID 在userlist列表中的进程 |
-g grplist | 显示会话或组ID在grplist列表中的进程 |
-p pidlist | 显示PID在pidlist中的进程 |
-s sesslist | 显示会话ID在sesslist列表中的进程 |
-t ttylist | 显示终端ID在ttylist列表中的进程 |
-u userlist | 显示有效用户ID在userlist列表中的进程 |
-F | 显示更多额外输出(相对-f参数而言) |
-O format | 显示默认的输出列以及format列表指定的列 |
-M | 显示进程的安全信息 |
-c | 显示进程的额外调度器信息 |
-f | 显示完整格式的输出 |
-j | 显示任务信息 |
-l | 显示长列表 |
-o format | 仅显示由format指定的列 |
-y | 不要显示进程标记(process flag,表明进程状态的标记) |
-z | 显示安全标签(security context)信息 |
-H | 用层级格式来显示进程(树状,用来显示父进程) |
-n namelist | 定义了WCHAN列显示的值 |
-w | 采用宽输出模式,不限宽度显示 |
-L | 显示进程中的线程 |
-V | 显示ps命令的版本号 |
扩展列信息
英文简称 | 列描述 |
---|---|
UID | 启动这些进程的用户 |
PID | 进程的进程ID |
PPID | 父进程的进程号 |
C | 进程生命周期中的CPU利用率 |
STIME | 进程启动时的系统时间 |
TTY | 进程启动时的终端设备 |
TIME | 运行进程需要的累计CPU时间 |
CMD | 启动的程序名称 |
F | 内核分配给进程的系统标记 |
S | 进程的状态(O代表正在运行;S代表在休眠;R代表可运行,正等待运行;Z代表僵化,进程已结束但父进程已不存在;T代表停止)。 |
PRI | 进程的优先级(越大的数字代表越低的优先级) |
NI | 谦让度值用来参与决定优先值 |
ADDR | 进程的内存地址 |
SZ | 假如进程被换出,所需交换空间的大致大小 |
WCHAN | 进程休眠的内核函数的地址 |
GNU风格的ps命令参数
参数 | 描述 |
---|---|
--deselect | 显示所有进程,命令行中列出的进程 |
--Group grplist | 显示组ID在grplist列表中的进程 |
--User userlist | 显示用户ID在userlist列表中的进程 |
--group grplist | 显示有效组ID在grplist列表中的进程 |
--pid pidlist | 显示PID在pidlist列表中的进程 |
--ppid pidlist | 显示父PID在pidlist列表中的进程 |
--sid sidlist | 显示会话ID在sidlist列表中的进程 |
--tty ttylist | 显示终端设备号在ttylist列表中的进程 |
--user userlist | 显示有效用户ID在userlist列表中的进程 |
--format format | 仅显示由format指定的列 |
--context | 显示额外的安全信息 |
--coles n | 将屏幕宽度设置为n列 |
--columns n | 将屏幕宽度设置为n列 |
--cumulative | 包含已停止的子进程的信息 |
--forest | 用层级结构显示出进程和父进程之间的关系 |
--headers | 在每页输出中都显示列的头 |
--no-headers | 不显示列的头 |
--lines n | 将屏幕高度设为n行 |
--rows n | 将屏幕高度设为n排 |
--sort order | 指定将输出按哪列排序 |
--width n | 将屏幕宽度设为n列 |
--help | 显示帮助信息 |
--info | 显示调试信息 |
--version | 显示ps命令的版本号 |
top 命令与 ps 命令像是,能够显示进程信息,但它是实时显示的。默认情况下,top 命令在启动时会按照 %CPU 值对进程排序,可以在 top 运行时使用多种交互命令重新排序。每一个交互式命令都是单字符,在 top 命令运行时键入可改变 top 的行为。键入 f 允许你选择对输出进行排序的字段,键入 d 允许你修改轮询间隔,键入 q 可以推出 top。
- 第一行:当前时间、系统的运行时间、登录的用户数以及系统的平均负载
- 第二行:进程概要信息/进程状态信息
- 第三行:CPU概要信息
- 第四行:系统物理内存状态
- 第五行:系统交换空间状态
- 最后一部分:当前运行中的进程的详细列表
英文简称 | 列描述 |
---|---|
PID | 进程的ID |
USER | 进程属主的名字 |
PR | 进程的优先级 |
NI | 进程的谦让度值 |
VIRT | 进程占用的虚拟内存总量 |
RES | 进程占用的物理内存总量 |
SHR | 进程与其他进程共享的内存总量 |
S | 进程的状态(D代表可中断的休眠状态,R代表在运行状态,S代表休眠状态,T代表跟踪状态或停止状态,Z代表僵化状态) |
%CPU | 进程使用的CPU时间比例 |
%MEM | 进程使用的内存占可用内存的比例 |
TIME+ | 自进程启动到目前为止的CPU时间总量 |
COMMAND | 进程所对应的命令行名称,也就是启动的程序名 |
在 Linux 中,进程之间通过信号来通信。进程的信号就是预定义好的一个消息,进程能识别它并决定忽略还是作出反应。进程如何处理信号是由开发人员通过编程来决定的
信号 | 名称 | 描述 |
---|---|---|
1 | HUP | 挂起 |
2 | INT | 中断 |
3 | QUIT | 结束运行 |
9 | KILL | 无条件终止 |
11 | SEGV | 段错误 |
15 | TERM | 尽可能终止 |
17 | STOP | 无条件停止运行,但不终止 |
18 | TSTP | 停止或暂停,但继续在后台运行 |
19 | CONT | 在STOP或TSTP之后恢复执行 |
#要发送进程信息,你必须时进程的属主或登录为root用户
#kill命令可通过进程PID给进程发信号,默认为TERM信号
$ kill 3940
#kill命令可通过 -s 参数支持指定其他信号(用信号名或信号值)
$ kill -s HUP 3940
#要检察kill命令是否有效,可再运行 ps 命令或 top 命令,看看问题进程是否停止。
#killall命令支持通配符,可再系统负载过大而变得慢快速结束进程
$ killall http*
3.2 获取磁盘统计信息
df 命令可以方便的地查看所有已挂载的磁盘的使用情况。
du 命令可以显示某个特定目录(默认情况下是当前目录)的磁盘使用情况。这一方法可用来快死判断系统上某个目录下是不是有超大文件。
# 查看磁盘使用情况
$ df
# 以用户易读的形式显示磁盘使用情况
$ df -h
# 显示某个目录下磁盘使用情况(具体到占用磁盘块数)
$ du
# 显示某个目录下磁盘使用情况(显示所有已列出文件总的大小)
$ du -c
# 显示某个目录下磁盘使用情况(以用户易读的形式)
$ du -h
# 显示某个目录下磁盘使用情况(显示每个输出参数的总计)
$ du -s
3.3 挂载新磁盘
Linux文件系统将所有磁盘都比购入一个虚拟目录下。在使用新的存储媒体之气那,需要把它放到虚拟目录下,即为挂载(mounting)。在图形化桌面环境里,大多数Linux发行版都能自动挂载特定类型的可移动存储媒体。
默认情况下,mount 命令会输出当前系统上挂载的设备列表。
# 手动挂在媒体设备的基本命令:
$ mount -t type device directory
#type参数指定了磁盘被格式化的文件系统类型,常见类型有 vfat,ntfs,iso9660;后面两个参数定义了了该存储设备的设备文件的位置以及挂载点在虚拟目录中的位置。
mount命令的参数
参数 | 描述 |
---|---|
-a | 挂载/etc/fstab文件中指定的所有文件系统 |
-f | 使mount命令模拟挂载设备,但并不真的挂载 |
-F | 与-a参数一起使用时,会同时挂载所有文件系统 |
-v | 详细模式,将会说明挂载设备的每一步 |
-I | 不启用任何/sbin/mount.filesystem下的文件系统帮助文件 |
-l | 给ext2、ext3或XFS文件系统自动添加文件系统标签 |
-n | 挂载设备,但不注册到/etc/mtab已挂载设备文件中 |
-p num | 进行加密挂载时,从文件描述符num中获得密码短语 |
-s | 忽略该文件系统不支持的挂载选项 |
-r | 将设备挂载为只读的 |
-w | 将设备挂载为可读写的 |
-L label | 将设备按指定的label挂载 |
-U uuid | 将设备按指定的uuid挂载 |
-O | 和-a参数一起使用,限制命令只作用到特定的一组文件系统上 |
-o | 给文件系统添加特定选项 |
-o参数允许挂载文件系统时添加一些以逗号分隔的额外选项,常见的有:
ro: 以只读形式挂载
rw: 以读写形式挂载
user: 允许普通用户挂载文件系统
check=none: 挂载文件系统时不进行完整性校验
loop: 挂载一个文件
从 Linux 系统上移出一个可移动设备时,不能直接从系统上移出,而应该先卸载。umount 命令支持通过设备文件或者挂载点来指定要卸载的设备。
$ umount [directory | device ]
3.4 数据处理
- 排序数据
#按指定的默认语言排序规则对文本文件中的数据行排序
$ sort test_file
#把数字识别为数值而非字符,并按值排序
$ sort -n test_file
#按月排序(Jan\Feb\Mar\Apr\...)
$ sort -M test_file
sort 命令参数
单破折线 | 双破折线 | 描述 |
---|---|---|
-b | --ignore-leading-blanks | 排序时忽略起始的空白 |
-C | --check=quiet | 不排序,如果数据无序也不要报告 |
-c | --check | 不排序,但检查输入数据是不是已排序,未排序的话,报告 |
-d | --dictionary-order | 仅考虑空白和字母,不考虑特殊字符 |
-f | --ignore-case | 默认情况下,会将大写字母排在前面;这个参数会忽略大小写 |
-g | --general-number-sort | 按通用数值排序(跟-n不同,把值当浮点数来排序,支持科学计数法表示的值) |
-i | --ignore-nonprinting | 载排序时忽略不可打印字符 |
-k | --key=POS1[,POS2] | 排序从POS1位置开始,如果制定了POS2的话,到POS2位置结束 |
-M | --month-sort | 用三字符月份名按月份排序 |
-m | --merge | 将两个已排序数据文件合并 |
-n | --numeric-sort | 按字符串数值来排序 |
-o | --output=file | 将排序结果写出到指定的文件中 |
-R | --random-sort | 按随机生成的散列表的键值排序 |
--random-source=FILE | 指定-R参数用到的随机字节的源文件 | |
-r | --reverse | 反序排序(升序变降序) |
-S | --buffer-size=SIZE | 指定使用的内存大小 |
-s | --stable | 禁用最后重排序比较 |
-T | --temporary-directory=DIR | 指定一个位置来存储临时工作文件 |
-t | --field-separator=SEP | 指定一个用来区分键位置的字符 |
-u | --unique | 和-c参数一起使用时,检查严格排序;不和-c参数一起使用时,仅输出第一例相似的两行 |
-z | --zero-terminated |
grep命令会载输入或指定的文件中查找匹配指定模式的字符的行。grep的输出就是包含了匹配模式的行。
# 基本文件查找
$ grep [options] pattern [file]
# 反向搜索
$ grep -v t file1
# 显示匹配行所在行号
$ grep -n t file1
# 统计有多少行含有匹配模式
$ grep -c t file1
# 指定多个匹配模式(满足某一个即可)
$ grep -e t -e f file1
默认情况下,grep 命令用基本的Unix风格正则表达式来匹配模式。
egrep 命令是 grep 命令的一个衍生,支持POSIX扩展正则表达式。fgrep 命令支持将匹配模式指定为用换行符分隔的一系列固定长度的字符串。
Linux文件压缩工具
工具 | 文件扩展名 | 描述 |
---|---|---|
bzip2 | .bz2 | 采用Burrows-Wheeler块排序文本压缩算法和霍夫曼编码 |
compress | .Z | 最初的Unix文件压缩工具 |
gzip | .gz | GNU压缩工具,用Lempel-Ziv编码 |
zip | .zip | Windows上PKZIP工具的Unix实现 |
gzip软件包是GNU项目的产物,意在编写一个能够替代原先Unix中compress工具的免费版本。其中含有以下工具:
- gzip: 压缩文件
- gzcat: 查看压缩过的文本文件内容
- gunzip: 解压文件
tar 命令是给整个目录结构创建归档文件的简便方法,是Linux中分发开源程序源码文件所采用的普遍方法。
# tar命令的格式
$ tar function [options] object1 object2 ...
tar命令的功能function
功能 | 长名称 | 描述 |
---|---|---|
-A | --concatenate | 将一个已有tar归档文件追加到另一个已有tar归档文件 |
-c | --create | 创建一个新的tar归档文件 |
-d | --diff | 检查归档文件和文件系统的不同之处 |
--delete | 从已有tar归档文件中删除 | |
-r | --append | 追加文件到已有tar归档文件末尾 |
-t | --list | 列出已有tar归档文件的内容 |
-u | --update | 将比tar归档文件中已有的同名文件新的文件追加到tar归档文件中 |
-x | --extract | 从已有tar归档文件中提取文件 |
tar命令的选项options
选项options | 描述 |
---|---|
-C dir | 切换到指定目录 |
-f file | 输出结果到文件或设备file |
-j | 将输出重定向给bzip2命令来压缩内容 |
-p | 保留所有文件权限 |
-v | 在处理文件时显示文件 |
-z | 将输出重定向给gzip命令来压缩内容 |
注意:下载了开源软件之后,经常文件名是以 .tgz 结尾的,这些是gzip压缩过的tar文件,可以用命令 tar -zxvf filename.tgz 来解压。
参考文献:Linux命令行与shell脚本编程大全(第三版) Richard Blum , Christine Bresnahan
Linux Shell 基础知识(一)的更多相关文章
- Linux shell基础知识(上)
Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...
- Linux Shell基础知识
一.文件系统和安全 chmod命令 chmod命令有两种模式,一种是符号模式,用ugo执行用户,用rwx执行权限:另一种是绝对模式,用八进制不同位置的不同值来代表不同用户的不同权限. 符号模式 chm ...
- Linux Shell 基础知识(二)
1.本文知识结构 2.文件的查询与检索 2.1. cd 目录切换 找到文件/目录位置:cd 切换到上一个工作目录: cd - 切换到home目录: cd or cd ~ 显示当前路径: pwd 更改当 ...
- Kali Linux渗透基础知识整理(四):维持访问
Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...
- Kali Linux渗透基础知识整理(二)漏洞扫描
Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网 ...
- Linux入门基础知识
注:内容系兄弟连Linux教程(百度传课:史上最牛的Linux视频教程)的学习笔记. Linux入门基础知识 1. Unix和Linux发展历史 二者就像父子关系,当然Unix是老爹.1965年,MI ...
- Linux Shell基础(下)
Linux Shell基础(下) 目录 一.shell特殊符号cut命令 二.cut.sort.wc.uniq命令 三.tee.tr.split命令 四.简易审计系统 五.fork, exec, so ...
- linux shell 基础 使用日志与心得
linux shell 基础 使用日志与心得 1.#!/bin/bash 第一行就出现#!/bin/bash是指此脚本使用/bin/bash来解释执行.其中,#!是一个特殊的表示符,其后,跟着解释此脚 ...
- shell基础知识总结
1. shell 对于一台计算机而言,其硬件受系统内核的控制,使用者想要控制计算机,就必须有与系统内核进行通讯的手段.而shell就是使用者与计算机进行通讯的手段之一.从命名上看,shell其实是相对 ...
随机推荐
- indexedDB添加,删除,获取,修改
[toc] 在chrome(版本 70.0.3538.110)测试正常 编写涉及:css, html, js 在线演示codepen html代码 <h1>indexedDB</h1 ...
- 给面试官讲明白:一致性Hash的原理和实践
"一致性hash的设计初衷是解决分布式缓存问题,它不仅能起到hash作用,还可以在服务器宕机时,尽量少地迁移数据.因此被广泛用于状态服务的路由功能" 01分布式系统的路由算法 假设 ...
- win7-BIOS中开启AHCI模式电脑蓝屏怎么办?
win7-BIOS中开启AHCI模式电脑蓝屏怎么办? 来源:U大师 u盘装系统 不少网友都表示给电脑安装win7系统后,如果在BIOS中开启IDE模式就一切正常而为AHCI模式时就会出现蓝屏.其实那是 ...
- dns自动配置shell脚本
代码: #!/bin/bash #获取url echo "url:" read url #获取ip echo "ip:" read ip #向/etc/name ...
- c# 20160721
ctrl y =>反撤销 ctrl m m 隐藏当前代码段 重载运算符语法 把事件处理程序注册为 click事件的监听程序 [newButton.click+=newButton_click] ...
- 图表控件业界革命 -Arction新产品LightningChart JS 上市
芬兰高科技企业Arction Ltd 在今年8月份推出了用于网页的数据可视化控件新解决方案—— LightningChart JS. 初次的基准测试表明,该产品为网页应用程序的数据可视化刷新了新的纪录 ...
- Liunx软件安装之Redis
Redis是一个开源(BSD许可),内存数据结构存储,用作数据库,缓存和消息代理.它支持数据结构,如字符串,散列,列表,集合,带有范围查询的排序集,位图,超级日志和带有半径查询的地理空间索引.Redi ...
- c++ 开发JNI
c++ 开发JNI C的预处理命令 #开头的就是c/c++的预处理命令 在编译之前 先会走预编译阶段 预编译阶段的作用就是 把 include进来的头文件 copy到源文件中 define这些宏定义 ...
- [Python] 数据结构--实现顺序表、链表、栈和队列
说明: 本文主要展示Python实现的几种常用数据结构:顺序表.链表.栈和队列. 附有实现代码. 来源主要参考网络文章. 一.顺序表 1.顺序表的结构 一个顺序表的完整信息包括两部分,一部分是表中元素 ...
- 【JVM从小白学成大佬】6.创建对象及对象的访问定位
<JVM从小白学成大佬>系列推出到现在,收到了很多小伙伴的好评,也收到了一些小伙伴的建议,在此表示感谢. 有几个小伙伴提出了希望出一篇介绍对象的创建及访问,猿人谷向来是没有原则的,小伙们要 ...