一、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.Crond在windows操作系统里的对等服务叫什么?
crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。Linux下的任务调度分为两类,系统任务调度和用户任务调度。
标签:function,文件,操作系统,echo,命令,&&,Linux,安装 From: https://blog.csdn.net/qq_67812668/article/details/141159585