Linux操作系统的安装和配置

一、Linux的安装与常用命令

1.安装VMware;     

2.使用VMware安装配置Linux;

3.实现要求的shell函数

# hello函数,输入参数个数为0, 输出hello, world! 到标准输出。
function hello() {
    echo "hello, world!"
}
# tell_who_i_am函数,输入参数个数为0,输出当前用户的账号到标准输出
function tell_who_i_am() {
echo $(whoami)
}

# which_distro_do_i_use函数,输入参数个数为0,输出当前Linux系统的发行版名字到标准输出,输出类容类似 NAME=”Beta Linux”
function which_distro_do_i_use() {
    cat /etc/os-release | grep ^NAME
}

# view_my_cpu_arch函数,输入参数个数为0,输出当前Linux系统所用的CPU的结构:x86_64或者x86_32到标准输出
function view_my_cpu_arch() {
    uname -m
}

# show_first_scsi_disk_size函数,输入参数个数为0,输出当前Linux系统所用的第一块scsi硬盘的以GB为单位的尺寸数字(仅含数字)到标准输出,比如400。
function show_first_scsi_disk_size() {
    lsblk -l | \grep disk | \grep '^sda ' |awk '{print $4}'
}

# show_main_memory_size_in_megabytes函数,输入参数个数为0,输出当前Linux系统的以MB为单位的内存尺寸数字(仅含数字)到标准输出
function show_main_memory_size_in_megabytes() {
    free -m |grep "Mem:" |awk '{print $2}'
}

 

4.Linux常见命令

命令

功能说明

线上查询及帮助命令 (2 个)

man

查看命令帮助,命令的词典,更复杂的还有 info,但不常用。

help

查看 Linux 内置命令的帮助,比如 cd 命令。

文件和目录操作命令 (18 个)

ls

全拼 list,功能是列出目录的内容及其内容属性信息。

cd

全拼 change directory,功能是从当前工作目录切换到指定的工作目录。

cp

全拼 copy,其功能为复制文件或目录。

find

查找的意思,用于查找目录及目录下的文件。

mkdir

全拼 make directories,其功能是创建目录。

mv

全拼 move,其功能是移动或重命名文件。

pwd

全拼 print working directory,其功能是显示当前工作目录的绝对路径。

rename

用于重命名文件。

rm

全拼 remove,其功能是删除一个或多个文件或目录。

rmdir

全拼 remove empty directories,功能是删除空目录。

touch

创建新的空文件,改变已有文件的时间戳属性。

tree

功能是以树形结构显示目录下的内容。

basename

显示文件名或目录名。

dirname

显示文件或目录路径。

chattr

改变文件的扩展属性。

lsattr

查看文件扩展属性。

file

显示文件的类型。

md5sum

计算和校验文件的 MD5 值。

查看文件及内容处理命令(21 个)

cat

全拼 concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。

tac

  tac 是 cat 的反向拼写,因此命令的功能为反向显示文件内容。

more

分页显示文件内容。

less

分页显示文件内容,more 命令的相反用法。

head

显示文件内容的头部。

tai

l显示文件内容的尾部。

cut

将文件的每一行按指定分隔符分割并输出。

split

分割文件为不同的小片段。

paste

按行合并文件内容。

sort

对文件的文本内容排序。

uniq

去除重复行。oldboy

wc

统计文件的行数、单词数或字节数。

iconv

转换文件的编码格式。

dos2unix

将 DOS 格式文件转换成 UNIX 格式。

diff

全拼 difference,比较文件的差异,常用于文本文件。

vimdiff

命令行可视化文件比较工具,常用于文本文件。

rev

反向输出文件内容。

grep/egrep

过滤字符串,三剑客老三。

join

按两个文件的相同字段合并。

tr

替换或删除字符。

vi/vim

命令行文本编辑器。

文件压缩及解压缩命令(4 个)

tar

打包压缩。oldboy

unzip

解压文件。

gzip

 gzip 压缩工具。

zip

压缩工具。

信息显示命令(11 个)

uname

显示操作系统相关信息的命令。

hostname

显示或者设置当前系统的主机名。

dmesg

显示开机信息,用于诊断系统故障。

uptime

显示系统运行时间及负载。

stat

显示文件或文件系统的状态。

du

计算磁盘空间使用情况。

df

报告文件系统磁盘空间的使用情况。

top

实时显示系统资源使用情况。

free

查看系统内存。

date

显示与设置系统时间。

cal

查看日历等时间信息。

搜索文件命令(4 个)

which

查找二进制命令,按环境变量 PATH 路径查找。

find

从磁盘遍历查找文件或目录。

whereis

查找二进制命令,按环境变量 PATH 路径查找。

locate

从数据库 (var/lib/mlocate/mlocate.db) 查找命令,使用 updatedb 更新库。

用户管理命令(10 个)

useradd

添加用户。

usermod

修改系统已经存在的用户属性。

userdel

删除用户。

groupadd

添加用户组。

passwd

修改用户密码。

chage

修改用户密码有效期限。

id

查看用户的 uid,gid 及归属的用户组。

su

切换用户身份。

visudo

编辑  etc/sudoers 文件的专属命令。

sudo

以另外一个用户身份(默认 root 用户)执行事先在 sudoers 文件允许的命令。

基础网络操作命令(11 个)

telnet

使用 TELNET 协议远程登录。

ssh

使用 SSH 加密协议远程登录。

scp

全拼 secure copy,用于不同主机之间复制文件。

wget

命令行下载文件。

ping

测试主机之间网络的连通性。

route

显示和设置 linux 系统的路由表。

ifconfig

查看、配置、启用或禁用网络接口的命令。

ifup

启动网卡。

ifdown

关闭网卡。

netstat

查看网络状态。

ss

查看网络状态。

function s1_goto_dir() {
cd $1
}

function s2_touch_empty_file_with_given_name(){
touch $1
}

function s3_make_directories(){
mkdir projects && mkdir projects/git projects/backup
}

function s4_create_6_files(){
cd projects && touch network_security{201,202}_{centos,redhat,c_programming}
}

function s5_make_directories_in_git(){
mkdir projects/git/network_security201 projects/git/network_security202
}

function s6_move_files_to_dir_201_or_202(){
cd projects && mv -t git/network_security201 network_security201_{centos,redhat,c_programming} && mv -t git/network_security202 network_security202_{centos,redhat,c_programming}
}

function s7_create_package_and_compress(){
cd projects && tar -czvf backup/git.tar.gz git
}

function s8_delete_dir_git(){
rm -rf projects/git
}

function s9_recover_from_git_tar_gz_backup(){
cd projects && tar -zxvf backup/git.tar.gz 
}

function s10_create_package_and_compress(){
cd projects && tar -jcvf backup/git.tar.bz2 git
}

function s11_find_and_sort_alphabetically_all_created_files_and_dirs(){
find ./projects |sort
}

function s12_get_next_15_minutes_boundary(){
date +'%Y-%m-%d_%H:%M:%S' -d @$(( $(date +%s)/900*900+900 ))
}

 

5.Linux常见功能管理

function s1_generate_a_series_of_files() {
	 for i in {1..100};do echo $i>/tmp/new_file$i; done
}

function s2_list_4_files_in_long_format_about_account_and_group() {
	 ls -l /etc/passwd /etc/shadow /etc/group /etc/gshadow|sort -d
}

function s3_find_items_related_to_given_username() {
	grep -h $1 /etc/passwd /etc/shadow|sort -d
}

function s4_find_items_related_to_given_group_name() {
	grep -h $1 /etc/group /etc/gshadow|sort -d 
}

function s5_create_groups_for_given_group_names() {
	groupadd rnd&&groupadd itoperation
}

function s6_create_users_and_set_their_group_as_required() {
	useradd -G rnd adam && useradd -G rnd bob && useradd -G itoperation calvin && useradd -G itoperation david && useradd -G rnd edward
}

function s7_change_users_shell() {
	usermod -s /usr/bin/sh adam && usermod -s /usr/bin/sh edward
}

function s8_set_password_change_policy() {
	passwd -n 10 -x 60 -w 10 adam && passwd -n 10 -x 60 -w 10 bob && passwd -n 10 -x 60 -w 10 david && passwd -n 10 -x 60 -w 10 calvin && passwd -n 10 -x 60 -w 10 edward
}

function s9_set_password_for_five_users() {
usernames=(adam bob calvin david edward)
for i in $(seq 1 5);do echo ${!i};echo $(( $i-1 ));done
echo "${usernames[0]}:$1" | chpasswd
echo "${usernames[1]}:$2" | chpasswd
echo "${usernames[2]}:$3" | chpasswd
echo "${usernames[3]}:$4" | chpasswd
echo "${usernames[$(( $i-1 ))]}:$5" | chpasswd
}

function s10_lock_bobs_password() {
	usermod -L bob 
}
function s11_include_adam_into_wheel_group() {
	usermod -a -G wheel adam
}
function s12_change_files_permission() {
	for i in {1..33};do chmod -R 640 /tmp/new_file$[3*i]; done
}

 

6.Linux常用系统维护功能

function s1_read_last_two_bytes_of_a_mbr_backup_file(){
    if [ "$(xxd -s -2 $1|awk '{print $2}')" = '55aa' ];then
        echo "YES"
    else
        echo "NO"
    fi
}

function s2_read_mbr_partition_table_info(){
for pos in 0x01c6 0x01d6;do
    start=$(echo "ibase=16, $(xxd -e -s $pos -l 4 $1 | awk '{print $2}' | tr '[a-z]' '[A-Z]')" | bc)
    len=$(echo "ibase16; $(xxd -e -s $(( $pos+4 )) -l 4 $1 | awk '{print $2}' | tr '[a-z]' '[A-Z]')" | bc)
    if [ "$len" != "0" ]; then
        echo $start $(( $start+$len-1 ))
    fi
done
}

function s3_parse_partition_info(){
echo 2
}

function s4_run_passwd_as_plain_user_and_get_status_test(){
a=$(which oversleeping)
chown root $a | chmod 755 $a | chmod u+s $a | $($a)

ps -o uid,euid,ruid -C oversleeping |tail -n 1 | awk 'BEGIN{OFS=","} {print $1,$2,$3}'
}

function s5_add_a_scheduled_task(){
echo 'echo $(date + "%Y%m%d_%H%M%S") >> /$HOME/test_crontab' > /$HOME/crontab.sh
echo "*/5 * * * * /$HOME/crontab.sh" > /etc/crontab
}

二、思考题

1.Vmware提供了多少种网络连接?

VMware提供的网络连接有五种

2.本实验中用到的linux命令和windows中的操作有哪些相似之处?

Linux 命令窗口叫shell 是Linux 操作系统的核心,具备linux 操作系统,对linux来说图形窗口只是一个工具,只具备日常使用,对服务器领域来说,很多功能不能实现。

Windows命令窗口时原dos操作系统只支持部分dos 命令(外部命令,具备很少的功能)。Windows操作系统内核已经全部起用图形化界面。在图形化界面中可以完成全部的操作。

3.本实验中用到的linux命令和windows中的操作有哪些相似之处?

Linux 命令窗口叫shell 是Linux 操作系统的核心,具备linux 操作系统,对linux来说图形窗口只是一个工具,只具备日常使用,对服务器领域来说,很多功能不能实现。

Windows命令窗口时原dos操作系统只支持部分dos 命令(外部命令,具备很少的功能)。Windows操作系统内核已经全部起用图形化界面。在图形化界面中可以完成全部的操作。

4.Crondwindows操作系统里的对等服务叫什么?

crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。Linux下的任务调度分为两类,系统任务调度和用户任务调度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值