Linux基础的复习
- Linux操作系统诞生于1991 年8月
- Ubuntu每六个月(即每年的四月与十月)发布一个新版本,长期支持(LTS)版本每两年发布一次。普通版本一般只支持9个月,但LTS版本一般能提供5年的支持。😅
- 在版本号中,序号的第二位为偶数的版本表明这是一个可以使用的稳定版本,如2.2.5,而序号的第二位为奇数的版本一般有一些新的东西加入,是个不一定很稳定的测试版本,如2.3.1
Linux的基本目录结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ziXgVcDR-1681023086405)(null)]
目录 | 用途 |
---|---|
bin | bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令 |
boot | 这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。 |
dev | dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。 |
etc | etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。 |
lib | lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。 |
sbin | s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序 |
usr/bin | 系统用户使用的应用程序 |
usr/src | 内核源代码默认的放置目录 |
#Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
命令 | 功能 |
---|---|
init 0 | 关机 |
init 1 | 单用户 |
init 2 | 多用户(不联网) |
init 3 | 多用户 |
init 4 | 不使用的 |
init 5 | 有界面的xwindows |
init 6 | 重启 |
- 加行号显示 /etc/passwd 文件。
cat -n
- 用more、less命令, 显示 /etc/passwd 文件内容,比较命令的不同(哪个命令可以加行号?)。
less可以显示行号
less -N
- 显示/etc/sudoers文件的前15行,显示/etc/sudoers文件的后5行。
head -15
tail -5
- 把刚建的text1文件移动到刚建立的abc子目录下,并改名为text3,同时把text2文件复制到xh子目录中;
sudo mv text1 ../ah/abc/text3
# mv 源文件 改名后的文件名
- 在工作目录中建work子目录,在work下建立子三个目录abc1、abc2、abc3;并在work目录中查找普通文件、目录文件、链接文件
mkdir -p work/abc;
cd work
mkdir -p abc/{abc1,abc2,abc3}
find ./work -type f; find ./work -type d; find ./work -type l
文件权限等级
Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)。
只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号模式指定文件的权限。
在工作目录下,新建一个文件myfile。用字符或数字方式写出指令。
1)增加所属组用户增加写权限,给其他用户增加读权限。
2)撤销所属组和其他用户对该文件的读权限
3)对所有用户设置只有读和执行权限。
touch myfile
chmod g+w,o+r myfile;
chmod a-r myfile;
chmod 555 myfile
用符号模式更改dir2目录和目录里的文件的权限为所有者具有全权,同组人具有读和写的权限,其他人只有执行的权限。
chmod u=rwx,g=rw,o=x dir2
- 递归改变目录 test 及其下文件所属群组为newgroup组用户
chgrp -R newgroup test
- 将file文件所有者改为root ,所属群组为bin
chown root:bin file
- Linux常用的软件包格式有RPM和DEB两种
tar命令的使用
使用gzip工具(-z)解压(-x)由参数-f指定的文件,并显示压缩过程中详细信息(-v)
参数 | 含义 |
---|---|
tar | Linux压缩/解压缩命令 |
-z | 代表gzip,使用gzip工具进行压缩或解压 |
-x | 代表extract,解压文件(压缩文件是-c) |
-v | 代表verbose,显示解压过程(文件列表) |
-f | 代表file,指定要解压的文件名(or 要压缩成的文件名) |
-c | create建立新的备份文件 |
-C | 切换到指定的目录 |
tar参数的逐个解释
- -z
含义:使用gzip或gunzip命令(工具)进行压缩或解压。
换言之,这个z代表的是gzip工具,而没有指明是压缩还是解压。
注意,如果是Xxx.tar.gz文件才需要加上-z,如果是普通压缩文件Xxx.tar则不要加-z。 - -x
含义:从压缩文件中解压缩出文件。
换言之,x代表的解压而不是压缩,压缩命令是-c
- -v
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n7XqbMyY-1681023086484)(null)]
含义:列出处理的文件详细信息 - -f
含义:指定要解压的文件名,或者在压缩命令时(tar -c),代表着最终压缩文件的名称
后面跟着的ARCHIVE参数即文件名
tar命令的例子
- 在工作目录下创建一个子目录myfile,用tar 命令归档myfile目录下的文件,创建文件名为myfiles.tar的文件并列出详细过程。
tar -cvf myfiles.tar ./myfile/*
- 在工作目录下,建立两个文件 file1,file2和一个子目录mywork, 将这两个文件打包为archive.tar.gz, 并显示归档过程。然后主目录在将archive.tar.gz 解包解压缩到mywork下。
touch file1,file2
mkdir mywork
tar -czvf archive.tar.gz file1 file2
tar -xzvf archive.tar.gz -C ./mywork
- 在工作目录下,建立两个文件 file1,file2, 将这两个文件打包为archive.tar
- 用tar 命令归档工作目录,指明创建文件并列出详细过程,并设置打包文件名为gec. tar.gz
- 在当前目录下,建立一个temp子目录,并将打包文件gec.tar.gz 取出到temp子目录下。
touch file1 file2
tar -cf archive.tar file1 file2
tar -cvzf gec.tar.gz ./*
mkdir temp /home/xiaoping/temp
tar –xzvf gec.tar.gz -C ./temp 或 cd temp; tar -xzvf gec.tar.gz #-x解压/取出
- 从根目录开始,查找扩展名是.conf 文件
find / -name '*.conf'
- 在/etc目录下查找包含sys的文件
find /etc -name '*sys*'
在/etc/passwd 和 /etc/shadow 文件中查找字符串root
在/etc/passwd中查找包含‘-’的行,并显示行号.
grep root /etc/passwd /etc/shadow
grep -n '-' /etc/passwd
ls-l长格式列表
例如
-rwx r-x --x
第 1 列:文件属性
第 1 字符为文件类型
-: 普通文件
b : 块设备文件(Block)
d : 目录文件(Dir)
c :字符设备文件(Char)
I :符号连接文件(Link)
p :命名管道文件(Pipe)
文件的访问权限(r 读权限,w 写权限,x 可执行权限)
2-4 字符:文件所有者对文件的访问权限
5-7 字符:同组用户对文件的访问权限
8-10 字符:其它用户对文件的访问权限
软链接与硬链接
- 硬连接指通过索引节点来进行连接。在 Linux 中,多个文件名指向同一索引节点是存在的,硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。硬链接实际上是为文件建一个别名,链接文件和原文件实际上是同一个文件。
复制:相当于将原文件进行一个拷贝,为另一个全新的文件,与原文件没有关系了。修改任何一个都不会影响另一个。
- 软连接建立的链接文件与原文件并不是同一个文件,相当于原文件的快捷方式。
$ touch f1 #创建一个测试文件f1
$ ln f1 f2 #创建f1的一个硬连接文件f2
$ ln -s f1 f3 #创建f1的一个符号连接文件f3
$ ls -li # -i参数显示文件的inode节点信息
total 0
9797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11 f1
9797648 -rw-r--r-- 2 oracle oinstall 0 Apr 21 08:11 f2
9797649 lrwxrwxrwx 1 oracle oinstall 2 Apr 21 08:11 f3 -> f1
$ rm -f f1 #删除源文件后
$ cat f2 #硬链接还有效
I am f1 file
$ cat f3
cat: f3: No such file or directory #软链接失效
硬链接真正失效是当只有计数值变成0也就是没有任何硬连接指向的时候才会真实的删除内容。(任何存在的文件本身就算是一个硬连接🙊)
用户管理
1.新建一个user1用户,UID、GID、主目录均按默认;
2.新建一个user2用户,UID=800、其余按默认;
3.新建一个user3用户,默认主目录为/abc、其余默认;并观察这三个用户的信息有什么不同;
4.分别为以上三个用户设置密码为123456;
5.把user1用户改名为u1,UID改为700,主目录为/test,密码改为12356;
6. 锁定账号u1,察查看有什么变化,并解锁账号;
usermod -l u1 , usermod –u u1
7. 删除用户u1 账号及其主目录 (userdel u1 -r)
useradd -m user1;
useradd -u 800 user2
useradd -d /abc user3; cat /etc/passwd
passwd -p 123456 user1; passwd -p 123456 user2; passwd -p 123456 user3;
usermod –l u1 user1 –u 700 –d /test -p 123656
usermod -l u1 ; usermod –u u1
userdel u1 -r
vim的基本操作
1) 设置行号:set nu ;
2)插入操作:光标移动第5行插入操作 i ;
3)删除操作:光标移动到第10行,dd ;
4)拷贝操作:3,5 co ; 5 )末行模式,存盘退出: w q 末行模式: / Y E S ,按 n 末行模式: 1 , ; 5)末行模式,存盘退出:wq 末行模式:/YES, 按 n 末行模式: 1, ;5)末行模式,存盘退出:wq末行模式:/YES,按n末行模式:1,s/YES/yes/g 或1,$s/YES/yes/gc
在命令行模式中,按u操作,在末行模式操作:wq!
gcc编译
在编译C程序生成可执行文件需要
历经:预处理、编译、汇编、链接
makefile
当多个文件都需要编译以及还有头文件等,可编写Makefile来编译
例如
一个TAB等于8个空格