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扩展参数选项时,与如下参数一起使用有着不同的含义
\b:删除前一个字符 \c:最后不加换行符号 \f:换行但光标扔停留在原来位置 \n:换行且光标移至首行 \t:插入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来进入命令模式