目录
🍱博客主页:等一下就回家℡
写在前面
当你打开这篇文章,说明你对Linux是感兴趣的,或者说你是有一些基础的。但是Linux版本众多,命令也不会少,该从哪开始学呢?本次主要讲解CentOS系统,本篇文章正在一点一点整理Linux的基础命令,可以收藏保留下来,当工作中需要用的,翻开看一看就解决了你的燃眉之急。
Linux原则
1、Linux是由单一的小程序组成,组合小程序完成复杂的任务。
2、刚学Linux的时候听的最多就应该就是“一切皆文件”。
3、尽量避免捕获用户接口,意思就是尽量不和用户交互,一个程序一但运行,就不与用户进行任何操作。
4、配置文件保存为纯文本格式。
用户接口
一种独特的应用程序,能够为用户提供启动其他应用程序的机制。
CLI
命令提示符,用户输入命令即可。shell:sh、csh、ksh、bash、zsh、tcsh
GUI
图形界面用户接口,一般通过点击来运行应用程序。如:GNOME(C语言)、KDE(C++)、XFCE(轻量级)。
终端类型
虚拟终端(TTY1...TTY6) 例:/dev/tty6伪终端(ssh 、 Telnet 连接称为伪终端或者在图形界面下打开的终端) /dev/pts/#物理终端(console ) /dev/console串行终端(使用特定速率向外打印字符,通过串行接口连接) /dev/ttyS#图形终端:可以使用startx 命令启动 startx -- :2 可以启动第二个图形 终端
命令格式
命令 选项 参数
内部命令:是系统 shell 自带的命令外部命令:是安装其他的程序产生的命令。
type 命令关键字
举个栗子-ls命令
ls命令主要是查看目录下的文件,加上一些选项可以准确知道自己需要的文件详情信息。初学时,看到上面可能已经蒙了,来看看下面的命令示例吧。
语法格式
ls 选项 文件
实例-查看帮助
[root@csdn_dengyixia ~]# ls --help
用法:ls [选项]... [文件]...
# 省略部分内容
常用选项
短格式查看
-h 做单位转换-a 显示以.开头的隐藏文件. 表示当前目录.. 表示父目录-A-d 显示目录自身属性-i index node, inode-r 逆序显示-R 递归(recursive)显示
实例如下:
ls . 表示查看当前目录(当前在root目录下)
ls .. 表示查看上一级目录(上一级目是/ 后面在详细讲解目录关系)
[root@csdn_dengyixia ~]# ls .
anaconda-ks.cfg initial-setup-ks.cfg 公共 模板 视频 图片 文档 下载 音乐 桌面
[root@csdn_dengyixia ~]# ls ..
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
长格式查看
ll
实例如下:
常用的选项相同,显示更加详细的内容
[root@csdn_dengyixia ~]# ls -l .
总用量 8
-rw-------. 1 root root 1628 5月 23 23:02 anaconda-ks.cfg
-rw-r--r--. 1 root root 1676 5月 23 23:15 initial-setup-ks.cfg
drwxr-xr-x. 2 root root 6 5月 23 23:22 公共
drwxr-xr-x. 2 root root 6 5月 23 23:22 模板
drwxr-xr-x. 2 root root 6 5月 23 23:22 视频
drwxr-xr-x. 2 root root 6 5月 23 23:22 图片
drwxr-xr-x. 2 root root 6 5月 23 23:22 文档
drwxr-xr-x. 2 root root 6 5月 23 23:22 下载
drwxr-xr-x. 2 root root 6 5月 23 23:22 音乐
drwxr-xr-x. 2 root root 6 5月 23 23:22 桌面
每个文件的首字母表示如下:
-:普通文件 (f)。d:目录文件。b:块设备文件 (block)就是存储数据以供系统存取的接口设备,简单而 言就是硬盘。c:字符设备文件 (character)即串行端口的接口设备,例如键盘、鼠标 等等。l:符号链接文件 (symbolic link file)。p:命令管道文件 (pipe)是一种特殊的文件类型,它主要的目的是,解决 多个程序同时存取一个文件所造成的错误。s:套接字文件 (socket)这类文件通常用在网络数据连接。
rwx表示读写执行(权限数字:241)
文件系统目录
根据系统的不同,目录也不同,这里以红帽公司旗下的CentOS为例。
1. / :根目录,所有其他目录和文件都位于此目录下。
2. /bin :存放系统中最基本和最常用的可执行命令。
3. /boot :包含启动Linux系统所需的文件,如内核和引导加载程序。
4. /dev :包含设备文件,用于与系统中的设备进行交互。
5. /etc :包含系统配置文件,如网络配置、用户账户信息等。
6. /home :每个用户在系统上的个人主目录。
7. /lib :包含共享库文件,为可执行程序提供所需的功能。
8. /media :用于挂载可移动媒体设备,如USB闪存驱动器或光盘。
9. /opt :用于安装可选软件,如第三方应用程序。
10. /proc :虚拟文件系统,提供有关系统进程的信息。
11. /root :系统管理员(root用户)的个人主目录。
12. /sbin :存放系统管理员使用的系统管理命令。
13. /tmp :用于存放临时文件。
14. /usr :包含用户安装的应用程序和文件。
15. /var :存放变量数据,如日志文件、邮件和打印队列等。
路径
绝对路径:凡是以 “/”开头的输入路径的方式都是绝对路径相对路径:凡是以 “.” 或者 “..”开头的都是相对路径
查看服务器相关命令
cat /proc/cpuinfo | 查看cpu信息 |
cat /proc/meminfo | 查看内存信息 |
free | 查看内存使用情况 |
uptime | 监控CPU情况 |
cat /etc/redhat release | 查看发行版信息 |
hostname | 查看主机名 |
ip addr | 查看ip信息 |
ifconfig | 查看ip信息 |
netstat | 查看网络连接信息、路由表等,常用来查看端口 打开情况 |
fdisk -l | 查看硬盘信息 |
df | 查看设备挂载信息 |
文件查看/处理相关命令
touch
创建一个空文件(test.txt为文件名)
[root@csdn_dengyixia ~]# touch test.txt
[root@csdn_dengyixia ~]# ls test.txt
test.txt
echo
打印,或查看变量,通常可以使用重定向符>把打印内容覆盖输入文本中,>>表示追加
[root@csdn_dengyixia ~]# echo "等一下就回家" > test.txt
[root@csdn_dengyixia ~]# cat test.txt
等一下就回家
cat
上面也有用的,表示把文件内容全部打印出来,前提是要有该文件。
[root@csdn_dengyixia ~]# cat a
cat: a: 没有那个文件或目录
[root@csdn_dengyixia ~]# cat test.txt
等一下就回家
tac
倒序查看文件内容,需要有多行文件才能表现出来。
[root@csdn_dengyixia ~]# tac test.txt
等一下就回家
[root@csdn_dengyixia ~]# echo "aaaaa" >> test.txt
[root@csdn_dengyixia ~]# tac test.txt
aaaaa
等一下就回家
more
翻页查看文件内容,每次显示当前屏幕
按 Space 键:显示文本的下一屏内容。按 Enter 键:只显示文本的下一行内容。按 h 键:显示帮助屏,该屏上有相关的帮助信息。按 b 键:显示上一屏内容。按 q 键:退出命令。
[root@csdn_dengyixia ~]# more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
libstoragemgmt:x:998:995:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
colord:x:997:994:User for colord:/var/lib/colord:/sbin/nologin
rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
saned:x:996:993:SANE scanner daemon user:/usr/share/sane:/sbin/nologin
gluster:x:995:992:GlusterFS daemons:/run/gluster:/sbin/nologin
saslauth:x:994:76:Saslauthd user:/run/saslauthd:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
setroubleshoot:x:993:990::/var/lib/setroubleshoot:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin
pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
radvd:x:75:75:radvd user:/:/sbin/nologin
chrony:x:992:987::/var/lib/chrony:/sbin/nologin
--More--(59%)
less
翻页查看文件内容,每次显示一页
按 Space 键:显示文本的下一屏内容。按 Enter 键:只显示文本的下一行内容。按 h 键:显示帮助屏,该屏上有相关的帮助信息。按 b 键:显示上一屏内容。按 q 键:退出命令。
[root@csdn_dengyixia ~]# less /etc/passwd
# 省略部分内容
head
显示文件开头,默认10行,看指定行数添加-n选项(n表示数字几行)。
[root@csdn_dengyixia ~]# head /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
[root@csdn_dengyixia ~]# head -2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
tail
显示文件结尾,默认10行,查看指定行数添加-n选项(n表示数字几行)。-f选项可以动态监控。
[root@csdn_dengyixia ~]# tail /etc/passwd
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
gnome-initial-setup:x:988:982::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
a:x:1000:1000:a:/home/a:/bin/bash
nginx:x:987:981:Nginx web server:/var/lib/nginx:/sbin/nologin
wc
统计文件的行数、单词数量、字符数量。
-l 行数-w 单词数-c 字符数
[root@csdn_dengyixia ~]# wc -l -w -c /etc/passwd
45 93 2357 /etc/passwd
du
统计文件和目录的大小
-s 汇总显示大小-h 显示文件大小单位
[root@csdn_dengyixia ~]# du -s /root
4292 /root
[root@csdn_dengyixia ~]# du -s -h /root
4.2M /root
目录操作相关命令
tree
树状图列出目录的内容,tree命令默认没有,需要安装,如果没有配置yum仓库或安装不上,不用纠结先跳过此步,后面讲了yum仓库后再安装测试。
-C 在文件和目录清单加上色彩,便于区分各种类型
[root@csdn_dengyixia ~]# yum -y install tree
# 省略安装部分
[root@csdn_dengyixia ~]# tree -C /root
/root
├── anaconda-ks.cfg
├── initial-setup-ks.cfg
├── test.txt
├── \345\205\254\345\205\261
├── \346\250\241\346\235\277
├── \350\247\206\351\242\221
├── \345\233\276\347\211\207
├── \346\226\207\346\241\243
├── \344\270\213\350\275\275
├── \351\237\263\344\271\220
└── \346\241\214\351\235\242
8 directories, 3 files
ls
查看目录内容,上面示例中讲到了
[root@csdn_dengyixia ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg test.txt 公共 模板 视频 图片 文档 下载 音乐 桌面
cd
切换目录
[root@csdn_dengyixia ~]# cd /tmp
[root@csdn_dengyixia tmp]#
pwd
查看当前目录位置
[root@csdn_dengyixia tmp]# pwd
/tmp
mkdir
创建目录
-p 创建多级目录
[root@csdn_dengyixia ~]# mkdir /a/b/c
mkdir: 无法创建目录"/a/b/c": 没有那个文件或目录
[root@csdn_dengyixia ~]# mkdir -p /a/b/c
[root@csdn_dengyixia ~]# tree /a
/a
└── b
└── c
2 directories, 0 files
rmdir
删除空目录
[root@csdn_dengyixia ~]# rmdir /a
rmdir: 删除 "/a" 失败: 目录非空
[root@csdn_dengyixia ~]# rmdir /a/b/c
[root@csdn_dengyixia ~]# tree /a
/a
└── b
1 directory, 0 files
rm
删除目录
-r或-R 递归处理
-f 强制删除
[root@csdn_dengyixia ~]# rm -rf /a
[root@csdn_dengyixia ~]# tree /a
/a [error opening dir]
0 directories, 0 files
mv
移动或重命名文件/目录
[root@csdn_dengyixia ~]# touch a.txt
[root@csdn_dengyixia ~]# ls a.txt
a.txt
[root@csdn_dengyixia ~]# mv a.txt /tmp/
[root@csdn_dengyixia ~]# ls a.txt
ls: 无法访问a.txt: 没有那个文件或目录
[root@csdn_dengyixia ~]# cd /tmp
[root@csdn_dengyixia tmp]# ls a.txt
a.txt
[root@csdn_dengyixia tmp]# mv a.txt test.txt
[root@csdn_dengyixia tmp]# ls a.txt
ls: 无法访问a.txt: 没有那个文件或目录
[root@csdn_dengyixia tmp]# ls test.txt
test.txt
cp
复制一个或多个文件/目录
-a :此参数的效果和同时指定 "-dpR" 参数相同。-d :当复制符号连接时,把目标文件或目录也建立为符号连接,并指向 与源文件或目录连接的原始文件或目录。-f :强行复制文件或目录,不论目标文件或目录是否已存在。-i :覆盖既有文件之前先询问用户。-p :保留源文件或目录的属性。-R/r :递归处理,将指定目录下的所有文件与子目录一并处理; 移动一个文件,并且重命名。cp和mv两个命令的区别是:是否要保留源文件。
[root@csdn_dengyixia tmp]# rm -rf /root/test.txt
[root@csdn_dengyixia tmp]# cp -rf test.txt /root/
[root@csdn_dengyixia tmp]# cat /root/test.txt
[root@csdn_dengyixia tmp]#
vim
vim是一个功能强大的文本编辑器,广泛用于Linux和其他类Unix操作系统上。它具有很多强大的特性和命令,适用于编辑各种文本文件。
工作模式
它有三种工作模式:命令行模式、插入模式、末行模式。
插入和编辑文本
`i` 进入插入模式,在当前光标位置之前插入文本。
`a` 进入插入模式,在当前光标位置之后插入文本。
`o` 在当前光标所在行下方插入一个新行,并进入插入模式。
`O` 在当前光标所在行上方插入一个新行,并进入插入模式。
`cw` 删除当前光标位置处的单词,并进入插入模式。
`dd` 删除当前行。
`yy` 复制当前行。
`p` 将复制的内容粘贴到光标下方一行。
`u` 撤销上一次操作。
移动和导航
`h` 光标左移。
`j` 光标下移。
`k` 光标上移。
`l` 光标右移。
`G` 跳转到文件的最后一行。
`gg` 跳转到文件的第一行。
`Ctrl + f` 向下滚动一页。
`Ctrl + b` 向上滚动一页。
`0` 跳转到当前行的行首。
`$` 跳转到当前行的行尾。
`/pattern` 在文件中向下查找指定模式。
`?pattern` 在文件中向上查找指定模式。
`n` 查找下一个匹配项。
`N` 查找上一个匹配项。
保存和退出
`:w` 保存文件。
`:wq` 保存并退出。
`:q` 退出(如果没有进行更改)。
`:q!` 强制退出,丢弃所有更改。
行号操作
`set nu` 在编辑器中显示行号
`set nonu` 在编辑器中取消显示行号