Linux学习笔记02
-
学会使用快捷键
Ctrl+C:结束(终止)当前命令。如果你输入了一大串字符,但不想运行,可以按该组合键,此时光标将跳入下一行,而在刚刚的光标处会留下一个^C的标记。
Tab:实现自动补全功能。这个键比较重要,使用频率也很高。当你输入命令、文件或者目录的前几个字符时,它会自动帮你补全。
Ctrl+D:退出当前终端。当然,你也可以在终端输入命令exit实现该功能。
Ctrl+Z:暂停当前进程(终止命令)。这和Ctrl+C是有区别的,暂停后,使用fg命令恢复该进程。
Ctrl+L:清屏,使光标移动到屏幕的第一行。
Ctrl+A:可以让光标移动到命令的最前面。有时候一条命令很长,快敲完时发现前面某个字母不对,此时可以直接用这个快捷键把光标定位到行首,然后再用左右方向键微调光标的位置。
Ctrl+E:可以让光标移动到命令的最后面,作用同Ctrl+A。 -
命令
cat:把文件的内容输出到屏幕上
cat -A:显示所有的内容,包括特殊字符
tac:把文件的内容从倒数开始一行一行输出到屏幕上
more:用于查看文件的内容,按空格(或者按Ctrl+F)看下一屏,看完所有内容后退出,按Ctrl+D可以向上翻屏。如果想提前退出,按q键即可。
less:和more命令一样,后面跟文件名。按空格键可翻页,按j键可以向下移动(按一下就移动一行),按k键可以向上移动。
在使用more和less查看某个文件时,可以按一下/键,并输入一个字符串(如aaa),然后回车,这样就可以查找这个字符串了。如果是查找多个该字符串,可以按n键显示下一个。另外,也可以用?键代替/键来搜索字符串,但唯一不同的是,/键是在当前行向下搜索,而?键是在当前行向上搜索。
head:用来显示文件的前10行,后面直接跟文件名。如果加-n选项,则显示文件的前几行。
tail:用来显示文件的最后10行,后面直接跟文件名。如果加-n选项,则显示文件的最后几行。
tail -f:后加文件名,可以动态显示文件的最后10行,如果文件内容在不断增加,使用-f选项非常方便和直观。
groupadd:增加一个用户组
useradd:增加一个用户
chgrp(change group):更改文件或目录的所属组,格式为chgrp [组名] [文件名]
chgrp -R:级联更改目录以及子文件
chown(change owner):更改文件的所有者,格式同上
chown -R:级联更改目录以及子文件
chown -R user1:group1 [文件名] :会把该文件目录以及该目录下的文件都修改成所有者为user1,所属组为group1
chmod:更改文件的权限。Linux使用数字代替rwx,具体规则:r等于4,w等于2,x等于1,-等于0。例如rwxrwx—用数字表示为770,其算法为:rwx=4+2+1=7,rwx=4+2+1=7,—=0+0+0=0。
chmod还支持使用rwx的方式来设置权限,用u,g,o来分别表示user,group,others的属性,用a来代表all(全部)的属性。
chmod还可以针对u,g,o,a来增加(+)或者减少(-)它们某个权限(读、写、执行)。
-
Linux文件属性
在用ls -l命令查看当前目录下的文件时,一共显示了9列内容(用空格划分列)。意义如下:
第一列:
包含该文件的类型,所有者、所属组以及其他用户对给文件的权限(共11位,包括最后的.)。
文件的类型:
d:表示该文件为目录
-:表示该文件为普通文件
l:表示该文件为链接文件(link file)
b:表示该文件为块设备
c:表示该文件为串行端口设备文件(又称字符设备文件),如键盘、鼠标、打印机、tty终端等都是这样的文件
s:表示该文件为套接字文件(socket),用于进程之间的通信,MySQL会用到该类型的文件
类型后面的9位:
每3位为一组,其中,r代表可读,w代表可写,x代表可执行。
前3位为所有者(user)的权限,中间3位为所属组(group)的权限,最后3位为其他非本群组用户(others其他用户)的权限。
如-rwxr-xr–(10位),它的意思是:该文件为普通文件,user可读、可写、可执行,group可读、不可写、可执行,others只有可读权限。对于一个目录来说,打开这个目录即为执行这个目录,所以任何一个目录必须要有x权限才能打开并查看该目录下的内容。例如一个目录的属性为drwxr–r--,其所有者为xiaoming,那么除了xiaoming以外的其他用户是不能打开(即执行)这个目录的。
最后的".":老版本的centos 5是没有这个点的,这主要是因为新版本的ls添加了SELinux或者acl的属性。如果文件或者目录使用了SELinux contect的属性,这里会是一个点".";如果设置了acl的属性,这里会是一个加号"+"。
第二列:
表示该文件占用的节点(inode),如果是目录,那这个数值与该目录下是子目录数量有关。
第三列:
表示该文件的所有者(user)
第四列:
表示该文件的所属组(group)
第五列:
表示该文件的大小
第六列、第七列、第八列:
表示该文件最后一次被修改的时间(mtime),依次为月份、日期以及时间。
第九列:
表示文件名 -
在Linux下搜索文件
1、用which命令查找可执行文件的绝对路径
which只能用来查找PATH环境变量中出现的路径下的可执行文件。
2、用whereis命令查找文件
whereis命令通过预先生成的一个文件列表库查找与给出的文件名相关的文件,类似于模糊查找,其格式为
whereis [-bms] [文件名称]:
-b:只查找二进制文件
-m:只查找帮助文件(在man目录下的文件)
-s:只查找源代码文件
3、用locate命令查找文件
locate命令类似于whereis,也是通过查找预先生成的文件列表库来告诉用户要查找的文件在哪里,后面直接跟文件名,但并不适合精确查找。
4、使用find搜索文件
其格式为:find [路径] [参数],参数如下:
-atime +n/-n:表示访问或执行时间大于或小于n天的文件
-ctime +n/-n:表示写入、更改inode属性(如更改所有者、权限或者链接)的时间大于或小于n天的文件
-mtime +n/-n:表示写入时间大于或小于n天的文件,该参数用的最多。
-mmin +n/-n:表示写入时间大于或小于n分钟的文件。
如:#find /tmp -mtime -1
atime(access time):在读取文件或者执行文件时更改的。
mtime(modified time):是在写入文件时随文件内容的更改而更改的。
ctime(change time):是在写入文件更改所有者、权限或链接设置时随inode内容的更改而更改的。
inode(索引结点):用来存放档案及目录的基本信息,包含时间信息、文档名、所有者以及所属组的。inode是Unix操作系统中的一种数据结构,其本质是结构体,在文件系统创建时生成,且个数有限。可以通过命令df -i来查看各个分区的inode总数以及使用情况。
stat命令:来列出文件的atime,ctime和mtime
参数:
-name filename:表示直接查找该文件名的文件,比较常用。
如:#find . -name test2 //.表示当前目录
#find . -name “test*” //支持用*通配
-type filetype:表示通过文件类型来查找文件。filetype包含了f、b、c、d、l、s等类型。
Linux文件类型
Linux文件一般是用一些相关的应用程序创建,比如图像工具、文档工具、归档工具… … 或 cp工具等。linux文件的删除方式是用rm 命令。
Linux文件类型;
Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念。我们通过一般应用程序而创建的比如file.txt、file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文件类型中衡量的话,大多是常规文件(也被称为普通文件)。
Linux文件类型常见的有:普通文件、目录、字符设备文件、块设备文件、符号链接文件等;现在我们进行一个简要的说明;
1 普通文件
[root@localhost ~]# ls -lh install.log
-rw-r–r-- 1 root root 53K 03-16 08:54 install.log
我 们用 ls -lh 来查看某个文件的属性,可以看到有类似 -rw-r–r-- ,值得注意的是第一个符号是 - ,这样的文件在Linux中就是普通文件。这些文件一般是用一些相关的应用程序创建,比如图像工具、文档工具、归档工具… … 或 cp工具等。这类文件的删除方式是用rm 命令;
2 目录
[root@localhost ~]# ls -lh
总计 14M
-rw-r–r-- 1 root root 2 03-27 02:00 fonts.scale
-rw-r–r-- 1 root root 53K 03-16 08:54 install.log
-rw-r–r-- 1 root root 14M 03-16 07:53 kernel-6.15-1.2025_FC5.i686.rpm
drwxr-xr-x 2 1000 users 4.0K 04-04 23:30 mkuml-2004.07.17
drwxr-xr-x 2 root root 4.0K 04-19 10:53 mydir
drwxr-xr-x 2 root root 4.0K 03-17 04:25 Public
当 我们在某个目录下执行,看到有类似 drwxr-xr-x ,这样的文件就是目录,目录在Linux是一个比较特殊的文件。注意它的第一个字符是d。创建目录的命令可以用 mkdir 命令,或cp命令,cp可以把一个目录复制为另一个目录。删除用rm 或rmdir命令。
3 字符设备或块设备文件
如时您进入/dev目录,列一下文件,会看到类似如下的;
[root@localhost ~]# ls -la /dev/tty
crw-rw-rw- 1 root tty 5, 0 04-19 08:29 /dev/tty
[root@localhost ~]# ls -la /dev/hda1
brw-r----- 1 root disk 3, 1 2006-04-19 /dev/hda1
我们看到/dev/tty的属性是 crw-rw-rw- ,注意前面第一个字符是 c ,这表示字符设备文件。比如猫等串口设备
我们看到 /dev/hda1 的属性是 brw-r----- ,注意前面的第一个字符是b,这表示块设备,比如硬盘,光驱等设备;
这个种类的文件,是用mknode来创建,用rm来删除。目前在最新的Linux发行版本中,我们一般不用自己来创建设备文件。因为这些文件是和内核相关联的。
4 套接口文件
当我们启动MySQL服务器时,会产生一个mysql.sock的文件。
[root@localhost ~]# ls -lh /var/lib/mysql/mysql.sock
srwxrwxrwx 1 mysql mysql 0 04-19 11:12 /var/lib/mysql/mysql.sock
注意这个文件的属性的第一个字符是 s。我们了解一下就行了。
5 符号链接文件
[root@localhost ~]# ls -lh setup.log
lrwxrwxrwx 1 root root 11 04-19 11:18 setup.log -> install.log
当 我们查看文件属性时,会看到有类似 lrwxrwxrwx,注意第一个字符是l,这类文件是链接文件。是通过ln -s 源文件名 新文件名。上面是一个例子,表示setup.log是install.log的软链接文件。怎么理解呢?这和Windows操作系统中的快捷方式有点相 似。
符号链接文件的创建方法举例;
[root@localhost ~]# ls -lh kernel-6.15-1.2025_FC5.i686.rpm
-rw-r–r-- 1 root root 14M 03-16 07:53 kernel-6.15-1.2025_FC5.i686.rpm
[root@localhost ~]# ln -s kernel-6.15-1.2025_FC5.i686.rpm kernel.rpm
[root@localhost ~]# ls -lh kernel*
-rw-r–r-- 1 root root 14M 03-16 07:53 kernel-6.15-1.2025_FC5.i686.rpm
lrwxrwxrwx 1 root root 33 04-19 11:27 kernel.rpm -> kernel-6.15-1.2025_FC5.i686.rpm