linux基础指令练习第一弹

1.基础文件与目录操作

2.文件查找与内容处理

3.文本编辑与数据处理

4.系统相关命令

5.综合练习


1.基础文件与目录操作

  1. 列出当前目录下所有文件(包括隐藏文件),并以长格式显示:
ls -la
  1. 切换到用户家目录,再返回上一级目录:
cd ~
cd ..
  1. 创建一个名为test_dir的目录,再在其中创建一个名为file1.txt的文件:
mkdir -p test_dir
touch test_dir/file1.txt
  1. 拷贝file1.txt到当前目录,并重命名为file2.txt
cp test_dir/file1.txt file2.txt
  1. file2.txt移动到test_dir目录下,并改名为moved_file.txt
mv file2.txt test_dir/moved_file.txt
  1. 删除test_dir目录下的moved_file.txt文件:
rm test_dir/moved_file.txt
  1. 批量创建10个以test_开头、数字结尾的文件(如test_01.txttest_10.txt):
for i in {01..10}; do touch test_$i.txt; done
  1. 查看test_dir目录的树状结构:
tree test_dir
  1. /tmp目录下递归创建dir1/dir2/dir3三级目录,并在dir3中创建test.txt
mkdir -p /tmp/dir1/dir2/dir3 && touch /tmp/dir1/dir2/dir3/test.txt
  1. /etc/hosts文件拷贝到/tmp目录并改名为hosts_backup,同时保留属性:
cp -a /etc/hosts /tmp/hosts_backup
  1. 移动/tmp/dir1目录到当前用户家目录,并查看移动后的路径:
mv /tmp/dir1 ~/ && echo "移动后路径: $(realpath ~/dir1)"
  1. 删除/tmp目录下所有以tmp开头的文件(需确认提示):
rm /tmp/tmp*
  1. 批量创建5个带空格文件名的文件(如file 01.txt):
for i in {01..05}; do touch "file $i.txt"; done
  1. ls命令查看当前目录,按文件修改时间倒序排列并显示详细信息:
ls -ltr
  1. 查看/usr/bin目录下文件数量(不包含子目录):
ls -1 /usr/bin | wc -l
  1. ~/.bashrc文件复制到当前目录,并重命名为bashrc_config
cp ~/.bashrc bashrc_config

2.文件查找与内容处理

  1. 在当前目录及子目录中查找名为*.txt的文件:
find . -name "*.txt"
  1. 查找24小时内修改过的文件:
find . -mtime -1
  1. 查找权限为644的文件:
find . -perm 644
  1. 统计当前目录下所有.txt文件的行数:
find . -name "*.txt" | xargs wc -l
  1. 查看/etc/passwd文件的前10行:
head -10 /etc/passwd
  1. 实时查看/var/log/messages日志文件:
tail -f /var/log/messages
  1. 查看/etc/hosts文件的内容,并显示行号:
cat -n /etc/hosts
  1. 查看/usr/bin/python文件的属性信息:
file /usr/bin/python
  1. 查找/usr/share目录下大小超过10MB的文件:
find /usr/share -type f -size +10M
  1. 查找/etc目录下所有链接文件(软链接):
find /etc -type l
  1. 统计当前目录下所有目录的数量:
find . -type d | wc -l
  1. 查看/var/log/messages日志中近10分钟的内容(假设日志按时间排序):
tail -n 100 /var/log/messages | grep "$(date +'%b %d %H:%M')" -A 10
  1. wc统计/usr/share/dict/words文件的单词数和字符数(若无该文件可跳过):
wc -w -c /usr/share/dict/words
  1. 查看/bin/bash文件的inode号,并通过inode号查找相同文件:
ls -i /bin/bash | awk '{print $1}' | xargs find / -inum
  1. 过滤/etc/passwd中以bash结尾的行(表示用户默认shell为bash):
grep "bash$" /etc/passwd
  1. 查找/root目录下所有以.sh结尾且7天内未修改的文件:
find /root -name "*.sh" -mtime +7

3.文本编辑与数据处理

  1. 使用vim编辑test_vim.txt文件,输入内容并保存:
vim test_vim.txt
  1. test_vim.txt中查找包含test的行,并显示行号:
grep -n "test" test_vim.txt
  1. test_vim.txt的内容进行排序并去重:
sort test_vim.txt | uniq
  1. 提取/etc/passwd文件中每行的第一个字段(用户名):
cut -d ':' -f 1 /etc/passwd
  1. 使用awk统计/etc/passwd文件中的用户数量:
awk -F ':' '{print $1}' /etc/passwd | wc -l
  1. test_vim.txt中查找以L开头的行:
grep "^L" test_vim.txt
  1. 排除test_vim.txt中包含test的行:
grep -v "test" test_vim.txt
  1. test_vim.txt按字母顺序降序排序:
sort -r test_vim.txt
  1. vim打开文件,在第10行后插入# 配置注释
vim /etc/nginx/nginx.conf
  1. sedtest_vim.txt中的Linux替换为CentOS
sed -i 's/Linux/CentOS/g' test_vim.txt
  1. awk提取/proc/meminfo中内存总量和空闲内存:
awk '/MemTotal/ {print $2,$3} /MemFree/ {print $2,$3}' /proc/meminfo
  1. /etc/group文件按第三列(GID)升序排序:
sort -k 3 /etc/group
  1. 统计/var/log/secure中失败登录的次数:
grep "Failed password" /var/log/secure | wc -l
  1. cut提取ifconfig命令输出中的IPv4地址:
ifconfig enp* | grep "inet " | cut -d ' ' -f 10
  1. 过滤test_vim.txt中包含HelloWorld的行:
grep -E "Hello|World" test_vim.txt
  1. trtest_vim.txt中的小写字母转为大写:
tr 'a-z' 'A-Z' < test_vim.txt

4.系统相关命令

  1. 查看系统内核版本信息:
uname -a
  1. 查看系统负载和运行时间:
uptime
  1. 查看当前主机名:
hostname
  1. 查看磁盘使用情况:
df -h
  1. 查看/usr目录的大小:
du -sh /usr
  1. 实时查看系统资源占用情况:
top
  1. 查看内存使用情况:
free -h
  1. 查看/etc/fstab文件的状态信息:
stat /etc/fstab
  1. 查看系统启动时间(以人类可读格式):
who -b
  1. 查看当前系统中运行时间最长的进程:
ps -eo pid,ppid,user,comm,etimes | sort -k 5 -r | head -1
  1. 查看/dev/sda磁盘的inode使用情况:
df -i /dev/sda
  1. 模拟系统负载(用dd命令占用CPU,需Ctrl+C终止):
dd if=/dev/zero of=/dev/null
  1. 查看系统中所有用户的登录历史(需last命令支持):
last
  1. 查看当前系统中占用CPU最多的5个进程:
top -b -n 1 | head -20 | grep -v "^top" | sort -k 9 -r | head -5
  1. 查看httpd服务(若存在)的PID和内存占用:
ps -ef | grep httpd | grep -v grep | awk '{print $2,"-",$6/1024,"MB"}'
  1. 查看系统中所有监听的TCP端口:
netstat -tuln | grep LISTEN

5.综合练习

  1. 查找/var/log目录下7天前修改过的、以.log结尾的文件,并显示其修改时间:
find /var/log -mtime +7 -name "*.log" -ls
  1. 统计/usr/share/doc目录下所有文件的数量:
find /usr/share/doc -type f | wc -l
  1. 使用vim打开文件,修改端口号:
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
vim /etc/ssh/sshd_config
  1. 过滤/var/log/secure日志中包含Failed password的行,并显示行号:
grep -n "Failed password" /var/log/secure
  1. /etc/services文件按端口号进行排序(端口号在第二列):
sort -n -k 2 /etc/services
  1. 查看/proc/cpuinfo文件,提取CPU核心数:
grep "cpu cores" /proc/cpuinfo | uniq
  1. 创建一个大小为100KB的文件,并计算其MD5值:
dd if=/dev/zero of=100KB_file bs=1024 count=100
md5sum 100KB_file
  1. /etc/issue文件的内容追加到test_append.txt文件中:
cat /etc/issue >> test_append.txt
  1. 查找/var/log目录下所有日志文件,按大小降序排列并显示前5个:
find /var/log -type f -name "*.log" -exec du -sh {} \; | sort -hr | head -5
  1. 备份/etc目录下所有配置文件(以.conf结尾)到/backup目录:
mkdir -p /backup && find /etc -name "*.conf" -exec cp {} /backup \;
  1. 统计/usr/src目录下C语言文件(.c)的总行数(含空行):
find /usr/src -name "*.c" | xargs wc -l
  1. vim批量注释test_vim.txt中所有以#开头的行:
vim test_vim.txt
  1. 过滤/var/log/httpd/access_log中访问量最高的IP地址:
grep -v "localhost" /var/log/httpd/access_log | awk '{print $1}' | sort | uniq -c | sort -nr | head -1
  1. 创建一个1GB的文件并查看其在磁盘上的实际占用:
dd if=/dev/zero of=1GB_file bs=1M count=1024
ls -lh 1GB_file
du -sh 1GB_file
  1. 查看系统中所有用户的UID和GID是否一致:
awk -F ':' '{if ($3 == $4) print $1,"UID=GID=",$3}' /etc/passwd
  1. chattr/etc/fstab文件添加不可修改属性,尝试修改并观察提示:
chattr +i /etc/fstab
echo "test" >> /etc/fstab
chattr -i /etc/fstab
作者:yangxiaoxiao998原文地址:https://www.cnblogs.com/yangziting/p/18912590

%s 个评论

要回复文章请先登录注册