-
命令解析器
Shell ----- UNIX操作系统
Bash ----- Linux操作系统
本质:根据命令的名字,调用对应的可执行程序 -
Linux快捷键
history 查看历史命令
ctrl + p 在历史的命令记录里向上滚动
ctrl + n 在历史的命令记录里向下滚动
ctrl + b 光标向前移动
ctrl + f 光标向后移动
ctrl + a 光标直接到命令行首
ctrl + e 光标直接到命令行末
backspace/ctrl + h删除光标前面的字符
ctrl + d删除光标后面的字符
ctrl + u删除光标前面的所有字符
table键补全或者提示命令
ls 表示查看(如果后面不跟路径,就表示查看当前的目录,如果后面跟着路径表示查看该路径下的目录)
clear 清屏
pwd(print working directory)显示当前目录的绝对路径 -
Linux系统的目录结构
Linux系统下没有盘符
/ 表示Linux下的根目录- /bin:
bin是Binary的缩写,里面存放的是最经常使用的命令,每一个命令代表一个可执行程序,在terminal里面输入命令然后在在配置环境变量,命令就会找到bin目录,然后执行相对应的程序 - /boot:
这里存放的是启动Linux时使用的一些文件,包括一些连接文件及镜像文件 - /dev:
dev是Device(设备)的缩写,该目录下存放的是Linux的外部设备,在linux中访问设别和访问文件的方式是相同的 - /etc:
这个目录用来存放所有的系统管理所需要的配置文件和子目录 - /home:
用户的主目录,在linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的 - /lib:
这个目录存放着最基本的动态连接共享库,其作用类似于windows里的DLL文件,几乎所有的应用程序都需要用到这些共享库 - /lost-found:
这个目录一般下是空的,当用户非法关机后,这里面就存放了一些文件 - /media
linux系统自动识别一些设备,例如,U盘,光驱等,当自动识别后,linux会把识别的设别挂载到这个目录下 - /mnt
系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了 - /opt
这是给主机额外安装软件所摆放的目录,比如安装一个oracle数据库的时候就可以放到这个目录下,默认是空的 - /proc
这个目录是一个虚拟的目录,他是系统内存的映射,我们可以直接访问这个目录来获取系统信息
这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏弊主机的ping命令,使别人无法ping你的机器 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all - /root
该目录为系统管理员,也称为超级权限者的用户的主目录 - /sbin
S就是super user的意思,这里存放的使系统管理员使用的系统管理程序 - /tmp
这个目录是用来存放一些临时的文件 - /usr(user software resourse)
这是一个非常重要的目录,用户的很多应用程序都放在这个目下,类似于windows下的program files目录
- /bin:
-
用户目录
-
绝对路径 从根目录开始写/home/itcast/aa
-
相对路径 相对于当前的工作目录而言
. 代表当前目录 .. 代表当前目录的上一级 - 在临近路径的两个目录直接切换 cd -
-
sjq@ubuntu
sjq:当前登陆的用户
@: at 在
Ubuntu:主机名
~用户的家目录(宿主目录)
$当前用户为普通用户
#超级用户 – root
-
-
文件和目录操作
文件或目录颜色一般情况 白色:普通文件 蓝色:目录 绿色:可执行文件 红色:压缩文件 青色:链接文件(相当于windows下的快捷方式) 黄色:设备文件(block块、char字符、fifo管道) 灰色:其他文件
-
查看目录
- tree
- ls
ls -a查看目录下的全部内容
ls -l列出来的是详细信息
ls -al列出全部内容的详细信息
-
在目录间切换
Cd + 目录
切换回主目录三种方式:Cd /home/aa Cd ~ Cd
查看当前所在目录 pwd
-
创建目录
创建单一目录:Mkdir + dirname
创建复合目录:mkdir + dir/dir/dir1 -p -
删除目录
删除空目录 Rmdir + 目录名 删除非空目录 Rm + 目录名 + -r Rm + 目录名 + -ri(i代表提示)
-
创建文件
Touch + 文件名(文件不存在,创建文件,文件存在,更新文件时间) -
删除文件
Rm + 文件名 -
拷贝文件或目录
拷贝文件Cp + 文件名 + 目标文件 如果目标文件不存在就创建一个新的文件 如果目标文件存在就覆盖原来的文件
拷贝目录
Cp + 目录名 + 目标目录名 + -r 如果目标目录名不存在,则要创建目标目录名,并进行拷贝 如果目标目录名存在,则要将目录名拷贝到目标目录名下
-
查看文件中的内容
- cat + 文件名(将文件中的内容输出到终端)
- more + 文件名(只能向后翻,不能向前翻)
- less + 文件名(ctrl + p向前翻页、ctrl +n向后翻页、q退出浏览、回车显示下一行、空格显示下一页)
- head + 文件名
- tail + 文件名
-
文件重命名
mv + 源文件名 + 要更改的文件名 -
将文件移动到目录下
mv + 文件名 + 目录名 -
创建软链接(创建快捷方式 文件和目录)
ln -s + 路径(绝对) + 快捷方式的名字 -
创建硬链接(进行文件备份)
直接链接的是硬盘的上inode结点
不能对目录创建硬链接
ln + 文件名 + 硬链接的名字
硬链接不占用空间
每次创建一个硬链接,次数加一
Linux文件系统的存储单位是块
inode – i结点 保存了一些文件信息 通过inode找到对应的文件
-
-
文件或目录的属性
- wc 获取文本文件的信息
- od 查看二进制文件
-t 指定数据的显示格式
参数- c ASCII字符
- D 有符号十进制数
- F 浮点数
- O 八进制数
- U 无符号十进制数
- X 十六进制数
- du 查看当前目录中所有文件的大小
命令:du -h - df 查看磁盘的使用情况
命令:df -h
Which + 命令(查看所在的命令是在哪个目录下,只能查找外部的命令)
-
文件权限、用户、用户组
- 查看当前登陆用户
Whoami - 修改文件权限
-
文字设定法: chmod [who] [+|-|=] [mode] 文件名
who(默认是所有人):文件所有者:u 文件所属组:g 其他人: o 所有人: a
+:添加权限
-:减少权限
=:覆盖原来的权限
mode(权限):r:读 w:写 x:执行
-
数字设定法:
-:没有权限 R:4 W:2 X:1 所有权限7 765 7 --rwx --文件所有者 6 --rw --文件所有组 5 --rx -- 其他人 减权限:chmod -001 temp(给其他人减了执行权限)
-
- 修改文件的所有者和所属组
修改文件的所有者:chown 所有者的名字 文件名(如果没有权限的话,加sudo接用超级用户的权限)
sudo Chown 文件所有者:文件所属组 文件名
修改文件所属组:sudo chgrp 文件所属组 文件名
对于目录来说必须有执行权限,否则无法访问目录里面的内容
- 查看当前登陆用户
-
文件的查找和检索
- 按文件的属性查找
- 按文件名查找
Find + 查找目录 + -name + 文件的名字(文件名字用引号括起来)
文件的名字可以用通配符(*匹配所有的、?匹配一个字符) - 按文件大小
Find + 查找目录 + -size + 文件的大小(+大于 -小于)
Sudo find ~ -size +10M -size -100M(在家目录下查找大于10M小于100M的文件) - 按文件类型
Find + 文件查找目录 + -type + d/f/b/c/s/p/l
创建管道:mkfifo 文件名
- 按文件名查找
- 按文件内容查找
Grep -r + “查找的内容” + 查找的路径
- 按文件的属性查找
-
软件的安装和卸载
-
在线安装
apt-get:安装:sudo apt-get install tree 在线下载安装 移除:sudo apt-get remove tree 更新:sudo apt-get update --更新软件列表 清理所有软件安装包:sudo apt-get clean(实际清理的是/var/jcache/apt/archives目录下的.deb文件)
aptitude:
安装:sudo aptitude install tree 重新安装:sudo aptitude reinstall tree 更新:sudo apt-get update 移除:sudo aptitude remove tree 显示状态:sudo aptitude show tree
-
deb包安装:
安装:sudo dpkg -i xxx.deb 删除:sudo dpkg -r xxx
-
源码安装
- 解压缩源代码包
- 进入到安装目录:cd dir
- 检测文件是否缺失,创建makefile,检测编译环境
- 编译源码,生成库和可执行程序:make
- 把库和可执行程序,安装到系统目录下:sudo make install
- 删除和卸载软件:sudo make distclean
- 上述安装步骤并不是绝对的,应该先查看附带的readme文件
-
下面的是笔者的微信公众号,欢迎关注,会持续更新c++、python、tensorflow、机器学习、深度学习等系列文章