目录
一、Linux基础知识
1. Linux介绍
1.1 目录树
1.2 系统文件
1.3 系统命令行
2. Linux常用操作指令
2.1 查看目录
2.2 切换目录
2.3 查看当前路径
2.4 创建目录
2.5 删除目录或文件
2.6 修改或移动目录
2.7 拷贝目录
2.8 文件权限
2.9 查找文件
2.10 文件统计
2.11 文件显示
2.12 压缩文件
2.13 查看进程
2.14 which
2.15 管道符
2.16 其他
2.17 Linux常用的文本指令
1、正则表达式
2、grep
3、awk
4、sed
2.18 Linux快捷键
3.bashrc文件
一、Linux基础知识
1. Linux介绍
Linux全称GNU/Linux,是一种自由和开放源码的类 UNIX 操作系统,一般是用作服务器端的操作系统。Linux没有盘符的概念,只有一个根目录,如下图。Linux操作系统存放文件有两种路径:绝对路径和相对路径。
1.1 目录树
1.2 系统文件 - /bin 二进制文件,系统常规命令
- /boot 系统启动分区,系统启动时读取的文件
- /dev 设备文件
- /etc 大多数配置文件
- /home 普通用户的家目录
- /lib 32位函数库
- /lib64 64位库
- /media 手动临时挂载点
- /mnt 手动临时挂载点
- /opt 第三方软件安装位置
- /proc 进程信息及硬件信息
- /root 临时设备的默认挂载点
- /sbin 系统管理命令
- /srv 数据
- /var 数据
- /sys 内核相关信息
- /tmp 临时文件
- /usr 用户相关设定
复制代码
1.3 系统命令行
| 命令 | 含义 |
|---|
| ~ | 用户目录 | | / | 根目录 | | . | 当前目录 | | .. | 父目录(上级目录) | | / | 绝对路径(路径的写法一定是由根目录 / 写起的,例如 /usr/local;只要文件不移动位置,那么它的绝对路径是恒定不变的) | | ./ | 相对路径(相对路径不是从根目录 / 开始写起,而是从当前所在的工作目录开始写起;随着程序的执行,当前所在目录可能会改变,因此文件的相对路径不是固定不变的) |
2. Linux常用操作指令
2.1 查看目录
| 命令(list) | 含义 |
|---|
| ls | 查看当前目录下的所有目录和文件 | | ls -a | 查看当前目录下的所有目录和文件(包括隐藏的文件) | | ls -l | 查看当前目录下的所有目录和文件(列表查看,显示更多信息),与命令"ll"效果一样 | | ls -r | 将文件根据建立时间先后顺序列出 | | ls -R | 连同子目录内容一起列出(递归列出),即该目录所有文件都会显示 |
2.2 切换目录
| 命令(change directory) | 含义 |
|---|
| cd / | 切换到根目录 | | cd .. | 切换到上一级目录 | | cd ~ | 切换到home目录 | | cd - | 切换到上次访问的目录 | | cd /usr | 切换到根目录下的usr目录 |
2.3 查看当前路径
| 命令 | 含义 |
|---|
| pwd | 显示当前工作目录,获取当前所在目录的绝对路径 |
2.4 创建目录
| 命令(make directory) | 含义 |
|---|
| mkdir aaa | 在当前目录下创建一个名位aaa的目录 | | mkdir /usr/aaa | 在指定目录下创建一个名为aaa的目录 |
创建文件
2.5 删除目录或文件
| 命令(remove) | 含义 |
|---|
| rm 文件 | 删除当前目录下的文件 | | rm -f 文件 | 删除当前目录下的文件(不询问) | | rm -r aaa | 递归删除当前目录下aaa目录 | | rm -rf aaa | 递归删除当前目录下aaa目录(不询问) | | rm -rf * | 将当前目录下所有目录和文件全部删除 | | rm -rf /* | 将根目录下所有文件全部删除(谨慎使用) |
2.6 修改或移动目录
| 命令(move) | 含义 |
|---|
| mv 当前文件名 新文件名 | 修改文件名 | | mv 文件 目录 | 将文件移动到目录中 | | mv 源目录 dest目录/ | dest目录已存在,将源目录移动到 dest 目录中; dest目录不存在源目录改名为目录名 dest目录 | | mv ~/home/project/11 ~/home/project/zz | 当前在根目录/下,把 home/project 下的 11 文件夹,移动到 home/project /zz路径下 | | rename ‘template’ ‘apb’ * | 将当前目录下,所有文件名中带有template修改为apb,例如template_xx.sv改为apb_xx.sv |
2.7 拷贝目录
| 命令(copy) | 含义 |
|---|
| cp [选项] 源文件 目标文件/目标目录 | 复制源文件并将名字修改为目标文件名或复制源文件到目标目录下 | | cp -r dir1/ dir2/ | 复制目录1到目录2下 | | cp -r | 递归复制文件和目录 | | cp -f | 若目标文件存在,直接覆盖 |
2.8 文件权限
文件权限简介:
'r' 代表可读(4),'w' 代表可写(2),'x' 代表执行权限(1),括号内代表"8421法"
文件权限信息示例:- rwx rw- r--
-第一位:'-'就代表是文件,'d'代表是文件夹 -第一组三位:拥有者的权限
第二组三位:拥有者所在的组,组员的权限 -第三组三位:代表的是其他用户的权限
| 命令(change mode) | 含义 |
|---|
| chmod +x a.txt | 普通授权 | | chmod 777 a.txt | 8421法(/1+2+4=7,"7"说明授予所有权限) |
2.9 查找文件
| 命令 | 含义 |
|---|
| find . -name "*. c" | 将目前目录及其子目录下所有延伸档名是 c 的文件列出来 | | find . -type f | 将目前目录其其下子目录中所有一般文件列出 | | find . -name error -print | 查找error的文件 | | which | 从环境变量问价中的path目录中查找,且which查找到的都是可执行文件 | | whereis | 与which类似,查询的会更多,会查找相关的man文件 |
2.10 文件统计
| 命令(wc) | 含义 |
|---|
| wc -c | 显示字节数 | | wc -l | 显示行数 | | wc -w | 显示字数 |
2.11 文件显示
| 命令 | 含义 |
|---|
| more<选项>[文件] | 显示文件内容,每次显示一屏文本,退出Q | | less<选项>[文件] | 分屏显示文件内容,pageup,pagedown翻页,退出Q | | head<选项>[文件] | 显示头若干行(-5五行,-q不显示标题) | | cat<选项>[文件] | 显示文件 | | | | du -sh | 查看当前文件总和占用 | | du -sh * | 每个文件的占用情况 | | du -h | 递归显示文件占用情况 |
2.12 压缩文件
| 命令(tape archive) | 含义 |
|---|
| tar <主选项><辅选项>[存档文件名] [文件或目录] | 打包命令 | | 选项c,x,f,v,z | 压缩,解压,档案名, | | tar -cvf test.tar xx文件 | 打包 | | tar -xvf test.tar | 解压 | | tar -czvf test.tar.gz xx文件 | 压缩包 | | tar -xzvf test.tar.gz | 解压缩包 | | tar -tvf test.tar | 只查看,不解压 |
2.13 查看进程
2.14 which
which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
| 命令 | 含义 |
|---|
| -n | 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名 | | -p | 与-n参数相同,但此处的包括了文件的路径 | | -w | 指定输出时栏位的宽度 | | -V | 显示版本信息 | | whereis 命令 | 寻找命令位置 |
2.15 管道符
| 命令 | 含义 |
|---|
| | | 通常放在两个命令之间,将前一个命令输出作为下一个命令的输入 | | ls -a 文件 | grep "high" | 打开文件,搜索high |
2.16 其他
| 命令 | 含义 |
|---|
| whami | 查看用户当前使用的账户名 | | who | 查看当前哪些用户登录到系统中 | | w | 查看有哪些用户登录在线 | | clear | 清屏 | | man <选项>[命令名称] | man wc 查看命令 | | wc --help | 查看命令的使用方法 | | history | 查看先前指令 | | ; | 多条指令执行 | | ctrl+z ->fg | 挂起 ->恢复 | | ctrl+c | 终止 | | ln -s [源文件] [目标文件] | 创建目录直接找到对应的目录 |
2.17 Linux常用的文本指令
三剑客:grep、sed、awk
1、正则表达式
在说这三个命令前我们要插入一个小插曲就是正则表达式。正则表达式是由一些具有特殊含义的字符组成的字符串,多用于查找、替换符合规则的字符串。正则表达式就好比一个模版,三剑客能读懂这个模版。
1.元字符:即为有特定含义的字符,常见的元字符如下
| 元字符 | 功能 | 说明 |
|---|
| . | 匹配任意一个字符 | 表示任意一个字符 | | ^ | 匹配行首 | 表示以某个字符开头 | | $ | 匹配行尾 | 表示以某个字符结尾 | | ^$ | 空行 | 表示空行的意思 | | * | 匹配任意单个字符 | 表示重复的任意多个字符 | | [] | 匹配指定范围内的任意单个字符 | 表示过滤括号内的字符 | | [^] | 匹配不在指定范围内的字符 | 表示排除指定范围内的字符 | | .* | 匹配任意长度任意字符,不包括0次 | 就是代表任意多个字符 |
2、grep
option:
| 命令 | 含义 |
|---|
| grep -i "the" demo_file | 在文件中查找字符串(不区分大小写) | | grep -r "ramesh" * | 在一个文件夹中递归查询包含指定字符串的文件 | | ls -l > file.txt | 新建一个新文件 | | ls -l >> file.txt | 将内容输出到已有文件的后面 | | grep errror * -r > error.txt | 定向到后面文件,然后gvim打开 | | grep -n -i "i2c" top.sv | 在top.sv中搜索i2c字符串 | | grep -n -r -w "i2c" ./vip/ | -r表示递归调用;-w表示只搜索i2c |
3、awk
awk [options] 'script' file1 file2, ...
awk [options] 'PATTERN {acticon}' file1 file2, ...
格式说明:
-
pattern部分决定动作语句何时触发及触发事件:BEGIN、END -
action 对数据进行处理,放在{}内指明:print、printf -
最常用的是 print,默认以空白字符分隔 -
options 参数:输入分隔符,默认以空白字符分隔,通过 -F 选项来执行分隔符
4、sed
选项:
-
-n:不输出模式空间内容到屏幕,即不自动打印 -
-e:多点编辑 -
-f /PATH/SCRIPT_FILE:从指定文件中读取编辑脚本 -
-r:支持使用扩展正则表达式 -
-i:直接编辑文件 -
-i.bak:备份文件并原处编辑
script 地址定界
-
不给地址:对全文进行处理 -
单地址:#:指定的行; $:最后一行
/pattern/:被此处模式所能够匹配到的每一行
编辑命令
-
d 删除模式空间匹配的行,并立即启用下一轮循环 -
p 显示符合条件的行,追加到默认输出之后 -
a []text1 在指定行后面追加文本,支持使用\n实现多行追加 -
i []text 在行前面插入文本 -
c []text 替换行为单行或多行文本 -
w /path/somefile 保存模式匹配的行至指定文件 -
r /path/somefile 读取指定文件的文本至模式空间中匹配到的行后 -
= 为模式空间中的行打印行号 -
! 模式空间中匹配行取反处理 -
s///:查找替换,支持使用其它分隔符,s@@@,s###
替换标记:
-
g 行内全局替换 -
p 显示替换成功的行 -
w /PATH/TO/SOMEFILE 将替换成功的行保存至文件中
修改文件内容:
| 命令 | 含义 |
|---|
| sed -i 's/template/apb/g' config.sv | 修改单个文件中的内容,将当前目录下的 config.sv 的文件内的字符串“template” 改为 “apb”。 | | sed -i 's/template/apb/g' *.sv | 批量修改文件内容,将当前目录下所有.sv的文件内的 字符串“template” 改为 “apb” | | :%s/template/apb/g | 在vim中输入命令,修改文件内容也可以在vim中修改文件中所有的字符串“template”为 “apb”。 |
2.18 Linux快捷键
| 命令 | 含义 |
|---|
| clear或ctrl+L | 清屏 | | tab | 补全 | | ctrl+a | 光标迅速回到行首 | | ctrl+e | 光标迅速回到行尾 | | ctrl+c | 终止命令运行 | | ctrl+insert | 复制 | | shift+insert | 粘贴 | | ctrl+u | 剪切光标位置到行首的字符 | | ctrl+k | 剪切光标位置到行尾的字符 | | ctrl+y | 剪切的进行粘贴 | | ctrl+D | 退出当前Xshell |
3.bashrc文件
在个人家目录下有个 ~/.bashrc 文件设置linux的快捷键等,下面是以一些常用的设置。 - # Source global definitions
- if [ -f /etc/bashrc ]; then
- . /etc/bashrc
- fi
- #set route
- export PS1='/[\e[0;33m\][\u@neumem $PWD/]\[\e[m\]$'
- function cd {
- builtin cd "$@" && ls
- }
- #mouse copy
- vncconfig -nowin&
- export SVN_EDITOR=vim
复制代码
|