Linux常用的命令记录(杂记)
好记性不如烂笔头,还是写写博客记录下最近巩固的知识点吧~
坚持是世界上最难的小事
1.查看当前路径
pwd
说明:Linux系统的根目录为/,目录的整体结构为树形结构。
[root@VM_0_15_centos ~]# pwd
/root
2.切换路径
cd +即将跳转的路径。
说明:这点和windows的dos命令里的cd很像了。cd …/ (两点 + 一个斜杠)跳转到上一级目录,cd ./ (一点 + 一个斜杠)跳转到当前目录(感觉没啥用,还是当前目录),cd /usr/local (某个指定的路径) 跳转大根目录下的usr下的local文件夹。
[root@VM_0_15_centos /]# cd /usr/local
[root@VM_0_15_centos local]# cd ./
[root@VM_0_15_centos local]# cd ../
[root@VM_0_15_centos usr]#
3.展示当前目录结构
命令:ls + 参数【可选】+路径【可选,默认为当前路径】。
3.1. ls -l (小写字母l)
说明: 以列表的形式展示目录下的目录和文件的详情属性(比如权限、大小、创建时间等)
[root@VM_0_15_centos usr]# ls -l
total 112
dr-xr-xr-x. 2 root root 24576 Jul 16 09:32 bin
drwxr-xr-x. 2 root root 4096 Aug 12 2015 etc
drwxr-xr-x. 2 root root 4096 Aug 12 2015 games
drwxr-xr-x. 46 root root 4096 Jul 16 09:32 include
dr-xr-xr-x. 36 root root 4096 Jul 16 09:32 lib
dr-xr-xr-x. 48 root root 36864 Jul 16 09:32 lib64
drwxr-xr-x. 19 root root 4096 Jul 15 14:52 libexec
drwxr-xr-x. 16 root root 4096 Jul 15 17:52 local
dr-xr-xr-x. 2 root root 20480 Jul 16 09:32 sbin
drwxr-xr-x. 92 root root 4096 Jul 16 09:32 share
drwxr-xr-x. 4 root root 4096 Apr 21 2016 src
lrwxrwxrwx. 1 root root 10 Apr 21 2016 tmp -> ../var/tmp
第一次看到好几个列,额,是不是特好奇都代表着啥意思。
好奇点 | 揭开神秘面纱 |
---|---|
第一行的total | 所有文件所占的块的总和,单位为kb。注意是所占块的总和,不是文件本身的总和 |
文件列表的第1列(dr-xr-xr-x) | 权限,占用10字符,文件类型 和 文件权限 |
文件列表的第2列(2 ) | 文件数 |
文件列表的第3列(root ) | 表示该文件或目录的拥有者 |
文件列表的第4列(root ) | 表示所属的组,一个用户可以存在于多个组,一个用户可以存在于多个组中,不过一般一个用户是一个组 |
文件列表的第5列(24576) | 文件大小,单位为byte字节,一个空目录默认是一个块大小,也就是4096字节 |
文件列表的第5列(Jul 16 09:32) | 创建日期 |
文件列表的第6列(bin) | 文件名 |
Total 字段的补充说明
相关链接(觉得这里说的不错,起码偶看懂了,感谢网友的分享):
linux命令ls -l的total是怎么计算出来的?
linux中,ls -l命令显示的total的含义。
文章大概的意思就是:Liunx系统是以块为存储单位的,默认一个块大小为4096字节(byte)。如果一个文件存储到1个块不够,2个块又有剩余空间,则按宽的计算,占用2个块。且多个文件不能共用块空间。total的单位为kb,所以计算total值时,块总存储空间需要转换成kb单位。ls -l 得出的total,不计算符号链接类型的大小。
贴出代码的total = 112 的计算方式:
total = (24576 + 4096 +4096 +4096 +4096 +36864 +4096 +4096 +20480 +4096 +4096 )/1024 = 112
文件类型的补充说明
Linux系统下一切皆是文件,
文件类型主要有:
(1)-:文件
(2)d:目录
(3)l:符号链接文件
(4)b:块设备
(5)c:字符设备
(6)p:管道文件pipe
(7)s:套接字文件sock
权限的补充说明
第1位:文件类型(d表示文件夹 l表示连接文件 -表示文件)
第2~10位:后面的9位字符,每3个字符对应一个用户对应该文件的权限。一个文件被多个用户使用,对此每个用户都有着不同的权限。r表示可以读文件、打开目录,w表示可以写、编辑、删除 ,x表示可以执行。借用下网友的一张的图,说明下每3个字符对应所属权限的用户描述。
修改权限的补充说明
既然了解到文件权限,不妨更往深的了解下如何更改文件权限
参考佳文:Linux系统文件权限体系详解
记忆
ls -l (l可以理解为list首字母)
3.2. ls -a
说明:显示所有的文件,包括每个目录默认下的 [.] 和 […]目录。[.]
[root@VM_0_15_centos usr]# ls -a
. .. bin emptyDir etc games include lib lib64 libexec local sbin share src tmp
3.3. ls -A
说明:显示所有的文件,但不包括每个目录默认下的 [.] 和 […]目录。[.]
[root@VM_0_15_centos usr]# ls -A
bin emptyDir etc games include lib lib64 libexec local sbin share src tmp
3.4. ls -S
说明:按照文件大小进行排序。从大到小。注意是大写的S
[root@VM_0_15_centos usr]# ls -S
lib64 bin sbin emptyDir etc games include lib libexec local share src tmp
3.5. ls -lhS
说明:按照文件大小进行排序。从大到小。已列表方式展示,且,各个文件的大小按照k来显示
[root@VM_0_15_centos usr]# ls -lhS
total 116K
dr-xr-xr-x. 48 root root 36K Jul 16 09:32 lib64
dr-xr-xr-x. 2 root root 24K Jul 16 09:32 bin
dr-xr-xr-x. 2 root root 20K Jul 16 09:32 sbin
drwxrwxr-x 2 root root 4.0K Jul 16 11:25 emptyDir
drwxr-xr-x. 2 root root 4.0K Aug 12 2015 etc
drwxr-xr-x. 2 root root 4.0K Aug 12 2015 games
drwxr-xr-x. 46 root root 4.0K Jul 16 09:32 include
dr-xr-xr-x. 36 root root 4.0K Jul 16 09:32 lib
drwxr-xr-x. 19 root root 4.0K Jul 15 14:52 libexec
drwxr-xr-x. 16 root root 4.0K Jul 15 17:52 local
drwxr-xr-x. 92 root root 4.0K Jul 16 09:32 share
drwxr-xr-x. 4 root root 4.0K Apr 21 2016 src
lrwxrwxrwx. 1 root root 10 Apr 21 2016 tmp -> ../var/tmp
3.6. ls -lhSr
说明:按照文件大小进行排序。从小到大。已列表方式展示,且,各个文件的大小按照k来显示
[root@VM_0_15_centos usr]# ls -lhSr
total 116K
lrwxrwxrwx. 1 root root 10 Apr 21 2016 tmp -> ../var/tmp
drwxr-xr-x. 4 root root 4.0K Apr 21 2016 src
drwxr-xr-x. 92 root root 4.0K Jul 16 09:32 share
drwxr-xr-x. 16 root root 4.0K Jul 15 17:52 local
drwxr-xr-x. 19 root root 4.0K Jul 15 14:52 libexec
dr-xr-xr-x. 36 root root 4.0K Jul 16 09:32 lib
drwxr-xr-x. 46 root root 4.0K Jul 16 09:32 include
drwxr-xr-x. 2 root root 4.0K Aug 12 2015 games
drwxr-xr-x. 2 root root 4.0K Aug 12 2015 etc
drwxrwxr-x 2 root root 4.0K Jul 16 11:25 emptyDir
dr-xr-xr-x. 2 root root 20K Jul 16 09:32 sbin
dr-xr-xr-x. 2 root root 24K Jul 16 09:32 bin
dr-xr-xr-x. 48 root root 36K Jul 16 09:32 lib64
3.7. ls -lt
说明:按照文件修改时间进行排序。优先最近修改。已列表方式展示
[root@VM_0_15_centos usr]# ls -lt
total 116
drwxrwxr-x 2 root root 4096 Jul 16 11:25 emptyDir
dr-xr-xr-x. 36 root root 4096 Jul 16 09:32 lib
drwxr-xr-x. 46 root root 4096 Jul 16 09:32 include
dr-xr-xr-x. 48 root root 36864 Jul 16 09:32 lib64
dr-xr-xr-x. 2 root root 24576 Jul 16 09:32 bin
dr-xr-xr-x. 2 root root 20480 Jul 16 09:32 sbin
drwxr-xr-x. 92 root root 4096 Jul 16 09:32 share
drwxr-xr-x. 16 root root 4096 Jul 15 17:52 local
drwxr-xr-x. 19 root root 4096 Jul 15 14:52 libexec
lrwxrwxrwx. 1 root root 10 Apr 21 2016 tmp -> ../var/tmp
drwxr-xr-x. 4 root root 4096 Apr 21 2016 src
drwxr-xr-x. 2 root root 4096 Aug 12 2015 etc
drwxr-xr-x. 2 root root 4096 Aug 12 2015 games
4.新建目录
mkdir + 路径
[root@VM_0_15_centos usr]# mkdir emptyDir/test
[root@VM_0_15_centos usr]# cd emptyDir
[root@VM_0_15_centos emptyDir]# ls
test
5.vim编辑文件
vim + 文件路径/名
说明:如果文件不存在则新建,否则直接打开文件。命令执行完,按下I 键 进行到编辑insert模式,输入内容。
常见模式有3种模式:W表示写 ,Q表示退出
(1)Esc + : + W+ Q ===> 保存修改并退出
(2)Esc + : + Q ===> 正常退出,要求文档没有被编辑过,否则报error
(3)Esc + : + Q + ! ===> 不保存修改直接退出
6.查看文件
cat + 文件路径/名
[root@VM_0_15_centos emptyDir]# cat test.conf
ifdfjdfjdf
7.文件里查询关键词
vim打开文件后,按/进行关键词的编辑
说明:在/后输入关键词 ,输入Enter。如果有检索结果项,n(小写n) 键跳转到下一个关键词出现的位置,N(大写N)跳转上一个出现的位置
8.复制文件
cp -r + 源目录/文件 + 目标目录/文件
说明 : -r 包括其子文件到自定目录
9.移动(重命名)文件
mv + 源目录/文件 + 目标目录/文件
说明:如果源文件和目标文件的路径相同,则效果为重命名
10.压缩文件
-v 标识展示过程
tar -cvf + 压缩文件名 + 需要压缩的目录/文件
说明:压缩。-cvf 中的c 理解为create。
把文件夹panshitimer 压缩成 panshitimer.tar
tar -cvf panshitimer.tar panshitimer
tar -xvzf + 压缩文件路径/名
说明:解压。x表示解压,v表示展示结果的过程log
unzip 压缩文件名 -d 压缩至路径
说明:解压zip包
11.删除文件/目录
rmDir + 目录(必须为空目录)
说明:如果目录不为空则执行会报错。
rm -rf + 目录
说明:删除包括其中的子目录或文件。注意:这种删除是没有提示就直接删除了,千万要小心别误删了重要文件,如需要提示,去掉命令行里的 -rf 即可
记忆
rm可以理解为remove的缩写
12.当前系统时间获取
date + 日期格式化[可选参数]
[root@VM_0_15_centos emptyDir]# date +"%Y-%m-%d"
2019-07-16
说明:格式化字符串 类似mysql 里的。
13.进程pid查询
ps -ef|grep + 进程名
[root@VM_0_15_centos emptyDir]# ps -ef|grep redis
root 16941 1 0 Jul15 ? 00:01:06 src/redis-server 127.0.0.1:6379
root 18490 11449 0 16:07 pts/3 00:00:00 grep --color=auto redis
说明:图中16941就是redis默认端口启动的相关进程pid。
14.终止进程
kill -9 + 进程pid
[root@VM_0_15_centos emptyDir]# kill -9 16941
[root@VM_0_15_centos emptyDir]# ps -ef|grep redis
root 18792 11449 0 16:09 pts/3 00:00:00 grep --color=auto redis
说明:图中16941就是redis默认服务启动的相关进程pid。
15.查看文件的前指定行数的内容
head -n + 行数 + 文件名
[root@VM_0_15_centos emptyDir]# head -n 2 test.conf
第一行
第二行f
16.查看文件的后指定行数的内容
tail -n + 行数 + 文件名
[root@VM_0_15_centos emptyDir]# tail -n 2 test.conf
倒数第二行
倒数第一行
17.清屏
clear
18.更改文件权限
chmod + 权限数字组合 + 文件名
说明:读权限对应的数字为:4
写权限对应的数字为:2
执行权限对应的数字为:1
无权限对应的数字为:0
修改权限只能是文件的所属者或者root用户。
[root@VM_0_15_centos usr]# cat a.sh
echo 'nihao'
[root@VM_0_15_centos usr]# ls -l a.sh
-rw-rw-r-- 1 root root 13 Jul 16 17:18 a.sh
[root@VM_0_15_centos usr]# ./a.sh
-bash: ./a.sh: Permission denied
[root@VM_0_15_centos usr]# chmod 764 a.sh
[root@VM_0_15_centos usr]# ls -l a.sh
-rwxrw-r-- 1 root root 13 Jul 16 17:18 a.sh
[root@VM_0_15_centos usr]# ./a.sh
nihao
将权限[rw-]改成了[rwx],最终成功执行了sh文件,打印出了"nihao"
(注意:)
修改整个文件夹的权限,如一个文件夹code,
修改这个文件夹(包括内部的所有文件)的权限
使用命令:
chmod -R 777 code/
-R表示以递归整个文件夹中的子文件
19.指定路径下查找文件
find + 指定路径 + [-name] + 关键词
[root@VM_0_15_centos bin]# find / -name redis.conf
/usr/local/redis/redis-4.0.10/redis.conf
20.linux当前登录用户
whoami
21.更改密码root用户密码
su - root
passwd
接着输入密码
22.关机
- shutdown –help
可以查看shutdown命令如何使用,当然也可以使用man shutdown命令。 - shutdown -h now 现在立即关机
- shutdown -r now 现在立即重启
- shutdown -r +3 三分钟后重启
- shutdown -h +3 “The System will shutdown after 3 minutes” 提示使用者将在三分钟后关机
- shutdown -r 20:23 在20:23时将重启计算机
- shutdown -r 20:23 & 可以将在20:23时重启的任务放到后台去,用户可以继续操作终端
23.修改主机名
vim /etc/hostname
#hostname写上新主机名,然后保存
记得重启机器。
通过**hostname **的命令来查看主机名。
hostname命令也可以用来修改主机名,但重启后,又恢复成原来的。所以只是临时的修改。
24. 主机名和ip对应
vim /etc/hosts
#追加映射关系,比如如下
192.168.3.34 ubuntu-1-2
192.168.3.80 ubuntu-1
可以通过ping + 主机名的方式 来 验证是否 映射成功。
25. 查看磁盘的使用情况
[root@localhost ~]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 908M 0 908M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 8.6M 911M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/mapper/centos-root 6.2G 1.4G 4.9G 23% /
/dev/sda1 1014M 149M 866M 15% /boot
tmpfs 184M 0 184M 0% /run/user/0
有时候可能会遇到某个块容量已满,可能会报错:
No space left on device
很明显就是磁盘没有剩余空间的意思嘛,这时候可以采取扩容的方法,
扯个题外话: 虚拟机上的系统需要扩容的好文章 ,亲测可用!