1.终端
方式1:通过鼠标左键点击终端图标。
方式2:使用快捷键 Ctrl Alt T 打开一个新终端。
方式3:使用快捷键 Ctrl Shift N 打开一个同路径新终端。
方式4:使用快捷键 Ctrl Shift T 打开一个同路径新终端(同一个终端中的多个标签)
终端字体调整
放大:Ctrl Shift +
缩小:Ctrl -
复制粘贴
复制:Ctrl Shift C
粘贴:Ctrl Shift V
命令行提示符说明
linux@ubuntu:~$
linux 当前使用的用户
@ 分隔符
ubuntu 主机名
: 分隔符
~ 当前所在的路径
$ 表示当前用户的权限
linux文件系统的结构说明
linux的路径间用 / 分割
绝对路径和相对路径
绝对路径:相对与根目录的路径
如: /home/linux/目录1/文件11
相对路径:相对于当前所在路径的路径 ./ 表示当前路径 ../ 表示上一级路径
如:./目录1/文件11 表示操作当前路径下的目录1下的文件11
../文件1 表示操作上一级目录下的文件1
1.linux常用命令
ls命令
ls 列出当前路径下的所有文件
ls 文件名 如果是文件名是普通文件、就显示该文件名,如果是目录文件,就会显示目录下的内容
ls -a 列出当前路径下的所有文件以及隐藏文件(以.开头的文件是隐藏文件)
ls -l 列出当前路径下的所有文件,并显示文件的详细信息
ls -lh 列出当前路径下的所有文件 并以 K M G 等单位显示文件的详细信息
ls -lah ../../ 查看上一级的上一级目录下的所有文件以及隐藏文件并以 K M G 等单位显示文件的详细信息
文件的详细信息说明:
-rw-rw-r-- 1 linux linux 28 10月 28 11:47 file.txt
- 文件的类型,linux系统文件类型 (bsp-lcd)
b 块设备文件
s 套接字文件
p 管道文件
- 普通文件
l 小写的L 链接文件
c 字符设备文件
d 目录文件
rwxrw-r-- 文件的权限,分为三组(所属用户、所属组、其他人的权限) 每组都是 rwx
r 读权限
w 写权限
x 执行权限
如果没有权限显示的就是 -
1 文件的硬链接个数
linux 文件的所属用户
linux 文件的所属组
28 文件的大小 单位是 字节-Byte
常用存储大小表示:
1Byte = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB =1024GB
10月 28 11:47 文件最后一次被修改的时间
file.txt 文件名
cd命令
cd 目录名 进入指定的目录
cd ~ 进入用户的家目录 也可以直接 cd 回车
cd / 进入根目录
cd . 进入当前目录
cd .. 进入上级目录
cd - 进入上一次所在的目录
whoami 命令
显示当前使用的用户名
pwd 命令
显示当前所在的绝对路径
mkdir 命令
mkdir dir1 在当前目录下创建一个目录文件 名为dir1
mkdir ~/dir2 在当前用户的家目录下创建一个目录文件 名为dir2
mkdir ../dir3 在上一级目录下创建一个目录文件 名为dir3
mkdir dir4 dir5 dir6 在当前路径下并列创建三个目录文件 分别名为 dir4 dir5 dir6
mkdir -p dir7/dir8/dir9 在当前目录下以嵌套的方式创建 dir7/dir8/dir9
touch 命令
touch file 如果文件file不存在 表示新建一个普通文件 名为file
如果文件file已经存在 表示更新文件的时间戳(文件最后修改的时间)
rm 命令
rm file 删除指定的文件
rm -r dir 如果删除的是一个目录需要加 -r 选项
rm -f file 忽略提示信息 直接删除
rm -rf 目录名/文件名 删除目录和文件时忽略提示信息直接删除
cp 命令
cp file1 file2 如果文件file2不存在 表示将file1 复制一份取名为file2
如果文件file2已存在 表示将file1 复制一份取名为file2 覆盖原来的file2
cp file dir 如果目录dir中没有名为file的文件 表示将文件file复制一份放到目录dir中去
如果目录dir中已有名为file的文件 表示将文件file复制一份放到目录dir中去
并覆盖原来的file
cp -r dir1 dir2 如果目录dir2不存在 表示将目录dir1复制一份取名为dir2
如果目录dir2已经存在 表示将目录dir1复制一份放到目录dir2里面
mv 命令
mv file1 file2 如果文件file2不存在 表示将file1重命名为file2
如果文件file2已存在 表示将file1重命名为file2 覆盖原来的file2
mv file dir 如果目录dir中没有名为file的文件 表示将文件file移动到目录dir中去
如果目录dir中已有名为file的文件 表示将文件file移动到目录dir中去
并覆盖原来的file
mv dir1 dir2 如果目录dir2不存在 表示将目录dir1重命名为dir2
如果目录dir2已经存在 表示将目录dir1移动到目录dir2里面
c文件编译命令
gcc xxx.c xxx.c 是你自己的.c文件名
gcc xxx.c -o diy_name xxx.c 是你自己的.c文件名 diy_name 是你想生成的可执行文件名
gcc 编译C程序的流程 : 预处理--》编译--》汇编--》链接
gcc -E xxx.c -o xxx.i 删除注释、展开头文件、替换宏定义
gcc -S xxx.i -o xxx.s 生成汇编文件
gcc -c xxx.s -o xxx.o 将汇编文件生成二进制的目标文件
gcc xxx.o -o a.out 链接对个目标文件以及库文件,生成最终的可执行文件
其他指令
clear 清屏 使用快捷键 Ctrl l
su 用户名 切换到指定的用户 需要密码 如 su root 切换到root用户
exit 如果涉及到用户切换 表示退回到上一个用户
如果已经是最开始的用户了 再执行 exit 表示关闭整个终端
tab键补全 tab键可以用来补全命令或者文件名
查看Ubuntu版本:cat /etc/issue
查看内核版本:uname -a
链接文件
创建软链接文件的方式:
ln -s 被链接的文件 要生成的链接文件
创建软链接文件的方式:
ln 被链接的文件 要生成的链接文件
磁盘相关的命令
查看系统中的磁盘信息
sudo fdisk -l
查看磁盘的使用率
df -h
挂载磁盘的命令
挂载
sudo mount 设备名 要挂载的目录
解除挂载
sudo umount 设备名
指定磁盘的类型
FAT32 不能存储单个的超过4G的文件 sudo mkfs.fat 设备名
NTFS 可以存储单个的超过4G的文件 sudo mkfs.ntfs 设备名
查看文件内容的命令
cat 命令
cat 文件名 显示文件内容所有内容
cat -n 文件名 带行号显示文件所有内容
head 命令
head 文件名 显示文件开头的内容 默认显示前10行
head -n 5 文件名 显示文件前5行内容
head -5 文件名 显示文件前5行内容
tail 命令
tail 文件名 显示文件结尾的内容 默认显示后10行
tail -n 5 文件名 显示文件后5行内容
tail -5 文件名 显示文件后5行内容
| 管道符:作用是将前面命令的结果作为后面命令的参数
head -n 100 file | tail -n 10 查看文件第91-100行的内容
head -n 210 file | tail -n 5 查看文件第206-210行的内容
tail -f 文件名 动态的显示文件内容新增的情况
检索文件内容的命令--grep
基本用法:
grep "string" file 在文件file中检索所有包含string的行
grep命令常用选项:
-n 带行号显示
-i 忽略大小写
-w 精确查找 单词必须独立出现 有前缀和后缀都不行
-v 反选 检索不包含指定单词的行
-R 递归检索,可以查找子目录下的文件中的内容
常用的用法:
grep -nR "hqyj" * 在当前目录及子目录下的所有文件中检索包含hqyj的行
关于grep的字符串的写法:
"^string" 检索以string开头的行
"string$" 检索以string结尾的行
"^string$" 检索string独立成行的行
查找文件的命令--find
根据名字查找
find 路径 -name file 在指定的路径及子目录下查找所有名为file的文件
例如:
find /home/linux/dir -name a.c 在/home/linux/dir及子目录下查找所有名为a.c的文件
find ./ -name a.c 在当前目录及子目录下查找所有名为a.c的文件
根据类型查找
find 路径 -type 类型 在指定的路径及子目录下查找所有指定类型的文件
类型: bspflcd
例如:
find ./ -type f 在当前目录及子目录下查找所有普通文件
find /home/linux -type d 在/home/linux及子目录下查找所有目录文件
find ./ -type f | grep "\.c$" 当前目录及子目录下所有.c结尾的文件
文件权限管理
修改文件权限的方式--chmod
注意:只有文件的所属用户和root用户可以修改文件的权限
文件的权限
rwxrw-r--
文件共有三组权限 分别对应 所属用户的权限 所属组的权限 其他人的权限
每组权限有三个:
r 读权限
w 写权限
x 执行权限
- 没有对应的权限
使用 + / - 的方式修改
u 所属用户 user
g 所属组 group
o 其他人 other
a 所有人 all
例如:
chmod u+r 文件名 将文件对所属用户的权限加上一个读权限
chmod g-w 文件名 将文件对所属组的权限减去一个写权限
chmod o+w 文件名 将文件对其他人的权限加上一个写权限
chmod a+x 文件名 将文件对所有人的权限都加上一个执行权限
使用八进制数来修改
linux 系统使用三位八进制数来表示文件的权限
rwxrw-r-- 0764
r-----rw- 0406
rwxrwxrwx 0777
chmod 0777 文件名 将文件的权限设置成 rwxrwxrwx
chmod 0664 文件名 将文件的权限设置成 rw-rw-r--
chmod 0765 文件名 将文件的权限设置成 rwxrw-r-x
通配符
*
通配任意长度的任意字符
原有文件:
a.c a.txt b.c b.txt c.c d.c file1.c file3.c kaimen.c
A.c A.txt B.c B.txt C.c D.c file2.c file6.c ksakjdhfkjashdf.c
执行 ls *.c 结果为:
a.c b.c c.c d.c file1.c file3.c kaimen.c
A.c B.c C.c D.c file2.c file6.c ksakjdhfkjashdf.c
执行 ls *.txt 结果为:
a.txt A.txt b.txt B.txt
执行 ls k* 结果为:
kaimen.c ksakjdhfkjashdf.c
?
通配一个长度的任意字符
原有文件:
a.c a.txt b.c b.txt c.c d.c file1.c file3.c kaimen.c
A.c A.txt B.c B.txt C.c D.c file2.c file6.c ksakjdhfkjashdf.c
执行 ls ?.c 结果为:
a.c A.c b.c B.c c.c C.c d.c D.c
执行 ls ?????.c 结果为:
file1.c file2.c file3.c file6.c
[字符1字符2..字符n]
通配[]里面的任意一个字符
原有文件:
a.c a.txt b.c b.txt c.c d.c file1.c file3.c kaimen.c
A.c A.txt B.c B.txt C.c D.c file2.c file6.c ksakjdhfkjashdf.c
执行 ls [acBxyz].c 结果为:
a.c B.c c.c
[起始字符-结束字符]
通配起始字符到结束字符之间的任意一个字符
原有文件:
a.c a.txt b.c b.txt c.c d.c file1.c file3.c kaimen.c
A.c A.txt B.c B.txt C.c D.c file2.c file6.c ksakjdhfkjashdf.c
执行 ls file[2-5].c 结果为:
file2.c file3.c
执行 ls [a-c].c 结果为:
a.c b.c c.c
[^字符1字符2..字符n]
通配除了[]里面的任意一个字符
原有文件:
a.c a.txt b.c b.txt c.c d.c file1.c file3.c kaimen.c
A.c A.txt B.c B.txt C.c D.c file2.c file6.c ksakjdhfkjashdf.c
执行 ls [^AaB].c 结果为:
b.c c.c C.c d.c D.c
常用的用法:
grep -nR "hqyj" * 在当前目录及子目录下的所有文件中检索包含hqyj的行
关于grep的字符串的写法:
"^string" 检索以string开头的行
"string$" 检索以string结尾的行
"^string$" 检索string独立成行的行
查找文件的命令--find
安装软件命令
.deb (Ubuntu使用)
离线安装
需要有安装包,不需要Ubuntu联网
不会检查软件的依赖,如果有依赖的话,需要自己额外安装
安装软件
sudo dpkg -i 软件包路径和名字
查看软件的使用方式
运行软件 直接敲软件名即可--》如终端输入 firefox 打开火狐浏览器
man 软件名
sudo dpkg -l(小写的L) 软件名 查看安装的软件的信息
sudo dpkg -L 软件名 查看软件的安装路径
sudo dpkg -r 软件名 卸载软件(会保留配置文件)
sudo dpkg -P 软件名 完全卸载
在线安装
需要Ubuntu联网,不需要有安装包
会检查软件的依赖,如果有依赖,会一并安装到系统中
测试自己的Ubuntu是否联网: ping mp.csdn.net
注意:服务器中有每个软件仓库的地址
由于用户所在的地理位置不同,选择不同的服务器下载速度也不同
用户下载软件,应该先选择一个适合自己的服务器。
选择服务器的流程:
点击屏幕左下角的 显示应用程序---》软件更新器----》设置----》Ubuntu软件选项卡----》
----》所有的复选框都勾选(尤其是源代码这一项)---》点击下载自后面的下拉箭头----》
----》其他----》选择合适的服务器---》选择服务器----》关闭---》关闭
选择成功后 会在 /etc/apt/sources.list 文件中显示选择的镜像服务器的地址
更新本地源:将服务器上的软件的索引信息同步到自己的本地
sudo apt-get update
/var/lib/apt/lists 目录中保存的就是同步过来的索引信息
安装软件
sudo apt-get install 软件名
sudo apt-get download 软件名 只下载不安装
sudo apt-get source 软件名 下载源代码
sudo apt-get remove 软件名 卸载软件
sudo apt-get clean 清理安装包
安装包会残留在 /var/cache/apt/archives 目录下 clean就是删除该目录下所有 .deb 结尾的文件
一些linux中的小软件
sudo apt-get install cmatrix //代码雨
压缩和归档的命令
压缩方式:
gzip
bzip2
xz
归档的同时进行压缩:
tar -zcvf xxx.tar.gz xxx 归档并按gzip格式压缩
tar -zxvf xxx.tar.gz 解压缩并解归档
tar -jcvf xxx.tar.bz2 xxx 归档并按bzip2格式压缩
tar -jxvf xxx.tar.bz2 解压缩并解归档
tar -Jcvf xxx.tar.xz xxx 归档并按xz格式压缩
tar -Jxvf xxx.tar.xz 解压缩并解归档
通用的解压缩并解归档的命令(三种格式都可以)
tar -xvf xxx.tar.gz 解压缩并解归档
环境变量
常见的环境变量
HOME 保存当前使用的用户的家目录
PWD 保存当前所在的路径
OLDPWD 保存上一次所在的路径
SHELL 保存的当前用户使用的默认的命令行解析器
PS1 保存命令行提示符显示的内容及配色方案的
PATH 保存可执行文件路径
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
声明环境变量的方式
export 环境变量名=环境变量值 ----覆盖写
export 环境变量名=$环境变量名:新的值 ----追加写
只对当前终端生效
直接在终端执行命令 export 环境变量名=环境变量值 立即生效
对当前用户生效
~/.bashrc 文件中存放当前用户每次打开终端要执行的脚本 可以将有效语句添加到该文件中
执行命令 source ~/.bashrc 立即生效
对系统中的所有用户生效
/etc/profile文件中存放所有用户打开终端要执行的脚本 可以将有效语句添加到该文件中
执行命令 source ~/.bashrc 立即生效