linux必备命令

init命令

linux系统启动分为六种级别分别为:

  • 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动 
  • 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆 
  • 运行级别2:多用户状态(没有NFS) 
  • 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式 
  • 运行级别4:系统未使用,保留 
  • 运行级别5:X11控制台,登陆后进入图形GUI模式 
  • 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
init 0:关机
init 6:重启

sysmctl组命令

reboot:重启
poweroff:关机

sync命令

sync命令主要是用于把数据从buffer写回磁盘

[root@localhost data]# sync 

cd命令详解

cd命令主要用于目录的切换比如

[root@localhost logs]# cd /home/
[root@localhost logs]# cd -
[root@localhost data]# cd ~

tree命令

以树状结构显示目录或者文件,想使用tree这个命令必须要先安装他的包,yum install tree

具体参数如下:

-d:只显示目录
-L:遍历目录最大层数,后面加几就到几

默认全部显示,例如:

[root@localhost data]# tree /data/
/data/
├── 1.txt
├── 2.txt
├── 3.txt
├── a
│   └── a.txt
└── lost+found

which命令

which命令主要是用来查找命令存放路径,比如:

[root@localhost data]# which cat 
/usr/bin/cat

ls命令

ls命令主要用于浏览目录下的文件或者文件夹,./代表当前文件路径,.开头的文件或者目录代表隐藏文件或者目录

参数说明

-a:代表查看所有文件或者目录,包括隐藏文件
-l:使用较长格式列出信息
-t:按照时间从新到旧列出信息
-r:反转顺序,倒序
-S:按照文件大小排序

pwd命令

pwd命令主要是用于显示或者查看当前所在的目录路径

[root@localhost var]# pwd
/var

mkdir命令

mkdir命令主要是用来创建目录的

常用参数

-p:递归创建
-v:显示详细信息

history命令

主要是用来查看操作历史的

history
            环境变量:
                history -d:OFFSET#删除某一行
                history -c: 清空历史命令
                history #:  显示历史中最近的#条命令
                history -a: 手动追加当前回话缓冲区的命令历史至历史文件中
            调用历史中的命令:
                !#:重复执行第#条命令
                !!:
                !string

cp命令

主要是用来复制文件或者目录

常用选项:
-i:交互式(默认已经有)
-r:递归复制目录及内部
-a:归档,保留文件所有属性

mv命令

主要是移动文件或者目录,或者重命名文件或者目录

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...
    如果SRC是单个文件:    
    常用选项:
        -i:交互式
        -f:强制

rm命令

主要是用来删除文件或者目录

常用选项:
    -i:交互式
    -f:强制删除
    -r:递归 
-v:显示详细信息
rm -rf

 touch命令

主要是用来创建文件或者修改文件的访问时间

常用选项

-a: 只更改访问时间
-m:只修改更改时间

cat命令

主要是用来查看文件内容的,也可以多行输入

常用选项

-n:显示行号

[root@localhost var]# cat > 1.txt <<EOF
> this is line1
> this is line2
> this is line3
> EOF
note:追加重定向为>>,重定向为>

head命令

head一般也是用来查看问价的,只不过默认查看前10行

常用选项

-v:显示头部信息
-#:指定显示前#行

tail命令

tail跟head一样,只不过tail是用来查看末尾行的,默认是后10行

常用选项

-#:查看后#行信息

echo命令

echo命令主要是用来打印字符或者回显,例如打印echo ok会显示ok,echo ok > 1.txt会把ok输入到1.txt文件中

使用-e扩展参数选项时,与如下参数一起使用有着不同的含义

:删除前一个字符
c:最后不加换行符号
f:换行但光标扔停留在原来位置

:换行且光标移至首行
	:插入tab
v:与f相同
\:插入""字符

df命令

df常用于磁盘分区查询,常用命令为df -h

常用选项

-a:列出所有的文件系统的使用情况,包括虚拟文件系统
-h:以人们可读的形式显示出来
-i:查看inode总个数和已用个数

du命令

du命令常用于查看文件在磁盘中的使用量,常用命令du -sh,查看当前目录所有文件及目录的大小

常用参数

-c:显示总计信息
-s:只分别计算命令列中每个参数所占的总用量
-h:以可读性较好的方式显示尺寸(例如1KB,1MB,1GB)
-a:显示所有文件的磁盘用量,不仅仅是目录

man命令

man命令是用来查命令格式或者命令的用法,就记住一句话,有困难找男人帮忙,比如:

[root@localhost data]# man ls

shutdown命令

此命令可以关机,可以重启,用法为:

shutdown -h 10:10分钟后关机
shutdown -h 0:立即关机
shutdown -h now:1立即关机
shutdown -c:取消关机任务
shutdown -r 10: 10分钟后重启
shutdown -r 0:立刻重启
shutdown -r now:立即重启

date命令

显示系统时间和日期

可用参数为:

例1:

[root@localhost data]# date
2019年 11月 11日 星期一 20:21:30 CST

例2:如果想自定义格式如下:

[root@localhost data]# date +"%Y-%m-%d %H:%M:%S"
2019-11-11 20:24:27

systemctl

systemctl可以用来管理服务

[root@localhost data]# systemctl stop firewalld
    #stop可以是start或者restart

hostname和hostnamectl

hostname和hostnamectl都可以修改主机名,但是hostnamectl是永久性修改,也就是说重启也生效,而hostname修改后重启失效

[root@mynode1 ~]# hostname mynode1
[root@mynode1 ~]# hostnamectl set-hostname mynode1

dd命令

dd命令在linux当中是一个很好用的命令,可以指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换,它比cp命令更加高效

[root@mynode1 ~]# dd if=lib.tar of=lib.tar.bak bs=400M count=5

参数解释:

if:来源文件
of:目标文件
bs:block大小
count:总数

我们也可以利用dd命令来进行压力测试,然后关注linux系统的cpu和mem,硬盘的使用情况,例如:

[root@mynode1 ~]# dd if=/dev/zero of=/dev/null bs=500M count=2000

id命令

id命令是用来查询用户身份的

[root@mynode1 data]# id root
uid=0(root) gid=0(root) 组=0(root)

whoami命令

whoami用来查看当前登录的用户

[root@mynode1 data]# whoami
root

w命令

w命令查看当前所有登录用户信息并且当前正在干什么

[root@mynode1 data]# w
 21:10:03 up  3:12,  5 users,  load average: 0.00, 0.09, 0.18
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      186月19  1:31m  0.24s  0.24s -bash
root     pts/0    192.168.254.1    186月19 145days  0.56s  0.56s -bash
root     pts/1    192.168.254.1    20:28    3.00s  1:09   0.01s w
root     pts/3    192.168.254.1    21:09    3.00s  0.08s  0.04s top

ping,ifconfig,ip,telnet,uname命令

ping命令是用来测试网络连通性的

[root@mynode1 data]# ping -c 1 -W 1 www.baidu.com

ifconfig和ip是用来查看ip地址等信息

[root@mynode1 data]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:fa:b5:33 brd ff:ff:ff:ff:ff:ff
    inet 192.168.254.13/24 brd 192.168.254.255 scope global noprefixroute dynamic ens33
       valid_lft 970sec preferred_lft 970sec
    inet6 fe80::20c:29ff:fefa:b533/64 scope link 
       valid_lft forever preferred_lft forever


[root@mynode1 data]#
ifconfig -a ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.254.13 netmask 255.255.255.0 broadcast 192.168.254.255 inet6 fe80::20c:29ff:fefa:b533 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:fa:b5:33 txqueuelen 1000 (Ethernet) RX packets 82402 bytes 52705960 (50.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 88887 bytes 98922972 (94.3 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 83 bytes 9942 (9.7 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 83 bytes 9942 (9.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

telnet可以远程连接,默认为23号端口,也可以测试主机端口是否开启

[root@mynode1 data]# telnet 127.0.0.1 22
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4

uname可以查看系统内核和主机名

[root@mynode1 data]# uname -n
mynode1
[root@mynode1 data]# uname -r
3.10.0-957.el7.x86_64
[root@mynode1 data]# uname -a
Linux mynode1 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

vim编辑器

介绍

vim编辑器是linux下标准的编辑器,就相当于windows当中的记事本一样,vim编辑器也是我们作为运维工程师必不可少的工具,学完vim编辑器,你可以在任意的unix内核的系统中畅行无阻比如:redhat,centos,AIX,UNIX等...

vim工作模式

命令模式(默认):刚进入vim的时候,默认就是命令模式,可以复制删除等
输入模式:可以输入内容
末行模式:可以输入很多管理命令,比如查找,显示行号等信息...

安装

yum install vim -y

命令模式

a:在当前光标所在字符的后面,转为输入模式
home:跳到当前光标所在行的行首
end:跳到当前光标所在行的末尾
o:在当前光标所在行的下方,新建一行,并转为输入模式
O:在当前光标所在行的上方,新建一行,并转为输入模式
r:替换光标处字符
x:删除当前光标的字符
D:删除光标往右的字符
d0:删除光标往左的字符
gg:把光标移动到第一行
shift+g:把光标移动到最后一行
dd:剪切光标所在行
ndd:剪切光标往下指定的行数(包括本行)
u:撤销上一次的操作
Ctrl+f:下滚一屏 
Ctrl+b:上滚一屏
dG:删除光标所在位置往下的所有行
yy:复制一行内容
nyy:指定复制光标往下的行数(包括本行)
p:粘贴
/findname:在文本中查找内容,如果遇到特殊符号需要来进行转义
    n:下一跳内容
    N:上一跳内容
v        字符选择,会将光标经过的地方反白选择
V         行选择,会将光标经过的行反白选择
Ctrl+v     块选择,可以用长方形的方式选择资料 (提制竖列)
    y         将反白的地方复制
    d         将反白的地方删除
    P        粘贴

末行模式

:wq                    保存退出
:q!                    不保存退出
:s/old/new            在一行内替换头一个字符串old为新的字符串new
 :s/old/new/g          在一行内替换所有的字符串old为新的字符串new   
 :%s/old/new/g         在文件内替换所有的字符串old为新的字符串new    
 :%s/old/new/gc       进行全文替换时询问用户确认每个替换需添加c选项
:1,$ s/^/#/g        第一行到最后一行的最前面加上#号
:1,$ s/^#//g        第一行到最后一行去掉最前面的#号
:set nu                显示行号
:set nonu            去掉行号
:set nohl            去除高亮
:w filename            将当前数据保存到另一个文件
:r filename            将读取到的文件追加到光标的下一行
:! command            暂时离开vim编辑器执行系统的shell命令
:sp filename        开启一个新窗口,如果有加 filename, 表示在新窗口开启一个新文件,否则表示两个窗口为同一个文件内容(同步显示)。

note:编辑模式和末行模式都需要先进入到命令模式,用ESC来进入命令模式

原文地址:https://www.cnblogs.com/fengzi7314/p/10770351.html