一、linux基础大纲
1、linux基本操作命令,关于命令特殊参数使用。
2、linux系统文件类型,文件权限设置,文件起始权限计算。
3、linux根目录存放的文件是什么?
4、环境变量PATH使用,如何设置环境变量,永久设置环境变量。
5、linux系统man手册的使用方法。
6、安装中文的man手册。
二、linux基本操作命令
1、pwd -> 打印当前的工作路径
2、ls -> 查看目录中的全部文件名
ls 等价于 ls . -> 默认查看当前目录下的全部文件名(不包括隐藏文件)
ls / -> 指定查看根目录下所有的文件名。
ls -a -> 列出当前目录下全部文件名(包括隐藏文件)
ls -a / -> 指定列出根目录下所有的文件名(包括隐藏文件)
ls -l -> 列出当前目录下的全部文件的详细属性
类型 权限 链接数 组名 创建者 大小 修改日期 文件名
d rwxrwxr-x 4 gec gec 4096 Jul 2 2013 Download
- rw-rw-r-- 1 gec gec 65 Jul 3 19:50 test.c
3、cd -> 切换工作路径
cd / -> 直接切换到根目录 绝对路径: 以"/"开头
cd ./../ -> 切换到上一级 相对路径: 以"./"开头,可以省略!
cd -> 直接切换到家目录
cd - -> 切换到刚刚去过的目录,只能记住一次。
~ 等价于 /home/gec
4、touch -> 创建普通文件
touch /home/gec/test.c -> 在家目录下创建一个新的文件叫test.c
touch ./test.c -> 在当前目录下创建一个新的文件叫test.c
如果不在家目录下创建/删除内容,都会提示: Permission denied -> 权限拒绝!
解决方案:
1)切换到超级用户,再执行命令。
sudo su -> 输入密码
touch /test.c -> 在超级用户权限下创建文件
exit -> 切换到普通用户
2)借用超级用户身份,执行命令
sudo touch /test.c
5、 rm -> 删除文件
rm /home/gec/test.c
rm ./test.c
6、 mkdir -> 创建目录
mkdir /home/gec/aaa -> 创建一个新的目录叫aaa
mkdir ./aaa -> 在当前目录下创建新的目录叫aaa
如果当前目录下没有aaa目录,则执行mkdir ./aaa/bbb -> 执行错误,提示aaa目录不存在。
如果说想一次性创建多级父目录,则需要添加-p选项 mkdir ./aaa/bbb -p
7、 cat -> 在终端上显示文本内容
cat /home/gec/test.c -> 使用绝对路径查看家目录下的test.c文件的内容
cat ./test.c -> 使用相对路径查看家目录下的test.c文件的内容
8、 cp -> 拷贝目录/文件
cp test.c aaa -> 把当前目录下的test.c拷贝到当前目录下的aaa目录下
cp ccc/ aaa -r -> 把当前目录下的ccc目录拷贝到aaa目录下,注意处理目录的时候需要添加-r参数!
9、 mv -> 重命名/移动
mv test.c kkk.c -> 把test.c文件名重命名为kkk.c。
mv kkk.c ccc/ -> 把kkk.c移动到ccc/目录。
如何判断mv命令是重命名还是移动?
只需要看第二个参数即可。如果第二个参数是文件名来的,mv就是重命名。如果第二个参数是目录来的,mv就是移动。
mv aaa/ bbb/ -> 把aaa/重命名为bbb/
mv aaa/ -t bbb/ -> 把aaa/移动bbb/中
10、 tar 压缩/解压
在linux下,常见的压缩包格式: .gz结尾 / .bz2结尾
参数:
z: 处理.gz格式的压缩包
j: 处理.bz2格式的压缩包
x: 决定了tar命令是解压命令
c: 决定了tar命令是压缩命令
v: 以可见的方式进行解压,这个参数不是必须。
f: 不可忽略文件
-C 路径: 指定解压之后的路径
例子1:将a.c b.c test.c打包为一个新的压缩包example.tar.gz
1)将这些文件塞到一个目录test_dir/。
2)压缩该目录,变成一个新的压缩包
tar zcvf example.tar.gz test_dir/
例子2: 将example.tar.gz解压到当前目录下aaa目录中
1)首先确保当前目录下有aaa目录
2)解压压缩包到aaa目录中
tar zxvf example.tar.gz -C ./aaa
练习1: 处理bz2结尾的格式压缩包!
11、 chmod 修改文件/目录的权限
1)什么是文件/目录的权限?
可以通过"ls -l"来查看文件/目录权限
结果:
gec@ubuntu:~$ ls -l examples.c
-rw-rw-r-- 1 gec gec 12 Jul 3 19:52 examples.c
rw-rw-r-- -> 就是examples.c的权限
该权限可以分为三个部分处理:
rw-: 创建者权限 user(u) -> 创建者可读可写不可执行
rw-: 组权限 group(g) -> 组可读可写不可执行
r--: 其他人 other(o) -> 其他人可读不可写不可执
权重
r: read -> 读权限 4
w: write -> 写权限 2
x: execute -> 执行权限 1
-: 没有这个位置的权限 0
2)如何修改文件/目录的权限。
单个修改:
公式: chmod (u/g/o)(+/-)(r/w/x) 需要修改的文件的路径
例子1:给examples.c这个文件的创建者添加一个执行权限。
chmod u+x examples.c
例子2:给examples.c这个文件的组删除写的权限
chmod g-w examples.c
多个同时修改:
例子3: 想修改examples.c这个文件的权限为 -wxr--r-x
1.计算修改后的权重? -> 345
2.直接使用chmod命令修改
公式: chmod 权重 需要修改的文件的路径
最终命令:chmod 345 examples.c
3.结果:
-wxr--r-x examples.c
三. 如何判断一个东西是文件还是目录?
1)在linux下不能通过后缀来判断文件的类型,只能通过创建的方式来判断。
原则:
只要是使用touch命令来创建的,无论叫什么名字,都是一个普通文件。
例子: touch dir (dir是一个普通文件)
只要是使用mkdir命令来创建的,无论叫什么名字,都是一个目录文件。
例子: mkdir a.c (a.c是目录文件)
2)使用"ls -l"命令查看类型
类型
d rwxrwxr-x 2 gec gec 4096 Jul 18 09:16 a.c
- rw-rw-r-- 1 gec gec 0 Jul 18 09:16 dir
d: 一定是目录
-: 一定是文件
四、为什么文件的起始权限都是664,目录都是775?
1. 权限对文件/目录有什么影响?
1)文件没有读权限会怎么样?
gedit、vi打不开文件: -> 使用 sudo gedit 文件名还是可以看的。
cat命令提示: cat: Permission denied -> 使用超级用户还是可以看的。
2)文件没有写权限会怎么样?
gedit、vi可以打开文件,但是不可以修改文件的内容。 -> 使用超级用户还是可以修改的
3)文件没有执行权限会怎么样?
执行不了文件,即使使用超级用户也没有用。
4)目录没有读权限会怎么样?
不能使用ls命令查看目录中的内容,使用超级用户还是可以查看的。
5)目录没有写权限会怎么样?
不能使用touch/mkdir命令在目录中创建新的内容,但是超级用户还是可以的。
6)目录没有执行权限会怎么样?
不能使用cd命令切换到目录中,即使使用超级用户也没有用。
2、为什么文件的起始权限都是664,目录都是775?
linux系统默认规定文件没有执行,目录都是可以切换,默认目录有执行权限。
五、文件/目录起始权限都是与系统中"umask"有关。
1、什么是umask?
其实就是一个影响文件起始权限一个数字,这个数字可以设置。
2、在linux系统下,umask起始值?
gec@ubuntu:~$ umask
0002 -> 当前系统的umask值
第一个0是属于无效位,后三位才是真正的umask。
3、 umask与文件起始权限有什么关系?
文件起始权限 = 666 - 当前系统的umask = 666 - 002 = 664 (使用666来计算,因为linux不想文件有执行权限)
目录起始权限 = 777 - 当前系统的umask = 777 - 002 = 775 (使用777来计算,因为linux希望目录有执行权限)
4、 umask如何修改?
1)临时修改umask -> 重启终端无效。
gec@ubuntu:~$ umask 0000
gec@ubuntu:~$ umask
0000
这时候创建文件,文件的起始权限就是666-000=666。
2)永久修改umask -> 重启终端有效
机制:终端在启动时默认先执行一个脚本文件: 家目录下的隐藏文件".bashrc",只要将"umask 0000"写入这个文件中,那么linux系统就会永久修改umask值为0000。
1. 编辑启动脚本
gec@ubuntu:~$ gedit ~/.bashrc
2. 将"umask 0000"写入到文件的末尾,保存退出!
3. 生效脚本/重启终端
gec@ubuntu:~$ source ~/.bashrc
4. 查看umask
gec@ubuntu:~$ umask
0000
练习2: 永久修改umask为0022,创建目录,看看是不是755,再修改回来。