常用命令
命令 | 参数 | 作用 |
---|---|---|
wc | 显示行数,单词数,字节数 | |
-l | 只显示行数 | |
-w | 只显示单词数 | |
-c | 只显示字节数 | |
grep | 搜索关键词 格式:grep [关键词] [文件] | |
-c | 显示找到的行数 | |
-i | 忽略大小写 | |
-n | 显示行号 | |
find | -name | 匹配名称查找 |
-user | 匹配所有者查找 | |
-group | 匹配所有组查找 | |
-exec ······ {} ; | 执行命令 | |
tar | -czvf [压缩包文件名] [文件列表] | 使用gzip压缩 |
-xzvf [压缩包文件名] (-C [指定目录]) | 使用gzip解压(到指定路径) | |
-cjvf [压缩包文件名] [文件列表] | 使用bzip2压缩 | |
-xjvf [压缩包文件名] [文件列表] | 使用bzip2解压(到指定路径) | |
- tvf [压缩包文件名] | 查看压缩包的文件 | |
-xvf [压缩包文件名] [要提取的文件] | 解压出某个文件 | |
cp | cp {filename1,filename2,…} 目标/ | 一次复制多个文件 |
diff | -brief | 只显示两个文件相同或不同 |
-c | 显示具体文件哪些地方不同 |
date
[root@zgx Desktop]# date
Sun Oct 7 15:27:35 CST 2018
[root@zgx Desktop]# date "+%Y-%m-%d-%H:%M:%S 一年中的第%j天"
2018-10-07-15:33:14 一年中的第280天
[root@zgx Desktop]# date "+%X"
03:33:56 PM
[root@zgx Desktop]# date "+%x"
10/07/2018
[root@zgx Desktop]# date "+%A"
Sunday
[root@zgx Desktop]# date "+%a"
Sun
[root@zgx Desktop]# date -s "20141205 21:00:00"
Fri Dec 5 21:00:00 CST 2014
命令 | 作用 |
---|---|
%B | 完整月份(January-December) |
%b | 缩写月份(Jan-Dec) |
管道符
命令 | 作用 |
---|---|
命令 2>> 文件 | 将错误文件追加到文件中 |
命令 &> 文件 | 将标准输出和错误输出都追加到文件中 |
命令 &>> 文件 | 将标准输出和错误输出都重写到文件中 |
vim
命令模式的命令
dd 删除光标所在行
5dd 删除光标开始5行
u 撤销
p 将之前删除的或者复制的文件粘贴到光标后面
末行命令
:set nu 设置行号
:set nonu 不显示行号
:命令 执行该命令
:整数 跳转到某行
进程
ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2200 0.5 1.7 255216 36268 tty1 Rsl+ 20:47 0:16 /usr/bin/Xorg
root 2999 0.0 0.1 116260 3048 pts/0 Ss 20:48 0:00 /bin/bash
root 3766 0.0 0.0 123356 1388 pts/0 R+ 21:40 0:00 ps -au
top
动态显示 ps -aux
配置网络
网卡配置文件
/etc/sysconfig/network-scripts/ifcfg-eno16777736
计划任务
一次性任务
at 19:37
查询一次性任务
at -l
删除一次性任务
atrm 任务序号
周期性任务(注意一行写一条,所有命令用绝对地址 如/usr/bin/rm)
crontab -e
23 14 * * * /bin/echo "rhcha"
查看周期性任务
crontab -l
删除所有周期性任务
crontab -r
脚本
接收脚本参数
$0 脚本名称
$?上一个命令返回值
$* 返回所有参数
$# 一共多少参数
if控制语句(if后若有多行要执行,需写then)
if [ ! -e test ]
then
echo "Y第一层"
echo "Y第二层"
elif [ -d /root ]
then
echo "E第一层"
echo "E第二层"
else
echo "N第一层"
echo "N第二层"
fi
for控制语句 (双括号)
read -p "这是read -p 输出的提示文字,输入与将放入变量TR1中: " TR1
echo "TR1的值为$TR1"
for ((i =1;i<=10;i++))
do
echo "这是第$i次循环"
done
for filename in `ls /`
do
echo "***************************************"
echo "/下有一个文件名为$filename的文件"
done
while控制语句
i=1
while [ $i -lt 50 ]
do
for FILE in `ls /`
do
echo "这是第$i次循环"
let i++
done
done
case控制语句
echo "想终止程序,请强制退出"
while true
do
read -p "请输入一个字符" key
case $key in
[a-z]|[A-Z])
echo "输入的是字母"
;;
[0-9])
echo "输入的是数字"
;;
*)
echo "其他字符"
esac
done
控制权限
• 第一种(针对其他所有人)
chmod
• 第二种(针对某一个用户)
这设置了这种权限的话用ls 命令查看目录会有一个加号
[jensen@OMEN /]$ ll -d /root/
dr-xrwx---+ 18 root root 4096 Oct 8 10:43 /root/
设置:setfacl -Rm u:auser:rwx /目录
查看:getfacl /目录
• 第三种(特殊权限)
suid rwsr-xr-x
sgid rwxr-sr-x
sbit rwxrwxrwt
• 第四种(隐藏权限)
chattr lsattr
如果一个文件在chmod中为所有者赋予了不可读权限(root是所属人除外),则即使在acl中添加了权限,也不行,以chmod的规定优先
但是在用chmod为其他人设限,在acl中是可以开启权限的
给用户添加sudo权限(使用命令的绝对地址、添加NOPASSWD命令可以让用户不用每次都要密码)
[root@OMEN ~]# visudo
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
jensen ALL=(ALL) ALL
ryan ALL=(ALL) /usr/bin/cat
sea ALL=NOPASSWD ALL
存储
开机自动挂载配置文件
[root@OMEN ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat Sep 29 08:18:01 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 1 1
UUID=ada1cb63-5084-42d2-b305-2247651b8e37 /boot xfs defaults,uquota 1 2
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/sdb1 /newFS xfs defaults 0 0
/dev/sdb2 swap swap defaults 0 0
/dev/cdrom /media/cdrom iso9660 defaults 0 0
添加磁盘
1. 首先插上硬盘
2. 用fdisk命令为磁盘分区并加载
[root@OMEN ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x614d6cdc
Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 14682111 5242880 83 Linux
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (3,4, default 3):
First sector (14682112-41943039, default 14682112):
Using default value 14682112
Last sector, +sectors or +size{K,M,G} (14682112-41943039, default 41943039): +3G
Partition 3 of type Linux and of size 3 GiB is set
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x614d6cdc
Device Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 14682111 5242880 83 Linux
/dev/sdb3 14682112 20973567 3145728 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
如果此时没有/dev/sdb3文件,是因为指令没写进内核,执行两边partprobe命令就可以
3. 格式化分区(敲入mkfs按tab)(添加swap分区时使用mkswap命令)
[root@OMEN ~]# mkfs
mkfs mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs
mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat
[root@OMEN ~]# mkfs.xfs /dev/sdb3
- 挂载 使用mount临时挂载或者配置为开机自动挂载
查看文件数据的占用量
[root@OMEN newFS]# du -sh /newFS/
35M /newFS/
限制用户存储
- 首先在etc/fstab中给某个分区加入uquota服务,重启
[root@OMEN ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Sat Sep 29 08:18:01 2018
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/rhel-root / xfs defaults 1 1
UUID=ada1cb63-5084-42d2-b305-2247651b8e37 /boot xfs defaults,uquota 1 2
/dev/mapper/rhel-swap swap swap defaults 0 0
/dev/sdb1 /newFS xfs defaults 0 0
/dev/sdb2 swap swap defaults 0 0
/dev/cdrom /media/cdrom iso9660 defaults 0 0
[root@OMEN newFS]# xfs_quota -x -c "limit bsoft=3M bhard=6M isoft=3 ihard=6 tracy" /boot/
编辑用户储存限制
edquota
-u是针对用户 -g是针对用户组
配置yum仓库
第一步
cd /etc/yum.repos.d/
第二步
vim newyumrepo.repo
[newyumrepo]
name=newyumrepo
baseurl=file:///media/cdrom
enable=1
gpgcheck=0
(如果gpgcheck=1,此处加一个gpgkey=)
添加用户或组
添加指定gid的组
groupadd -g (1000-)
添加指定uid的用户
useradd -u 50000 natasha
添加指定附属组的用户
useradd -g group1 natasha
添加指定扩展组的用户
useradd -G group1 natasha
添加无法登陆的用户
useradd -s /sbin/nologin natasha
修改文件的所属人和所属组
[root@centOS tmp]# ll fstab
-rw-r--r-- 1 root root 313 8月 23 17:20 fstab
修改所属人
[root@centOS tmp]# chown zgx fstab
[root@centOS tmp]# ll fstab
-rw-r--r-- 1 zgx root 313 8月 23 17:20 fstab
修改所属组
[root@centOS tmp]# chgrp jxust fstab
[root@centOS tmp]# ll fstab
-rw-r--r-- 1 zgx jxust 313 8月 23 17:20 fstab
组建RAID
mdadm 命令用于管理 Linux 系统中的软件 RAID 硬盘阵列,格式为“mdadm [模式] <RAID 设备名称> [选项] [成员设备名称]”。
- 步骤1 先组RAID
mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
-C 参数代表创建一个 RAID 阵列卡;-v 参 数显示创建的过程,同时在后面追加一个设备名称/dev/md0,这样/dev/md0就是创建后的RAID 磁盘阵列的名称;-a yes 参数代表自动创建设备文件;-n 4 参数代表使用 4 块硬盘来部署这个 RAID 磁盘阵列;而-l 10 参数则代表 RAID 10 方案;最后再加上 4 块硬盘设备的名称就搞定了。
- 步骤2 格式化
mkfs.ext4 /dev/md0
- 步骤3 写入开机配置文件,使之开机挂载
修复RAID
- 步骤1 检测是哪块坏了
[root@OMEN ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Wed Oct 10 09:25:55 2018
Raid Level : raid10
Array Size : 41909248 (39.97 GiB 42.92 GB)
Used Dev Size : 20954624 (19.98 GiB 21.46 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sat Oct 13 09:29:35 2018
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 1
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Name : OMEN:0 (local to host OMEN)
UUID : b242eb90:4f56ba22:aa30e58d:f4f7a12c
Events : 21
Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 32 1 active sync /dev/sdc
2 8 48 2 active sync /dev/sdd
3 8 64 3 active sync /dev/sde
0 8 16 - faulty /dev/sdb
- 步骤2 关机 换掉坏的硬盘 启动 输入替换命令
[root@OMEN ~]# mdadm /dev/md0 -a /dev/sdb
mdadm: added /dev/sdb
LVM逻辑卷管理器
• 部署逻辑卷
第一步:使添加的硬件设备支持LVM技术
pvcreate /dev/sdb /dev/sdc
第二步:将两块硬盘加入到卷组中,起名为storage
vgcreate storage /dev/sdb /dev/sdc
第三部:从卷组中割出一定大小的逻辑卷
lvcreate -n vo -l 40 storage
第四步:格式化并挂载
mkfs.ext4 /dev/storage/vo
mount /dev/storage/vo /LVM1/
这里需要注意切割单位的问题。在对逻辑卷进行切割时有两种计量单位。第一种是以容 量为单位,所使用的参数为-L。例如,使用-L 150M 生成一个大小为 150MB 的逻辑卷。另外 一种是以基本单元的个数为单位,所使用的参数为-l。每个基本单元的大小默认为 4MB。例 如,使用-l 37 可以生成一个大小为 37×4MB=148MB 的逻辑卷。
• 扩容逻辑卷
第一步:卸载逻辑卷挂载点
umount /LVM1/
第二步:扩展逻辑卷
lvextend -L 300M /dev/storage/vo
第三步:检查硬盘完整性,并重置硬盘容量。
[root@OMEN ~]# e2fsck -f /dev/storage/vo
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/storage/vo: 11/40960 files (0.0% non-contiguous), 10825/163840 blocks
[root@OMEN ~]# resize2fs /dev/storage/vo
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/storage/vo to 307200 (1k) blocks.
The filesystem on /dev/storage/vo is now 307200 blocks long.
第四步 重新挂载
[root@OMEN ~]# mount /dev/storage/vo /LVM1/
[root@OMEN ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/rhel-root 48G 3.1G 45G 7% /
devtmpfs 986M 0 986M 0% /dev
tmpfs 994M 0 994M 0% /dev/shm
tmpfs 994M 8.8M 986M 1% /run
tmpfs 994M 0 994M 0% /sys/fs/cgroup
/dev/sda1 497M 118M 379M 24% /boot
/dev/mapper/storage-vo 287M 2.1M 266M 1% /LVM1
• 缩小逻辑卷
第一步 卸载挂载点
[root@OMEN ~]# umount /LVM1/
第二步 检查完整性
[root@OMEN ~]# e2fsck -f /dev/storage/vo
第三步 缩小逻辑卷
[root@OMEN ~]# resize2fs /dev/storage/vo 120M
resize2fs 1.42.9 (28-Dec-2013)
The filesystem is already 122880 blocks long. Nothing to do!
[root@OMEN ~]# lvreduce -L 120M /dev/storage/vo
WARNING: Reducing active logical volume to 120.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vo? [y/n]: y
Reducing logical volume vo to 120.00 MiB
Logical volume vo successfully resized
第四步 挂载
• 逻辑卷快照
生成: 使用-s参数生成一个快照券
lvcreate -L 120M -s -n SNAP /dev/storage/vo
还原:先卸载挂载点
然后lvconvert --merge /dev/storage/SNAP
最后挂载
NetworkManager
这个管理工具可以快速切换网络连接方案,网络连接方案包括连接那个网卡网络连接是指定ip还是dhcp,相当于网络情景模式。
查看联网方案
[root@OMEN ~]# nmcli connection show
NAME UUID TYPE DEVICE
eno16777736 faf70ee2-72ea-44e9-81b6-d3bc4c059665 802-3-ethernet eno16777736
查看联网方案的详细信息
[root@OMEN ~]# nmcli connection show eno16777736
connection.id: eno16777736
connection.uuid: faf70ee2-72ea-44e9-81b6-d3bc4c059665
connection.interface-name: --
connection.type: 802-3-ethernet
connection.autoconnect: yes
connection.timestamp: 1540467919
connection.read-only: no
connection.permissions:
添加联网方案 格式 nmcli connection add con-name (添加的方案名) ifname (网卡名称) type (联网方案)(是否开机默认autoconnect no)、
添加指定ip的方案
[root@OMEN ~]# nmcli connection add con-name company ifname eno16777736 autoconnect no type ethernet ip4 192.168.10.10/24 gw4 192.168.10.1
Connection 'company' (3f69bc52-e620-42eb-9acd-225eec89be77) successfully added.
添加DHCP的联网方案
[root@OMEN ~]# nmcli connection add con-name home ifname eno16777736 type ethernet
Connection 'home' (ae041083-c06b-464a-abe1-59b1267d2a6e) successfully added.
查看联网方案
[root@OMEN ~]# nmcli connection show
NAME UUID TYPE DEVICE
home ae041083-c06b-464a-abe1-59b1267d2a6e 802-3-ethernet --
company 3f69bc52-e620-42eb-9acd-225eec89be77 802-3-ethernet --
eno16777736 faf70ee2-72ea-44e9-81b6-d3bc4c059665 802-3-ethernet eno16777736
切换联网方案
[root@OMEN ~]# nmcli connection up home
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/1)