Linux远程登录和网络配置练习题

Linux精讲——创建和删除目录
创建目录: mkdir [OPTION]... DIRECTORY...
命令作用: 创建目录
常用选项:

mkdir -p 级联创建目录
mkdir -v 创建过程可视化
删除目录: rmdir [OPTION]... DIRECTORY...
命令作用: 删除空目录
常用选项:

rmdir -p 级联删除空目录
rmdir -v 删除过程可视化
tree命令: 显示目录树结构



命令名称: ls
命令作用: 列出目录内容
命令格式: ls [OPTION]... [FILE]|[DIR]...

常用选项:(可以任意组合使用)

- ls # 列出所有非隐藏内容
- ls -a # 列出所有内容,包括隐藏内容(以“.”开头)
- ls -l # 列出dir下内容的详细信息
- ll # ls -l 的简写
- ls -d # 查看目录dir,常与 -l搭配使用查看目录dir详细信息
- ls -t # 把dir查出的内容按时间新旧排序
- ls -i # 列出dir下文件的inode号
- ls -lh # 自动以合适的单位显示文件大小

命令格式:cd [-L]|[-P] [dir]
命令作用:从当前目录切换到目标目录dir

常用命令:

cd #从任何目录切换到用户的home目录
cd ~ #从任何目录切换到用户的home目录
cd / #切换到系统根目录
cd . #切换到当前目录
cd .. #切换到当前目录的上一级目录
cd - #切换到当前目录的前一次所在目录(交替切换)
cd dir #切换到目标目录dir(可使用绝对路径或相对路径)
pwd #查看当前路径


命令名称:du
命令用来查看文件或目录在磁盘中所占空间大小(以一个块-4k 为一个基本单位)
常用选项

du dir # 查看路径下所有文件在磁盘中所占空间大小,默认单位为 k
du -h dir # 自动以合适的单位显示目录树下所有文件所占磁盘空间大小
du -s dir # 查看目录占用磁盘空间总大小
du -m dir # 以 m 为单位显示目录下所有文件占用磁盘空间大小
du -k dir # 以 k 为单位显示目录下所有文件占用磁盘空间大小
du -b dir # 以字节为单位显示目录下所有文件占用磁盘空间大小

例:一个只有 3 字节的文件,占用磁盘空间为 4k

[root@centos01 ~]# echo "12" > 1.txt
[root@centos01 ~]# ll 1.txt
-rw-r--r-- 1 root root 3 Feb 28 21:50 1.txt
[root@centos01 ~]# du -h 1.txt
4.0k 1.txt


命令行下安装图形界面

- yum groupinstall -y "Desktop"
- yum groupinstall -y "X Window System"

init 5 或 startx 切换到图形界面



1、runlevel:查看当前运行级别
2、/etc/inittab:运行级别的配置文件

0 - halt:关机
1 - Single user mode:单用户模式(可以修改root密码)
2 - Multiuser, without NFS:多用户模式,没有NFS
3 - Full multiuser mode:完整的多用户模式
4 - unused:保留级别,未使用
5 - X11:图形界面
6 - reboot:重启

命令名称:sudo

可以让普通用户临时以 root 的身

份执行指定的命令
root 帐户可以通过执行 visudo 或者编辑 /etc/sudoers 配置文件进行配置哪个用户[组]可以使用哪个命令

## Allow root to run any commands anywhere
root ALL=(ALL) ALL
fish ALL=(root) NOPASSWD: /bin/ls

## Allows people in group wheel to run all commands
# %wheel ALL=(ALL) ALL

第 1 列,指定可以通过sudo执行命令的用户
第 2 列,‘=’左边表示登录来源,可以用来限制登录ip,‘=’右边括号里表示执行哪个用户的命令
第 3 列,可以指定普通用户可以执行哪些命令,‘NOPASSWD’可以使普通用户免密码执行特殊命令 -
‘%wheel’行表示可以设置某个用户组可以 root 身份执行指定命令



命令名称:su 的基本用法

su # 默认切换到root帐户,保留当前的环境路径
su - # 默认切换到root帐户,同时切换到root的家目录
su username # 切换到指定帐户,保留当前的环境路径
su - username # 切换到指定帐户,同时切换到username的家目录
su -c "command" username # 切换到username同时执行一段命令




命令名称: passwd

passwd # 给当前用户修改密码
passwd username # 给指定用户修改密码
passwd --stdin username # 通过标准输入修改密码
passwd -e "123456\n123456" username # 直接给指定用户修改密码,无交互
passwd -l username # 锁定用户密码
passwd -u usernmae # 解锁用户密码

生成密码工具: mkpasswd

## 先安装
yum install -y expect

常用选项:
mkpasswd # 直接生成一个长度为10的随机密码
mkpasswd -l # 生成指定长度的密码
mkpasswd -d # 指定生成的密码中最少有多少个数字
mkpasswd -c # 指定生成的密码中最少有多少个小写字母
mkpasswd -C # 指定生成的密码中最少有多少个大写字母


命令名称:usermod
作用:修改用户属性

常用选项:

usermod -u uid username # 更改用户uid
usermod -g gid username # 更改用户gid,此gid必须存在
usermod -G gid group1, group2, ... # 为用户增加扩展组,此gid必须存在
usermod -G '' username # 删除用户扩展组
usermod -d homedir username # 更改用户家目录
usermod -s shell username # 更改用户shell解释器
usermod -L username # 锁定用户密码
usermod -U username # 解锁用户密码


创建用户:useradd

常用选项:

useradd username # 创建一个名为username的用户,同时自动创建一个同名的用户组
useradd -u uid username # 创建一个名为username的用户,并同时指定其uid
useradd -g gid username # 创建一个名为username的用户

,并同时指定其gid,gid必须已经存在
useradd -d homedir username # 创建一个名为username的用户,并同时指定其家目录
useradd -M username # 创建一个名为username的用户,但不创建家目录
useradd -s /bin/bash username # 创建一个名为username的用户,同时指定其shell解释器
useradd -G group1,group2,... username # 创建一个名为username的用户,同时为其指定扩展组

以上选项可以任意组合,当 -d 选项和 -M 选项同时出现,只有 -M 会生效,-d 无效

删除用户:userdel

常用选项:

userdel username # 删除用户username和同名用户组,但不会删除该用户的家目录及邮件池mail spool
userdel -r username # 删除用户username和同名用户组的同时,会删除用户的家目录和邮件池

增加用户组:groupadd
选项:

groupadd groupname # 增加一个用户组
groupadd -g gid groupname # 增加一个用户组,并指定一个gid
1
2
删除用户组:groupdel
选项:

groupdel groupname # 删除一个空用户组
1
注意: 如果用户组里还有用户,则不能删除此用户组,若要删除必须先删除用户组里的用户



命令名称:find
简单语法

find 路径 匹配选项 匹配模式
常用举例

find /tmp/ -name "1.txt" # 在/tmp/路径下搜索文件名为"1.txt"的文件
find /tmp/ -type f # 在/tmp/路径下搜索文件类型为f的所有文件
find /tmp/ -mtime +5 # 在/tmp/路径下搜索 mtime大于5天的文件
find /tmp/ -atime -3 # 在/tmp/路径下搜索 atime小于3天的文件
find /tmp/ -ctime +4 # 在/tmp/路径下搜索 ctime大于4天的文件
find /tmp/ -amin +10 # 在/tmp/路径下搜索 amin大于10分钟的文件
find /tmp/ -cmin -20 # 在/tmp/路径下搜索 cmin小于20分钟的文件
find /tmp/ -mmin +23 # 在/tmp/路径下搜索 mmin大于23分钟的文件
find /tmp/ -inum inode # 在/tmp/路径下搜索指定inode号的文件


命令名称: cat
命令作用: 连结文件内容并打印到标准输出
命令参数:

cat file... # 把文件内容连结成一体并打印到标准输出
cat -n # 将文件内容打印到标准输出的同时显示行号
cat -A # 以特定符号显示结束符或制表符等不可见符号

命令名称: tac
命令作用: 将文件内容按照从最后一行到第一行的顺序打印到标准输出
命令参数:

# 无常用参数
1
命令名称: more
命令作用: 以可翻页的形式查看文件内容
命令参数: 无
常用快捷键:

space # 向上翻一屏/显示下一屏内容
enter # 向上翻一页/显示下一行内容
1
2
命令名称: less
命令作用: 以可翻页的方式查看文件内容
命令参数: 无
常用快捷键:

space # 向上翻一屏/显示下一屏内容
[ctrl] f # 向上翻一屏/显示下一屏内容
[ctrl] b

# 向下翻一屏/显示上一屏内容
[ctrl] d # 向上翻半屏/显示下半屏内容
[ctrl] u # 向下翻半屏/显示上半屏内容
enter/ j # 向上翻一行/显示下一行内容
k # 向下翻一行/显示上一行内容
/word # 在内容中向下查找word,n跳到下一个,N跳到上一个
?word # 在内容中向上查找word,n跳到上一个,N跳到下一个
g # 回到行首
G # 跳到行尾
q # 退出less

命令名称: head
命令作用: 默认查看文件前10行内容
命令参数:

head -n # n是数字,查看文件前n行内容
1
命令名称: tail
命令作用: 默认查看文件最后10行内容
命令参数:

tail -n # n是数字,查看文件最后n行内容
tail -n K # K是数字,查看文件最后K行内容
tail -f # 动态查看文件最后10行内容

命令名称: mv
命令作用: 移动或重命名
常用选项:

mv -v # 显示移动或重命名过程
mv -f # 强制覆盖,没有提示

----------
mv file1 file2 #(file2存在)用file1内容覆盖file2,并删除file1只保留file2
mv file1 file2 #(file2不存在)将file1重命名为file2
mv file dir # 将file移动到dir下,若dir下有同名文件,则提示是否覆盖
mv dir1 dir2 #(dir2存在)把dir1移动到dir2下,若dir2下有同名目录,则提示是否覆盖
mv dir1 dir2 #(dir2不存在)把dir1重命名为dir2


命令名称: cp
命令语法:

cp [OPTION]... [-T] SOURCE DEST
cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
1
2
3
命令作用: 拷贝文件或目录
常用选项:

cp -r # 拷贝目录
cp -v # 拷贝过程可视化

----------
cp file1 file2 #(file2不存在)把file1拷贝为file2
cp file1 file2 #(file2存在)用file1的内容覆盖file2的内容
cp file dir # 把file拷贝到dir中
cp -r dir1 dir2 #(dir2不存在)把dir1拷贝为dir2
cp -r dir1 dir2 #(dir2存在)把dir1拷贝进dir2


命令名称:rm
命令语法:rm [OPTION]... FILE...
命令作用: 删除文件或目录
常用选项: 可以组合使用

- rm file # 删除文件
- rm -r # 删除目录
- rm -f # 强制删除不提示
- rm -v # 显示删除过程


压缩与解压缩

gzip(只能压缩文件)

命令 作用
gzip file 将file文件压缩成file.gz,路径中不保留原文件file
gzip -n file n 是1~9的数字,表示压缩级别,默认为6
gzip -d file.gz 解压缩文件file.gz为file,路径中不保留压缩文件file.gz
gunzip file.gz 和gzip -d file.gz作用相同
zcat file.gz 查看压缩文件file.gz中的文件内容
bzip2(只能压缩文件)

命令 作用
bzip2 file 将file文件压缩成file.bz2,路径中不保留原文件file
bzip2 -n file n 是1~9的数字,表示压缩级别,默认为9
bzip2 -d file.bz2 解压缩文件file.bz2为file,路径中

不保留压缩文件file.bz2
bunzip file.bz2 和bzip2 -d file.bz2作用相同
bzcat file.bz2 查看压缩文件file.bz2中的文件内容
xz(只能压缩文件)

命令 作用
xz file 将file文件压缩成file.xz,路径中不保留原文件file
xz -n file n 是1~9的数字,表示压缩级别,默认为6
xz -d file.xz 解压缩文件file.xz为file,路径中不保留压缩文件file.xz
unxz file.xz 和xz -d file.xz作用相同
xzcat file.xz 查看压缩文件file.xz中的文件内容
zip(可以压缩文件和目录)

命令 作用
zip file.zip file1 先指定压缩后的文件名,再进行压缩,原文件会保留
zip -r dir.zip dir 压缩目录,先指定压缩后的文件名,再压缩,原目录会保留
unzip file.zip 解压缩文件到当前路径
unzip -d dir file.zip 解压缩文件到指定路径
打包与解包 – tar

打包与解包

命令 作用
tar -cf xxx.tar file/dir 指定打包后的文件名,然后列出要进行打包的文件和目录
tar -cvf xxx.tar file/dir -v 选项使打包过程全部列出来
tar -tf xxx.tar 列出tar包内的所有文件
tar -tvf xxx.tar 列出tar包内的所有文件的详细信息
tar xf xxx.tar 解包到当前路径
tar -xvf 解包到当前路径,并显示解包过程
tar -C dir 指定解包后tar包内文件的存放路径
tar –exclude file 指定打包目录中的某个文件不进行打包
打包与压缩结合

命令 作用
tar -zcvf xxx.tar.gz file/dir 将文件/目录打包后以gzip格式进行压缩
tar -jcvf xxx.tar.bz2 file/dir 将文件/目录打包后以bzip2格式进行压缩
tar -Jcvf xxx.tar.xz file/dir 将文件/目录打包后以xz格式进行压缩
- -
tar -zxvf xxx.tar.gz 将gzip格式的压缩包进行解压和解包
tar -jxvf xxx.tar.bz2 将bzip2格式的压缩包进行解压和解包
tar -Jxvf xxx.tar.xz 将xz格式的压缩包进行解压和解包
- -
tar -C dir 指定将压缩包解压到哪里


磁盘分区原则:

每个磁盘可分的“主分区 + 扩展分区”不能大于 4 个
主分区可以分 0~4 个
扩展分区最多只能分1个,在扩展分区里面再分成逻辑分区,逻辑分区没有数量限制
逻辑分区的分区号从 5 开始,比如:sdb5、sdb6
若分区号在 1~4,那么一定是主分区或扩展分区
fdisk 分区方法:

fdisk -l # 列出所有磁盘的分区表信息
fdisk -l /dev/sdxx # 列出指定磁盘的分区表信息

[root@centos01 ~]# fdisk /dev/sdb ## 对指定磁盘进行分区操作

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition ## 删除一个分区
l list known partition types ## 列出已经分区类型
m

print this menu ## 打印这个菜单
n add a new partition ## 新建一个分区
o create a new empty DOS partition table
p print the partition table ## 打印分区表信息
q quit without saving changes ##不保存退出
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit ## 保存分区结果并退出
x extra functionality (experts only)

Command (m for help): n ## 创建新分区
Command action
l logical (5 or over)
p primary partition (1-4)
p ## 选择分主分区
Partition number (1-4): 3 ## 分区号选择3
First cylinder (917-1305, default 917): ## enter 使用默认开始位置
Using default value 917
Last cylinder, +cylinders or +size{K,M,G} (917-1305, default 1305): +1G ## 增加1G

Command (m for help): d ## 删除一个分区
Partition number (1-5): 3 ## 选择要删除的分区号

Command (m for help): w ## 保存并退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.



格式化工具:mke2fs

常用选项:

1 mke2fs -t /dev/sdxx ## 指定格式化文件系统类型
2 mke2fs -b /dev/sdxx ## 指定块大小(默认4096字节)
3 mke2fs -m /dev/sdxx ## 指定保留块的百分比(默认5)
4 mke2fs -L /dev/sdxx ## 指定磁盘标签
5
6 [root@centos01 ~]# mke2fs -t ext4 -b 4096 -m 4 -L fish /dev/sdb1
7 mke2fs 1.41.12 (17-May-2010)
8 Filesystem label=fish <---------- -L
9 OS type: Linux
10 Block size=4096 (log=2) <-------- -b
11 Fragment size=4096 (log=2)
12 Stride=0 blocks, Stripe width=0 blocks
13 131648 inodes, 526120 blocks
14 21044 blocks (4.00%) reserved for the super user <------ -m
15 First data block=0
16 Maximum filesystem blocks=541065216
17 17 block groups
18 32768 blocks per group, 32768 fragments per group
19 7744 inodes per group
20 Superblock backups stored on blocks:
21 32768, 98304, 163840, 229376, 294912
22
23 Writing inode tables: done
24 Creating journal (16384 blocks): done
25 Writing superblocks and filesystem accounting information: done
26
27 This filesystem will be automatically checked every 22 mounts or
28 180 days, whichever comes first. Use tune2fs -c or -i to override.



经过分区和格式化后的磁盘,要想在里面写入数据,还需要进行挂载

语法: mount 分区 挂载点

如果格式化的时候给分区指定了标签,还可以这样挂载:mount LABEL=fish 挂载点

卸载:umount 挂载点 | umount 分区

* 若卸载时在挂载点中,可以使用 -l 选项:* umount -l 挂载点/分区 # lazy umount


如何开机自动挂载分区

1. 编辑 /etc/fstab 文件

1 # /etc/fstab
2 # Created by anaconda on Thu Feb 18 21:11:57 2016
3 #
4 # Accessible filesystems, by reference, are maintained under '/dev/disk'

5 # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
6 #
7 UUID=aa22f3b9-1651-4eff-a827-ce2c8034f2a7 / ext4 defaults 1 1
8 UUID=e67e2d00-e321-4186-aea5-72ebd2b81ccd /boot ext4 defaults 1 2
9 UUID=8f5ad56c-3c45-4700-9cf2-634c9d586bf3 swap swap defaults 0 0
10 tmpfs /dev/shm tmpfs defaults 0 0
11 devpts /dev/pts devpts gid=5,mode=620 0 0
12 sysfs /sys sysfs defaults 0 0
13 proc /proc proc defaults 0 0
14 /dev/sdb5 /mnt ext4 defaults 0 0

第 1 列,分区名或分区的UUID
第 2 列,分区挂载点
第 3 列,分区类型
第 4 列,分区配置,默认defaults
第 5 列,是否备份,‘0’表示不备份,‘1’表示备份
第 6 列,是否开机检测磁盘,‘0’表示不检测,‘1’只留给‘/’根分区,要检测,‘2’表示要检测
分区配置的‘defaults’包括‘rw, suid, dev, exec, auto, nouser, async, sync’等配置,具体配置可以man fstab 查看
mount -a —> 自动加载配置文件的所有配置

2. 编辑 /etc/rc.local 文件

将挂载命令写入该配置文件,则开机后会自动进行

mount /dev/sdxx 挂载点 # 挂载配置为defaults
mount -o noatime,rw,... /dev/sdxx 挂载点 # 自定义挂载配置
1
2
blkid命令:列出所有分区的UUID、LABEL、TYPE等信息



通过 stat filename 命令查看一个文件的三个时间属性

[root@centos01 ~]# stat 1.txt
File: `1.txt'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 931337 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-02-27 22:20:10.803907698 +0800
Modify: 2016-02-27 22:20:10.803907698 +0800
Change: 2016-02-27 22:20:10.803907698 +0800

Access 后面的时间即为atime,文件被读会更改此属性
Modify 后面的时间即为mtime,文件内容改变会更改此属性
Change 后面的时间即为ctime,inode信息改变会更改此属性

如何更改atime、mtime、ctime

如上,1.txt 是新建的一个文件,初始状态其三个时间都一样的

当cat 1.txt 后,atime 改变,mtime 和 ctime 不变
[root@centos01 ~]# cat 1.txt
[root@centos01 ~]# stat 1.txt
File: `1.txt'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 931337 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-02-27 22:24:24.653927639 +0800
Modify: 2016-02-27 22:20:10.803907698 +0800
Change: 2016-02-27 22:20:10.803907698 +0800

当echo "123" >> 1.txt 后,mtime 改变,ctime 改变,atime 不变
[root@centos01 ~]# echo "

123" >> 1.txt
[root@centos01 ~]# stat 1.txt
File: `1.txt'
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 931337 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-02-27 22:24:24.653927639 +0800
Modify: 2016-02-27 22:29:36.153926096 +0800
Change: 2016-02-27 22:29:36.153926096 +0800

当mv 1.txt 2.txt / chmod 666 1.txt 等会变更inode信息的操作会使ctime改变,atime 和 mtime不变
[root@centos01 ~]# chmod 666 1.txt
[root@centos01 ~]# stat 1.txt
File: `1.txt'
Size: 4 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 931337 Links: 1
Access: (0666/-rw-rw-rw-) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2016-02-27 22:24:24.653927639 +0800
Modify: 2016-02-27 22:29:36.153926096 +0800
Change: 2016-02-27 22:30:44.079913921 +0800

mtime 改变一定会导致 ctime 改变


相关文档
最新文档