type
status
date
slug
summary
tags
category
Property
Feb 7, 2023 12:34 PM
icon
password
属性
属性 1
描述
Origin
URL
一、Linux 基础1.1、Linux 的特点1.1.1、多任务系统1.1.2、多用户系统1.2、Shell 简介1.3、Shell 命令示例1.4、Linux 树型目录结构1.4.1、根目录1.5、Linux 文件系统1.5.1、绝对路径1.5.2、相对路径1.6、常用基本命令1.6.1、创建目录1.6.2、链接文件1.6.3、文件显示(初级)1.6.4、rw- r-- r--释义1.6.5、改变文件 / 目录权限1.6.6、文件显示(高级)1.6.7、文件(目录)复制1.6.8、快速复制粘贴(重要,可提高工作效率)1.6.9、创建文件1.6.10、删除文件1.6.11、移动文件1.6.12、文件内容统计1.6.13、查找文件1.6.14、查找文件内容1.6.15、排序1.6.16、比较文件内容1.6.17、重定向1.6.18、管道1.6.19、文件 / 文件夹打包、压缩和解压缩1.6.20、关闭应用程序1.7、常用系统命令1.7.1、命令别名(快捷键)1.7.2、查看进程1.7.3、查看控件占用1.7.4、联机帮助1.7.5、一些高级用法参考资料
一、Linux 基础
1.1、Linux 的特点
1.1.1、多任务系统
- 在 Linux 系统汇总可以同时执行多个任务
1.1.2、多用户系统
- 对多用户的支持使得多个用户能在同一时间登陆和使用系统,多个终端和键盘可以同时与同一台计算机建立连接。
- 一个用户能够在不同终端多次登陆同一个系统
- 无论从开发小组还是某个使用者角度看,都有一个很大优越性:一个工作组的成员能同时访问同一些数据。
1.2、Shell 简介
shell 脚本能提高用户操作和管理员进行系统管理的效率,一般操作步骤:
- 1、编辑器编写脚本程序
- 2、shell 做解释程序,非交互地执行脚本,两种执行方式:
- 用 shell 命令执行脚本文件:
source xxx
- 给脚本文件添加执行权限,用
./ xxx
执行命令
1.3、Shell 命令示例
whoami
:查看用户自己当前使用的账户名
who
:查看当前有哪些用户登录到系统中
w
:查看有哪些用户登录在线,同时显示用户当前的工作
clear
:清屏命令。
1.4、Linux 树型目录结构
- Linux 系统以文件目录的方式来组织和管理系统中的所有文件。
- 所谓文件目录就是将所有文件的说明信息采用树型结构组织起来,即常说的目录。
- 系统建立每一个目录时,都会自动设定两个目录文件:
.
- 当前目录;..
- 父目录
1.4.1、根目录
- Linux 文件系统的树型层次以根目录
/
为起点,所有其他的目录都由根目录派生二来用户可以浏览整个系统,可以进入任何一个已授权进入的目录,访问哪里的文件。
- 根目录(系统目录)是 Linux 系统中的特殊目录。Linux 是一个多用户系统,操作系统本身的驻留程序存放在以根目录开始的专用目录中。
1.5、Linux 文件系统
1.5.1、绝对路径
- 又称全路径名,指以根目录打头的路径名。绝对路径名确定文件位置和工作目录无关。
1.5.2、相对路径
- 由这个文件所在的路径引起的跟其它文件(或文件夹)的路径关系。
- 显示当前目录:
pwd
(Present Work Directory)
- 复制当前目录下的代码到用户目录:
cp -rf ./asic_flow ~
- 进入当前工作目录:
cd [目录名]
(Change Directory) cd ~
: 返回 home 目录cd ..
: 返回上一级目录
1.6、常用基本命令
1.6.1、创建目录
mkdir <-m模式> [目录]
(Make Directory)- 选项
<-m模式>
:建立目录时,设置目录的权限。(m
用的比较少) - 尖括号里的是可选的,方括号是必须有的!
- eg:
mkdir tmp
- 需要帮助
mkdir --help
1.6.2、链接文件
ln <选项> [目标] [链接名]
(Link )
ln <选项> [目标] [目录]
- 作用:给系统中已有的某个文件制定另一个可用于访问它的名称
- 软链接:
ln -s source des
- 通过将文件夹 1 和 2 关联,那么访问文件夹 1 就可以知道文件夹 2 里面的东西,链接的文件夹是不占内存空间的,能看到,但是不能更改我的东西。
1.6.3、文件显示(初级)
ls <选项> [文件目录列表]
:(List)
- 选项:
a(all)
,l(long)
,t(time)
,s(size)
,R(Recursive)
(注意该选项是大写),-version
,-help
a
所有文件,l
显示文件格式,t和-s
用的少,R
展开子级目录
- eg:
ls --help | more
:分屏显示 |
:表示管道符,在一个命令行同时执行左右两个命令。more
:分屏显示- 按空格可以显示下一页
- eg:
ls -rta /etc
:递归显示目录 / etc 下所有的文件及目录,并按文件的最新修改时间排序显示。
- 常用的命令是:
ls -al
,简写命令为:ll
1.6.4、rw- r-- r--
释义
- 第一位:文件类型,每一类用一个字符来表示:
:常规文件
d
:目录文件l
:链接文件p
:管道设备文件b
:块特殊设备文件c
:字符特殊设备文件
- 其余 9 位:文件权限由三个字符串组成:文件所有者(
u
,user)的权限、组中其他人(g
,group)的权限、系统中其他人(o
,other)的权限。 - 每个字符串又由三个字符组成,依次表示对文件读(
r
),写(w
)、执行(x
)权限
1.6.5、改变文件 / 目录权限
- 1)使用字符串设置权限
chmod ugo+r xxx
等价于chmod a+r xxx
(+
表示增加属性,a
代表 all)chmod ug+w,o-w xxx yyy
chmod -R a+r *
- 2)使用八进制设置权限
- 三个八进制数字分别表示
u/g/o
的权限 - 读
r(4)
、写w(2)
、执行x(1)
- eg:
chmod 777 xxx
等价于chmod a+rwx xxx
- eg:
chmod 772 xxx
等价于chmod ug+rwx,o+w xxx
1.6.6、文件显示(高级)
- 显示问价那内容,每次显示一屏文本。退出按
Q
。
- 选项:
num
:指定一个整数,表示一屏显示多少行+num
:从行号 num 开始显示c
:不滚屏,在显示下一屏之前先清屏
- eg:
more xxx
- 分屏显示文件的内容,按
PageUp
,PageDown
翻页,退出按Q
。More 只能通过空格向下翻页!
- eg:
less xxx
- 显示指定文件的开头若干行,显示行数的默认值为 10。
- eg:
head xxx
- 选项:
n
:显示前面 n 行,eg:head -5 xxx
q
:不显示文件的标题,eg:head -q xxx
v
:时钟显示文件的标题,eg:head -v xxx
c n
:显示前面的 n 个字节,eg:head -c 10 xxx
- 显示指定文件的结尾若干行,显示行数的默认值为 10。
- 链接文件并打印(显示)到标注输出设备(屏幕)上
ctrl+s
:停止滚屏
ctrl+q
:恢复滚屏
ctrl+c
:中断命令
选项 | 说明 |
-b | 计算所有非空输出行,开始为 1 |
-e | 在每行末尾显示 $ 符号 |
-n | 计算所有输出行,开始为 1 |
-s | 将相连的多个空行用单一空行代替 |
1.6.7、文件(目录)复制
选项 | 说明 |
-i | 提示是否覆盖已存在的目标文件(默认有) |
-p | 保持原先文件的所有者,组权限和时间标志(默认有) |
-f | 强制覆盖,不加提示 |
-r | 递归拷贝目录,将所有非目录文件当普通文件拷贝 |
-v | 详细,显示文件的复制速度 |
-a | 拷贝文件夹 |
1.6.8、快速复制粘贴(重要,可提高工作效率)
- 鼠标左键拖曳选择需要复制的内容
- 鼠标中键进行粘贴
1.6.9、创建文件
- eg:
touch new.txt
1.6.10、删除文件
选项 | 说明 |
-r | 递归将目录以下文件逐层删除 |
-i | 删除前询问确认 |
-f | 指定强行删除无需确认,即使原文件属性设为只读 |
-v | 详细显示文件的删除速度 |
1.6.11、移动文件
选项 | 说明 |
-f | 若目标文件已存在,不提示直接覆盖已有文件 |
-i | 若目标文件有同名,则先询问是否覆盖已有文件 |
-v | 详细显示文件的移动速度 |
1.6.12、文件内容统计
- 统计指定文件中的字节数、字数、行数。
选项 | 说明 |
-c | 统计字节数 |
-l | 统计行数 |
-w | 统计字数 |
1.6.13、查找文件
- eg:
find ./ -name error
:在当前目录下查找名为error
的文件。
- eg:
find ./ -name "*.v"
:在当前目录下查找所有的.v
文件
- eg:
find ./ -name *test*
:在当前目录下查找名字中间有test
字样的文件
1.6.14、查找文件内容
- eg:
grep error *
:所有文件内容中含有error
字样的文件
- eg:
grep error * -r
:r
表示递归查找
- eg:
grep error * -i
:i
表示不区分大小写(ignore)
- eg:
grep "err*" *
:表示通配符(通配符只能在后面加!)
grep
只能查找固定的字符,egrep
= grep -e
(extend)可以查找正则表达式查找文件里面的内容
-r
会对当前目录下的文件夹里面的内容进行查找,查找的时间也稍微长一点,不加只会查找当前目录下的文件,也可以使用通配符,还可以指定文件,但是就不用加通配符*
了。1.6.15、排序
- 默认按照第一个数字大小进行排列
n
就是按照数字大小的方式排列
1.6.16、比较文件内容
选项 | 说明 |
-b | 忽略空格造成的不同 |
-q | 只报告什么地方不同,不报告具体的不同信息 |
-i | 忽略大小写的变化 |
-r | 在比较目录时比较所有子目录 |
-s | 两个文件相同时才报告 |
-v | 在标准输出上输出版本信息并退出 |
-y | 结果并列放置 |
- eg:
diff file1 file2 -y
- eg:
diff -r dir1 dir2 -y
注:用gvimdiff更方便!
1.6.17、重定向
重定向:将文件的标准输出重新定向输出到文件,或将数据文件作为另一程序的标准输入内容。
- 1)输出重定向(重要)
ls -l > file.txt
:将内容输出到新文件file.txt
中ls -l >> file.txt
:将内容输出到已有文件后面
- 2)输入重定向
grep keyword < file.txt
直接从file.txt
里面找keyword
,等价于grep keyword file.txt
。用的比较少,输出用的多。
1.6.18、管道
管道符
|
,通常放在两个命令之间,将前一个命令的输出作为下一个命令的输入。Linux 通常是一个命令,但是想在原来的基础上在运行一个,就需要管道符。管道符核心:上一个命令的结果就是下一个命令的输入。
- eg:
cat sample.txt | grep "High" | wc -l
:显示sample.txt
这个文件,显示内容中搜索High
,最后再统计一下High
行有多少!
1.6.19、文件 / 文件夹打包、压缩和解压缩
tar 文件打包:
tar <主选项> <辅选项> [存档文件名] [文件或目录列表]
- 常用选项:
c
(create,打包)/z
(使用 gzip 压缩)/v
(verbose,详细的)/f
(file,文件夹)/x
(extract,解包)/j
(使用 bzip2 压缩)
- 1)将
/home
目录下所有文件和目录存档,存档名为archive.tar
:tar -cvf archive.tar /home
- 2)解包存档文件
archive.tar
:tar -xvf archive.tar
- 3)不解包存档文件
archive.tar
,只查看内容:tar -tvf archive.tar
- 4)将
/home
目录下所有文件和目录存档,并对存档文件压缩,压缩后文件名archive.tar.gz
:tar -czvf archive.tar.gz /home
- 5)解包以及解压缩
archive.tar.gz
:tar -xzvf archive.tar.gz
1.6.20、关闭应用程序
选项 | 说明 |
-15 | 通知应用程序关闭(不加选项也是默认 -15 ) |
-9 | 强制关闭应用程序 |
1.7、常用系统命令
1.7.1、命令别名(快捷键)
- 为了提高效率,给复杂操作起别名。(注意,等号前后不能有空格)
- eg:
alias ll='ls -al'
- eg:
alias sc='source ~/.bashrc'
- 使用
alias -p
查看现有别名设置
1.7.2、查看进程
- 查看自己使用的进程:
ps -u
- 查看大家使用的进程:
ps -ef
- 查看实时进程:
top
(使用这个较多) - 实时进程
top
比较占资源,及时q
退出
1.7.3、查看控件占用
- 查看自己空间占用:
du -sh
(disk usage)
- 查看自己各目录的占用情况:
du -h
、du -h --max-depth=1
(当前目录下的第一级目录)
1.7.4、联机帮助
- 1)显示命令的使用方法
man <选项> [命令名]
- 2)help 命令:查看所有 Shell 命令的用法
- eg:查看 cd 命令的使用方法:
cd --help
- 3)whereis 命令:寻找一个命令所在的位置
whereis <选项> [命令名]
- 4)which 命令:输出命令的全路径到屏幕上 (更常用)
1.7.5、一些高级用法
- 1)
history
可查看先前的指令
- 2)
向上方向键
可用来执行最近的指令
- 3)
;
来间隔几个指令,可以让指令顺序执行(管道符号异曲同工)
- 4)
tab
键可以直接补齐系统中有的指令
- 5)利用
管道符
可以实现多个指令的组合使用: ps -ef | grep vsim
- 6)
ctrl+z
:挂起
- 7)
fg
:恢复
- 8)
ctrl+c
:终止
参考资料
- 作者:Conor
- 链接:https://www.xzhh.top/article/linux_doc
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。