linux学习笔记1_命令以及Vim

66 阅读22分钟

root 123456

虚拟机快捷键

Ctrl + G 进入虚拟机

Ctrl + Alt 切换主机和虚拟机

Ctrl + Alt + Enter 切换全屏

清屏:clear 或者 Ctrl + l

查看指令帮忙命令:指令 --help

查看文件大小命令:du -sh 目录或文件

虚拟机配置网络

查看网络配置命令: ifconfig

推荐桥接模式:ifconfig eth0 192.168.3.9 配置虚拟机的IP地址为:192.168.3.2 (临时生效,永久查看笔记2 IP地址配置)

eth0: 使用第一个虚拟网卡
192.168.3.9: 需要和主机同一个网段,我的主机是192.168.3.2

最后在主机用ipconfig 192.168.3.9查看主机和虚拟机是否互通

常用命令

命令 [-选项] [参数]

例如:ls -la /etc

一、目录处理命令

1. 显示目录文件: ls

原意:list

语法:ls [-选项] [文件或者目录]

ls -a  即all  显示所有文件,包括隐藏文件 
ls -l  即long 显示详细信息,和ll命令一样
ls -lh 即human 显示详细信息(人性化,比如文件大小原本默认是字节12500,可以显示12K)
ls -d  即dir 查看目录信息
ls -i  即inode 查看文件ID号

rwx rwx rw-

u g o

u所有者,g所属组,o其他人

r读,w写,x执行


2. 创建新目录: mkdir

原意:make directories

语法:mkdir [-选项] [目录名]

mkdir -p /tmp/Japan/boduo  -p 递归创建
mkdir -p /tmp/Japan/boduo /tmp/Japan/longze 递归创建多个目录  

3. 切换目录: cd

原意:change directory

语法:cd [目录]

cd /tmp/Japan/longze 切换到指定目录
cd ..                切换到上级目录

4. 显示当前目录: pwd

原意:print working directory


5. 复制文件或目录: cp

原意:copy

语法:cp -rp [原文件或目录] [目标目录]

-r 复制目录,-p 保留文件属性。可任选一个或者两个选项都有

cp -rp /tmp/Japan/boduo /root 将boduo目录复制到root目录底下,并且保持目录属性
cp -r /tmp/Japan/boduo /root/boduo1 复制boduo目录到/root底下,并且改名成boduo1

6. 剪切文件、改名: mv

原意:move

语法:mv [原文件或目录] [目标目录]

mv /tmp/Japan/boduo /tmp/Japan/longze /root 将boduo以及longze剪切到目录/root中
mv /tmp/Japan/boduo /root/boduo1 将boduo剪切到目录/root中,并且改成成boduo1
mv boduo boduo1 相当于改名,即剪切到当前目录

7. 删除空目录: rmdir

原意:remove empty directories

语法:rmdir [目录名]


8.删除文件:rm

原意:remove

语法:rm -rf [文件或者目录]

-r 删除目录,-f 强制执行(不会询问是否删除)

tips:

  • 删除多个文件: rm -rf 文件1 文件2 文件3

二、文件处理命令

1. 创建空文件: touch

语法:touch [文件名]

touch /tmp/yebin.list 在/tmp目录下创建文件yebin.list

2. 显示文件内容: cat

语法:cat [-选项] [文件名]

-n 显示内容行号

cat -n /tmp/yebin.list 查看yebin.list文件内容,有显示内容行号

3. 显示文件内容(反向显示): tac

语法:tac [文件名]

tac /tmp/yebin.list 从结尾向上展示文件内容

4. 分页显示文件内容: more

语法:more [文件名]

(空格或f) 翻页

(Enter) 换行

q或者Q 退出

more /etc/services

5. 分页显示文件内容(可向上翻页): less

语法:less [文件名]

除了 more功能外

pageUp 上翻页

pageDown 下翻译

键盘方向键上 上一行

键盘方向键下 下一行

q或者Q 退出

/关键字 可进行查找,n(next)键盘寻找命中的下一处,N上一处

less /etc/services
如果想查询service关键字 可进行/services输入

6. 显示文件前几行: head

语法:head [文件名]

-n 指定行数 如果未指定行数默认显示10行

head -n 20 /etc/services

7. 显示文件后几行: tail

语法:tail [文件名]

-n 指定行数

-f 动态显示文件末尾内容(常用,查看日志)

tail -n 18 /etc/services

8. 生成连接文件: ln

原意:link

语法:ln -s [原文件] [目标文件]

-s 创建软连接(类似windown快捷方式)

ln -s /etc/issue /tmp/issue.soft
ln /etc/issue /tmp/issue.hard

ls -l 后
lrwxrwxrwx. 1 root root   10 101 01:00 issue.soft -> /etc/issue
-rw-r--r--. 2 root root   47 626 2012 issue.hard

软链接说明:lrwxrwxrwx  l代表是链接,rwxrwxrwx表示所有人所有群组都有权限执行链接,但是真实的权限由目标文件/etc/issue决定
硬链接说明:
    1.类似拷贝 cp -p + 内容同步更新
    2.通过i节点识别。即原文件和硬链接文件 共同使用一个id所以才会同步更新(ls -i查看)
    3.不能跨分区(类似windown的C盘文件复制到D盘效果一样)
    4.不能针对目录使用(原文件不能是目录)

三、权限管理命令

1. 改变文件或者目录权限: chmod

原意:change the permissions mode of a file

执行权限:root或者文件所有者

语法:chmod [{ugoa}{+-=}{rwx}] [文件或者目录]

[mode=421] [文件或目录] r=4,w=2,x=1

-R 递归

说明:u所有者 g所属组 o其他人 a所有人
例如: 
ls -l /tmp/Japan/yebin.list
-rw-r--r--. 1 root root 29 930 05:08 yebin.list
1.对所有者进行添加执行权限:chmod u+x yebin.list 或者 chmod 744 yebin.list
2.不管原先所属组的权限,只想把所属组权限变成rwx: chmod g=rwx yebin.list 或者 chmod 674 yebin.list

权限总结:

代表字符权限对文件的含义对目录的含义
r读权限可以查看文件的内容(cat/more/less/head/tail)可以列出目录中的内容(ls)
w写权限可以修改文件的内容(vim)可以在目录中创建,删除文件(touch/mkdir/rmdir/rm)
x执行权限可以执行文件(javascript/command)可以进入目录(cd)

题外:创建用户yebin: useradd yebin passwd yebin


2. 改变文件或者目录的所有者: chown

原意:change file ownership

语法:chown [用户] [文件或目录]

-rw-r--r--. 1 root root    0 101 02:31 a.list
进行文件所有者变更之后 chown a.list yebin
-rw-r--r--. 1 yebin root    0 101 02:31 a.list

3. 改变文件或者目录的所属组: chgrp

原意:change file group ownership

语法:chgrp [用户组] [文件或目录]

题外:新增一个用户组1: groupadd group1
-rw-r--r--. 1 yebin root    0 101 02:31 a.list
对文件所属组变更  chgrp group1 a.list
-rw-r--r--. 1 yebin group1    0 101 02:31 a.list

4. 显示、设置文件的缺省权限: umask

原意:the user file-creation mask

语法:umask [-S]

-S 以rwx形式显示新建文件缺省权限

umask -S
u=rwx,g=rx,o=rx
即新建的文件夹默认缺省权限就是上述,新建的文件则没有x -> u=rw-,g=r--,o=r--
    
数字形式:执行 umask 077
最终缺省权限:
777 rwx rwx rwx
077 --- rwx rwx
---------------
    rwx --- --- 目录
    rw- --- --- 文件(文件默认都是没有x)

四、文件搜索命令

1. 文件搜索命令: find

注意:不要在服务器高峰期使用find命令(因为实时,消耗资源多),搜索范围越小越好

语法:find [搜索范围] [匹配条件]

-name 按照名称(iname不区分大小写)

-size 按照大小:+n大于,-n小于,n等于

-user 按照所有者

按照时间范围:[-选项] [+-]分钟

-amin 访问时间;-cmin 文件属性;-mmin 文件内容

-type 按照文件类型:f 文件;d 目录;l 软链接

-inum 根据i节点查找(ls -i 即inode 查看文件ID号)

技巧:

  • -a 两个条件同时满足;-o 两个条件任意满足一个(and,or)
  • -exec/-ok ls -l {} ; 查询到结果并且对搜索结果执行操作(这里是ls -l), -ok会对每个查询结果执行之前进行一次询问
1. 根据名称查询: 
    find /etc -name init 在/etc目录下精确查询init文件
    find /etc -name *init*   模糊查询
    find /etc -name init???  以init开头结尾3个字符的文件
    find /etc -iname init??? 以init开头结尾3个字符的文件,文件不区分大小写
2. 根据大小查询:
    find / -size +204800 在根目录查找大于100MB的文件(默认大小是0.5K,所以100MB = 204800)
    find / -size +100M 直接用单位表示可以可以,k(字节,小写),M,G,
3. 根据所有者查询
    find / -user yebin
4. 根据时间范围
    find /etc -cmin -30 在过去30分钟内被修改过属性的文件和目录
5. 根据类型查询
    find /etc -type f
6. 根据节点查询
    find /root -inum 262149
技巧:
    1. find /etc -name init -a -type f          在/etc目录下精确查询init文件并且是文件
    2. find /etc -inum 262149 -exec rm {} \;    在/etc目录下查询节点为262149的文件并且删除文件
总结:
    find [范围] [{-name,-iname,-size,-user,group,-type,-inum,.....}] [关键字/数值] [{-exec,-ok}]  [命令] {} \;

2. 文件搜索命令: locate(类似Everything)

说明:在文件资料库中查找文件

优点:基于/var/lib/mlocate/mlocate.db查询,速度快,不占用资源,可以用来查询系统的一些文件

缺点:

  • 不会实时,比如 touch /root yebin.list 不会实时刷新,需要手动调用updatedb命令(普通用户无权限)进行更新。
  • /tmp 缓存目录不生效,即/tmp目录不在locate收录范围之内

**语法:locate [匹配条件] **

-i 可以忽略大小写

[root@localhost ~]# locate -i yb.text
/root/Yb.text
/root/yb.text

3. 搜索命令所在目录以及别名信息: which

语法:which 命令

[root@localhost ~]# which cp
alias cp='cp -i'
	/bin/cp
    

4. 搜索命令所在目录以及帮助文档路径: whereis

语法:whereis 命令

[root@localhost ~]# whereis find
find: /bin/find /usr/bin/find /usr/share/man/man1p/find.1p.gz /usr/share/man/man1/find.1.gz

[root@localhost ~]# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man5/passwd.5.gz /usr/share/man/man1/passwd.1.gz

说明:1命令文件的帮助,5配置文件的帮助

5. 在文件中搜寻字串匹配的行并输出: grep

语法:grep -iv [指定字串] [文件]

-i 不区分大小写

-v 排除指定字串

技巧:-v这个可以用来查看一些配置文件或者shell脚本。屏蔽字串所在的行,注释一般都是 #开头,所以 ^#

1. -i用法
[root@localhost ~]# grep -i imagepump /etc/services
imagepump       27345/tcp               # ImagePump
imagepump       27345/udp               # ImagePump
说明:在/etc/services文件中查询字符imagepump,不区分大小写,并且所在行内容打印出来

2. -v用法
[root@localhost ~]# grep -v ^# /etc/inittab 
id:3:initdefault:



五、帮助命令:

说明:如果想查看命令的帮助信息,先用which 命令查看一下是系统的还是Shell命令。

例如:
[root@localhost ~]# which cd
/usr/bin/which: no cd in (/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
说明 cd是不是系统命令,需要用 help cd来进行帮助信息查看

1. 获得帮助信息: man

原意:manual -- 手册

语法:man [命令或者配置文件]

man ls
说明:会展示ls命令的说明信息,操作和less命令相同
man services
说明:services配置文件不能写成/etc/services,即不要写绝对路径
    
[root@localhost ~]# whereis passwd
passwd: /usr/bin/passwd /etc/passwd /usr/share/man/man5/passwd.5.gz /usr/share/man/man1/passwd.1.gz
说明:1命令的帮忙,5配置文件的帮忙
执行 man passwd后,默认展示的是命令的帮助,想要展示passwd配置文件的帮助 需要执行  man 5 passwd 
 

小技巧:

  • whatis 命令 -- 只查看命令简短的信息: whatis lis

  • apropos 配置文件 -- 只查看配置文件的简短信息: apropos inittab

  • 命令 --help -- 查看命令选项(常用): find --help

    查看系统时间命令帮助文档:man date
    NAME
           date - print or set the system date and time
    
    SYNOPSIS
           date [OPTION]... [+FORMAT]
           date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
    
    如果想修改系统时间:date [MMDDhhmm[[CC]YY][.ss]] 
    说明:前面是时区不用管,[MMDDhhmm[[CC]YY][.ss]] 月日时分年.秒   --> date 100302142025.15
    

2. 获取Shell内置命令的帮助信息: help

语法:help 命令

help umask


六、用户管理命令

1. 添加新用户: useradd

语法:useradd 用户名

tips: root才有权限

useradd yebin

2. 设置用户密码: passwd

语法:passwd 用户名

tips: root写法,如果当前登陆人是普通用户比如yebin,只要 passwd即可


3. 查看用户登录信息: who

语法:who

[root@localhost ~]# who
root     tty1         2025-10-04 07:56
root     pts/0        2025-10-04 08:00 (192.168.3.66)
yebin    pts/1        2025-10-04 08:01 (192.168.3.66)

说明:登录用户名  登录终端(tty本地登录,pts远程登录) 登录时间  登录IP

4. 查看登录用户详细信息: w

语法:w

[root@localhost ~]# w
 00:23:25 up 27 min,  3 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                07:56     ?     0.01s  0.01s -bash
root     pts/0    192.168.3.66     08:00    0.00s  0.04s  0.00s w
yebin    pts/1    192.168.3.66     08:01     ?     0.01s  0.01s -bash

第一行相当于 uptime命令:当前系统时间,运行了27分钟,负载情况
IDLE:空闲时间
JCPU:累计占用CUP时间
PCPU:当前执行命令占用CUP时间
WHAT:执行什么命令 

七、压缩解压命令

1. 压缩文件: gzip

语法: gzip [文件]

压缩后格式: .gz

tips:

  • 不保留原文件
  • 不能压缩目录
[root@localhost tmp]# cp /etc/services /tmp/boduo
[root@localhost tmp]# ls -lh
总用量 628K
-rw-r--r--. 1 root root 626K 104 00:42 boduo
[root@localhost tmp]# gzip boduo
[root@localhost tmp]# ls -lh
总用量 128K
-rw-r--r--. 1 root root 125K 104 00:42 boduo.gz

2. 解压.gz文件: gunzip 或 gzip -d

语法: gunzip [压缩文件]

例如:gunzip boduo.gz


3. 打包目录: tar

语法: tar 选项[-zcf] [压缩后文件名] [目录]

-c 打包

-v 显示详细信息

-f 指定文件名

-z 打包同时压缩

压缩后格式: .tar.gz

例如:tar -zcf Sanguo.tar.gz Sanguo

tips: 可以用来对目标目录进行备份

[root@localhost tmp]# cd Sanguo/
[root@localhost Sanguo]# ll
总用量 8
drwxr-xr-x. 2 root root 4096 104 01:03 Sanguo1
drwxr-xr-x. 2 root root 4096 104 01:03 Sanguo2
[root@localhost Sanguo]# cd ..
[root@localhost tmp]# ll
总用量 4
drwxr-xr-x. 4 root root 4096 104 01:03 Sanguo
[root@localhost tmp]# tar -zcf Sanguo.tar.gz Sanguo
[root@localhost tmp]# ll
总用量 8
drwxr-xr-x. 4 root root 4096 104 01:03 Sanguo
-rw-r--r--. 1 root root  136 104 01:05 Sanguo.tar.gz

4. 打包目录解压: tar

语法: tar 选项[-zcf] [压缩文件名]

-x 解包

-v 显示详细信息

-f 指定文件名

-z 解压缩

例如: tar -zxvf Sanguo.tar.gz

[root@localhost tmp]# ll
总用量 4
-rw-r--r--. 1 root root 136 104 01:05 Sanguo.tar.gz
[root@localhost tmp]# tar -zxvf Sanguo.tar.gz 
Sanguo/
Sanguo/Sanguo2/
Sanguo/Sanguo1/
[root@localhost tmp]# ll
总用量 8
drwxr-xr-x. 4 root root 4096 104 01:03 Sanguo
-rw-r--r--. 1 root root  136 104 01:05 Sanguo.tar.gz

5. 压缩文件: zip

语法: zip 选项[-r] [压缩后文件名] [文件或目录]

-r 压缩目录

压缩后格式: .zip

tips:

  • Windows以及Linux通用格式.zip
  • 会保留原文件
  • 文件和目录都支持,目录 -r选项即可解决

例如:

  • 压缩文件: zip yb.zip yebin.list
  • 压缩目录: zip -r Sanguo.zip /tmp/Sanguo
[root@localhost tmp]# ll
总用量 4
drwxr-xr-x. 4 root root 4096 104 01:03 Sanguo
-rw-r--r--. 1 root root    0 104 01:21 yebin.list
[root@localhost tmp]# zip yebin.zip yebin.list 
  adding: yebin.list (stored 0%)
[root@localhost tmp]# ll
总用量 8
drwxr-xr-x. 4 root root 4096 104 01:03 Sanguo
-rw-r--r--. 1 root root    0 104 01:21 yebin.list
-rw-r--r--. 1 root root  170 104 01:21 yebin.zip
[root@localhost tmp]# zip -r Sanguo.zip Sanguo
  adding: Sanguo/ (stored 0%)
  adding: Sanguo/Sanguo2/ (stored 0%)
  adding: Sanguo/Sanguo1/ (stored 0%)
[root@localhost tmp]# ll
总用量 12
drwxr-xr-x. 4 root root 4096 104 01:03 Sanguo
-rw-r--r--. 1 root root  480 104 01:22 Sanguo.zip
-rw-r--r--. 1 root root    0 104 01:21 yebin.list
-rw-r--r--. 1 root root  170 104 01:21 yebin.zip


6. 解压.zip文件: unzip

语法: unzip [压缩文件]

例如:unzip test.zip


7. 压缩文件: bzip2 (gz升级版)

语法: bzip2 选项[-k] [文件]

-k 产生压缩文件后是否保留原文件

压缩后格式: .bz2

例如:

  • bzip2 -k yebin.list 文件
  • **tar -cjf Sanguo.tar.bz2 Sanguo ** 目录
[root@localhost tmp]# bzip2 -k yebin.list 
[root@localhost tmp]# ll
总用量 8
drwxr-xr-x. 4 root root 4096 104 01:03 Sanguo
-rw-r--r--. 1 root root    0 104 01:21 yebin.list
-rw-r--r--. 1 root root   14 104 01:21 yebin.list.bz2
[root@localhost tmp]# tar -cjf Sanguo.tar.bz2 Sanguo
[root@localhost tmp]# ll
总用量 12
drwxr-xr-x. 4 root root 4096 104 01:03 Sanguo
-rw-r--r--. 1 root root  141 104 01:45 Sanguo.tar.bz2
-rw-r--r--. 1 root root    0 104 01:21 yebin.list
-rw-r--r--. 1 root root   14 104 01:21 yebin.list.bz2


8. 解压.bz2文件: bunzip

语法: bunzip2 选项[-k] [压缩文件]

-k 解压文件后是否保留原文件

例如:

  • bunzip2 -k yebin.list.bz2 文件
  • **tar -xjf Sanguo.tar.bz2 ** 目录

八、网络命令

1. 不常用: write,wall,mail

  • write 给其他用户发信息
  • wall 给所有用户发信息(广播信息)
  • mail 给其他用户发邮件

2. 测试网络连通性: ping

语法: ping 选项[-c 次数] [IP地址]

-c 指定发送次数

例如:

  • ping 192.168.3.1
  • **ping -c 5 192.168.3.1 **

3. 查看和设置网卡信息: ifconfig

原意:interface configure

语法:ifconfig 网卡名称 IP地址

例如:ifconfig eth0 192.168.3.9

[root@localhost tmp]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:69:AD:8E  
          inet addr:192.168.3.9  Bcast:192.168.3.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe69:ad8e/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4675 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1982 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:422810 (412.9 KiB)  TX bytes:207518 (202.6 KiB)
          Interrupt:19 Base address:0x2000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:32 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2276 (2.2 KiB)  TX bytes:2276 (2.2 KiB)

说明:
     1. eth0是固定网卡,lo是回环网卡
     2. Link encap:Ethernet 以太网
     3. HWaddr 00:0C:29:69:AD:8E  网卡Mac地址
     4. inet addr:192.168.3.9 本机IP地址
     5. Bcast:192.168.3.255 广播地址
     6. Mask:255.255.255.0  子网掩码又叫网络掩码

4. 列出目前与过去登入系统的用户信息: last

语法: last

tips:

  • 可以查看系统重启时间:reboot system boot 2.6.32-279.el6.i Wed Oct 1 00:52 - 02:29 (3+01:37)
[yebin@localhost ~]$ last
yebin    pts/3        192.168.3.66     Sat Oct  4 02:29   still logged in   
root     pts/2        192.168.3.66     Sat Oct  4 02:29   still logged in   
yebin    pts/1        192.168.3.66     Sat Oct  4 08:01   still logged in   
root     pts/0        192.168.3.66     Sat Oct  4 08:00   still logged in   
root     tty1                          Sat Oct  4 07:56   still logged in   
reboot   system boot  2.6.32-279.el6.i Sat Oct  4 07:56 - 02:29  (-5:-26)   
root     pts/0        192.168.3.66     Fri Oct  3 06:47 - crash (1+01:08)   
root     tty1                          Fri Oct  3 06:46 - crash (1+01:10)   
reboot   system boot  2.6.32-279.el6.i Fri Oct  3 06:42 - 02:29  (19:46)    
yebin    pts/1        192.168.3.66     Wed Oct  1 02:44 - 03:16  (00:31)    
root     pts/0        192.168.3.66     Wed Oct  1 00:59 - 03:16  (02:17)    
root     tty1                          Wed Oct  1 00:55 - crash (2+05:47)   
reboot   system boot  2.6.32-279.el6.i Wed Oct  1 00:52 - 02:29 (3+01:37)   
root     pts/1        192.168.3.2      Tue Sep 30 05:36 - 05:37  (00:01)    
root     pts/0        192.168.3.2      Tue Sep 30 04:06 - crash  (20:45)    
root     pts/1        192.168.3.2      Tue Sep 30 02:46 - 04:21  (01:35)    
root     pts/0        192.168.3.2      Tue Sep 30 02:42 - 03:02  (00:19)    
root     tty1                          Tue Sep 30 02:40 - crash  (22:11)    
reboot   system boot  2.6.32-279.el6.i Tue Sep 30 02:39 - 02:29 (3+23:49)   
root     pts/0        192.168.3.2      Mon Sep 29 05:28 - 05:29  (00:00)    
root     pts/2        192.168.3.2      Mon Sep 29 04:41 - 04:57  (00:16)    
root     pts/1        192.168.3.2      Mon Sep 29 04:34 - crash  (22:05)    
root     pts/0        192.168.3.2      Mon Sep 29 02:31 - 04:49  (02:18)    
root     pts/1        192.168.3.2      Mon Sep 29 02:28 - 02:28  (00:00)    
root     pts/0        192.168.3.2      Mon Sep 29 02:27 - 02:29  (00:01)    
root     tty1                          Mon Sep 29 02:11 - crash (1+00:28)   
reboot   system boot  2.6.32-279.el6.i Mon Sep 29 02:10 - 02:29 (5+00:18)   
root     tty1                          Sun Sep 28 04:27 - crash  (21:43)    
reboot   system boot  2.6.32-279.el6.i Sun Sep 28 04:26 - 02:29 (5+22:02)   

5. 检查某特定用户上次登录时间: lastlog

语法: lastlog

例如:

  • lastlog -u 用户ID(用户名也行) 查看具体用户上次登录时间

  • [yebin@localhost ~]$ cat /etc/passwd|grep yebin
    yebin:x:500:500::/home/yebin:/bin/bash
    [yebin@localhost ~]$ lastlog -u 500
    用户名           端口     来自             最后登陆时间
    yebin            pts/3    192.168.3.66104 02:29:40 +0800 2025
    
    
[yebin@localhost ~]$ lastlog
用户名           端口     来自             最后登陆时间
root             pts/2    192.168.3.66104 02:29:31 +0800 2025
bin                                        **从未登录过**
daemon                                     **从未登录过**
adm                                        **从未登录过**
lp                                         **从未登录过**
sync                                       **从未登录过**
shutdown                                   **从未登录过**
halt                                       **从未登录过**
mail                                       **从未登录过**
uucp                                       **从未登录过**
operator                                   **从未登录过**
games                                      **从未登录过**
gopher                                     **从未登录过**
ftp                                        **从未登录过**
nobody                                     **从未登录过**
dbus                                       **从未登录过**
vcsa                                       **从未登录过**
rpc                                        **从未登录过**
ntp                                        **从未登录过**
saslauth                                   **从未登录过**
postfix                                    **从未登录过**
haldaemon                                  **从未登录过**
rpcuser                                    **从未登录过**
nfsnobody                                  **从未登录过**
abrt                                       **从未登录过**
avahi                                      **从未登录过**
tcpdump                                    **从未登录过**
sshd                                       **从未登录过**
oprofile                                   **从未登录过**
yebin            pts/3    192.168.3.66104 02:29:40 +0800 2025


6. 显示数据包到主机间的路径: traceroute

语法: traceroute

例如:traceroute www.sina.com.cn


7. 显示网络相关信息: netstat

原意:network state

语法: netstat [选项]

-t TCP协议

-u UDP协议

-l 监听

-r 路由

-n 显示IP地址和端口号

例如:

  • netstat -tlun 查看本机监听的端口
  • netstat -an 查看本机所有的网络连接(除了监听的还可以查看到已连接的(ESTABLISHED))
  • netstat -rn 查看本机路由表(查网关)
[yebin@localhost ~]$ netstat -tlun
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:50260               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:6010              0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:6011              0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:6012              0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:6013              0.0.0.0:*                   LISTEN      
tcp        0      0 :::111                      :::*                        LISTEN      
tcp        0      0 :::22                       :::*                        LISTEN      
tcp        0      0 ::1:631                     :::*                        LISTEN      
tcp        0      0 ::1:25                      :::*                        LISTEN      
tcp        0      0 :::58969                    :::*                        LISTEN      
tcp        0      0 ::1:6010                    :::*                        LISTEN      
tcp        0      0 ::1:6011                    :::*                        LISTEN      
tcp        0      0 ::1:6012                    :::*                        LISTEN      
tcp        0      0 ::1:6013                    :::*                        LISTEN      
udp        0      0 0.0.0.0:983                 0.0.0.0:*                               
udp        0      0 0.0.0.0:5353                0.0.0.0:*                               
udp        0      0 0.0.0.0:1002                0.0.0.0:*                               
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               
udp        0      0 0.0.0.0:41846               0.0.0.0:*                               
udp        0      0 0.0.0.0:631                 0.0.0.0:*                               
udp        0      0 0.0.0.0:48905               0.0.0.0:*                               
udp        0      0 :::983                      :::*                                    
udp        0      0 :::111                      :::*                                    
udp        0      0 :::39185                    :::*      
[yebin@localhost ~]$ netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 0.0.0.0:111                 0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:50260               0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:631               0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:6010              0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:6011              0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:6012              0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:6013              0.0.0.0:*                   LISTEN      
tcp        0      0 192.168.3.9:22              192.168.3.66:50378          ESTABLISHED 
tcp        0      0 192.168.3.9:22              192.168.3.66:58155          ESTABLISHED 
tcp        0      0 192.168.3.9:22              192.168.3.66:50334          ESTABLISHED 
tcp        0      0 192.168.3.9:22              192.168.3.66:58149          ESTABLISHED 
tcp        0      0 :::111                      :::*                        LISTEN      
tcp        0      0 :::22                       :::*                        LISTEN      
tcp        0      0 ::1:631                     :::*                        LISTEN      
tcp        0      0 ::1:25                      :::*                        LISTEN      
tcp        0      0 :::58969                    :::*                        LISTEN      
tcp        0      0 ::1:6010                    :::*                        LISTEN      
tcp        0      0 ::1:6011                    :::*                        LISTEN      
tcp        0      0 ::1:6012                    :::*                        LISTEN      
tcp        0      0 ::1:6013                    :::*                        LISTEN      
udp        0      0 0.0.0.0:983                 0.0.0.0:*                               
udp        0      0 0.0.0.0:5353                0.0.0.0:*                               
udp        0      0 0.0.0.0:1002                0.0.0.0:*                               
udp        0      0 0.0.0.0:111                 0.0.0.0:*                               
udp        0      0 0.0.0.0:41846               0.0.0.0:*                               
udp        0      0 0.0.0.0:631                 0.0.0.0:*                               
udp        0      0 0.0.0.0:48905               0.0.0.0:*                               
udp        0      0 :::983                      :::*                                    
udp        0      0 :::111                      :::*                                    
udp        0      0 :::39185                    :::*          

8. 配置网络: setup

tips:

  • 设置好后,网络会永久生效
  • 记得运行 service network restart

9. 挂载命令: mount

语法: mount [-t 文件系统] 设备文件名 挂载点

例如:mount -t iso9660 /dev/sr0 /mnt/cdrom 将光盘挂在到/mnt/cdrom


九、关机重启命令

1. 关机重启命令: shutdown(推荐,更安全)

语法:shutdown [选项] 时间

-c 取消前一个关机命令

-h 关机(half)

-r 重启(reboot)

例如:

  • shutdown -h now 立刻关机
  • shutdown -h 20:30 指定关机时间(20:30)
  • shutdown -r now 立刻重启

2. 系统运行级别

  • 0 关机
  • 1 单用户(类似windows安全模式)
  • 2 不完全多用户,不含NFS服务(文件传输服务)
  • 3 完全多用户
  • 4 未分配
  • 5 图形界面
  • 6 重启
[root@localhost ~]# cat /etc/inittab 

# Default runlevel. The runlevels used 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)
# 
id:3:initdefault:


3. 退出登录命令: logout


文本编辑器Vim

简介

说明 进入 退出

  • 命令模式:类似对文件预览 vi 文件 :wq
  • 插入模式:对文件内容进行编辑(新增,编辑,删除,复制,剪切等) aio Esc键
  • 编辑模式:对文件进行操作(保存,另存为,设置行号,保存退出等) : 命令以回车结束运行

一、Vim常用操作

1. 插入命令:aio(a后i前o下行,A行尾I行首O上行)

命令作用
a在光标所在字符后插入
A在光标所在行尾插入
i在光标所在字符前插入
I在光标所在行首插入
o在光标下插入新行
O在光标上插入新行

2. 定位命令

命令作用
:set nu设置行号
:set nonu取消行号
gg到第一行
G到最后一行
nG到第几行(6G)
:n到第几行
0移至行首
$移至行尾

3. 删除命令:撤销u

命令作用
x删除光标所在处字符
nx删除光标所在处后n个字符
dd删除光标所在行,ndd删除n行
dG删除光标所在行到文件末尾内容
D删除光标所在处到行尾内容
:n1,n2d删除指定范围的行。如:3,4d
u取消上一步操作

4. 复制剪切命令:

命令作用
yy复制当前行
nyy复制当前行以下n行
dd剪切当前行
ndd剪切当前行以下n行
p、P粘贴在当前光标所在行下或上

5. 替换和取消命令:

命令作用
r取代光标所在处字符
R从光标所在处开始替换字符,按Esc结束
u取消上一步操作

6. 搜索和搜索替换命令

命令作用
/string搜索指定字符串
搜索时忽略大小写:set ic
n,N搜索指定字符出现下一处或上一处
:%s/old/new/g全文替换指定字符串
例如::%s/123/999/g
:n1,n2s/old/new/g一定范围内替换指定字符串
例如::4,10s/123/999/g/

7. 保存和退出命令

命令作用
:w保存修改
:w new_filename另存为指定文件
:wq保存修改并退出
ZZ保存修改并退出(快捷键)
:q!不保存修改退出
:wq!保存修改并退出(文件所有者或者root可用)

二、Vim使用技巧(针对编辑模式即 : 进入编辑模式)

1. 将目标文件内容倒入到当前vim编辑的文件中: r 文件名

例如::r /etc/inssue

这是123
这是123
这是123       
这是123
CentOS release 6.3 (Final)
Kernel \r on an \m

这是123 


2. 不退出Vim编辑情况下执行相应的操作命令: !

例如:!which ls


3. 将1,2结合起来可以快速将操作命令结果倒入到Vim编辑的文件中

例如:

  • r !date 将日期倒入到编辑文件中:2025年 10月 06日 星期一 09:39:19 CST
  • r !which cp:/bin/cp
  • ... 等等
这是123
这是123
这是123
这是123
CentOS release 6.3 (Final)
Kernel \r on an \m

这是123
20251006日 星期一 09:39:19 CST
/bin/cp


4. 自定义快捷键:map

用法:map 快捷键 触发命令

例1:快速注释当前行

  • map ^P I# : map后 + Ctrl V P --> ^P快捷键就为Ctrl + P,I# --> 跳到行首前加#然后退出编辑模式

例2:取消注释

  • map ^B 0x : : map后 + Ctrl V B --> ^P快捷键就为Ctrl + B,0x --> 光标跳到行首删除光标字符

说明:这里的快捷键是P,B都可以自定义


5. 替换: ab

例如:ab yb yeyeyesuif

说明:输入yb 后自动会转成 yeyeyesuif


说明:有些时候在重启服务器之后,定义的快捷键会消失,这时候我们需要在用户的家目录下写配置文件,保存快捷键 root用户在 /root/.vimrc 其他用户在 /home/username/.vimrc在里面进行编辑,永久生效