Linux基础知识 适合有Linux基础的人群进行复习。 禁止转载!
文件管理与常用命令
Linux的文件的组成部分:
文件名、inode(i节点)和block(真正存数据的区域)。
查看某个文件的属性:
ls -lh #可看到有类似”-rw-r--r--”的属性符号 第1个字符代表文件类型。
Linux的5种不同的文件类型及其符号表示?链接文件有哪两种?
答:
普通文件、目录文件、链接文件、设备文件和管道文件
符号表示:
普通文件:属性的第一个符号是“-”
目录文件:属性的第一个符号是“d”
链接文件:属性的第一个符号是“l” (小写的L)
字符设备文件:属性的第一个符号是“c”
块设备文件:属性的第一个符号是“b”
管道文件:属性的第一个字符是“p”
链接文件的种类:硬链接和软链接(符号链接)
Linux中路径符号:“.”和“..”表示法
答:
根目录: 用“/”表示
当前目录: 用“.”表示
父目录: 用“..”表示
”.”代表目录自己,“..”表示该目录的父目录。
eg. 绝对路径: /usr/src/linux-2.6 相对路径: ../usr/src/linux-2.6
Linux目录结构中的几个常见目录及用途:
/bin、/boot、/root、/mnt、/tmp、/usr、/lib、/dev、/etc、/var/log
Linux系统的目录结构 及各目录用途详解_罗四强的博客-CSDN博客
/home目录:
创建的新用户的默认主目录
Linux系统中隐藏某个文件:
以点"."开头命名的文件在Linux系统中被视为隐藏文件,所以把文件名命名为点开头。
目录与文件的如下常用操作命令:
ls -a; #显示包含隐藏文件在内的所有文件
ls -l; #以长格式显示文件和目录信息
ll #等价于ls -la 显示目录内容命令
cat hello.txt #显示文件内容
cat hello1.txt hello2.txt > hello.txt #连接两个或多个文件,形成新的文件
more filename #分页显示文本文件(只能向后翻阅)
less filename #分页显示文本文件(可以前后翻阅)
head -3 hello.c #显示指定文件hello.c前3行
tail -3 hello.c #显示文件"hello.c"的最后三行内容
grep #文件内容查询命令
命令语法:grep [option] [search pattern] [file1, file2,……];
eg1.在文件/etc/default/grub中搜索匹配字符“GRUB”,比较时不区分大小写,并输出所在行的行号。
grep -in ‘GRUB /’ /etc/default/grub
eg2.显示目录/etc/default下所有以a开头的文件中包含“modules”的行内容,并输出匹配字符串所在行的行号(区分大小写)。
grep -n ‘modules’ /etc/default/a*
eg3.显示目录/etc/default下acpid,alsa文件中匹配“before”的行数据内容。
cd /etc/default
grep ‘before’ acpid alsa
eg4.将文件etc/default/grub中所有包含至少有8个连续小写字符的行数据内容显示出来。
grep ‘[a-z]\{8\}’ /etc/default/grub #可以用正则表达式
eg5.反向查找
ps –aux | grep sshd | grep -v grep #查找除了grep sshd的sshd进程
find #文件查找命令
命令语法:find [路径] [选项] [-print]
eg1.查找/boot目录下的启动菜单配置文件grub.conf
find /boot -name grub.conf
eg2.查找/目录下所有以“.conf”为扩展名的文件。
Find / -name ‘*.conf’
eg3.列出/etc目录及其子目录下所有最近3天内更新过的文件。
Find /etc -ctime 3
eg4.查找文件名不是“tmp”的所有文件。
find ! -name ‘tmp’ #可以用逻辑运算符
eg5.查找/usr下名为hello.c的文件并将其删除。
find /usr -name hello.c -exec rm {} \;
说明:-exec参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。 {} 花括号代表前面find查找出来的文件名,两个括号间不能有空格。
sort #对文件中的数据进行排序
命令语法:sort [选项] [文件]
eg1.排序文件/etc/at.deny上的数据,显示在屏幕上。
sort /etc/at.deny
eg2.读取文件/etc/at.deny ,以倒序排序该文件并显示在屏幕上。
sort -r /etc/at.deny # -r:按逆序输出排序结果(--reverse )
wc #文件内容统计命令
命令语法:wc [选项] 文件
-c 统计字节数
-l 统计行数
-w 统计字数
eg1.统计文件/etc/default/grub的行数、单词数和字符数。
wc -lwc /etc/default/grub
eg2.统计目录/etc下的文件nsswich.conf、pam.conf的行数、单词数和字符数(多个文件的统计)。
wc -lwc /etc/nsswich.conf /etc/pam.conf
cp #复制文件、复制目录
命令语法:cp -r [源路径] [目标路径]
eg. 将当前目录 test/ 下的所有文件复制到新目录 newtest 下
cp -r test/ newtest
mv #文件或目录的移动、重命名
命令语法:mv [选项] [源文件|源文件夹] [目标文件|目标文件夹]
eg. 将文件 aaa 改名为 bbb
mv aaa bbb
rm #删除非空目录
命令语法:rm -rf [文件|文件夹]
eg. 删除文件"test.txt"
rm -rf test.txt
mkdir #递归建立目录
命令语法:mkdir [选项] 目录名
eg. 在工作目录下,建立一个名为 hello 的子目录
mkdir hello
rmdir #删除空目录
命令语法:rmdir [选项] 目录名
eg. 在工作目录下,删除空的子目录hello
rmdir hello
touch #创建空文件
命令语法:touch [选项] 目录名
eg. 在工作目录下,创建文件a.txt
touch a.txt
cd #改变当前工作目录
命令语法:cd [目标目录]
cd~或cd 一次性进入当前用户的主目录
cd - 返回上一次的操作目录
eg1. 跳到 /usr/bin/
cd /usr/bin/
eg2. 跳到自己的home目录
cd~
eg3. 跳到目前目录的上上两层
cd ../..
pwd #显示当前工作目录的路径
命令语法:pwd
cal #显示计算机系统的日历
命令语法: cal [选项] [月 [年]]
eg1. 显示本月的月历
cal
eg2. 显示公元2025年年历
cal 2025
eg3. 显示公元2001年5月的月历
cal 5 2001
eg4. 以1月1日起的天数显示今年的年历
cal -jy
date #显示和设置系统日期和时间 只有root用户才能修改date
命令语法:date [参数] [显示时间格式] (以+开头,后面接格式)
-d 显示描述的日期
-s 设置描述的日期(set 设置)
-u 显示或设置通用时间(--utc格式)
eg1. 显示当前计算机上的日期和时间
date
eg2. 设置计算机日期和时间为2015年09月28日19点14分
date 092819142015
eg3. 设置计算机时间为上午9点16分
date -s 09:16:00
eg4. 设置计算机时间为2015年4月14日
date -s 150414
echo #在显示器上显示文本
命令语法:echo [-n] [字符串]
-n表示输出文字后不换行,字符串可以加引号也可不加引号。
eg1. 将一段信息写到标准输出
echo hello Linux
eg2. 将文本“hello Linux”添加到新文件notes中
echo hello Linux > notes
wall #对全部已登录用户发送信息
命令语法:wall [消息]
eg1. 向所有用户发出“下班后请关机”的信息。
Wall ‘下班后请关机’
查看PATH值的命令:
echo $PATH
超级用户登录提示符:
#
普通用户登录提示符:
$
chmod #改变文件或目录的访问权限
命令语法: chmod [who] [+|-|=] [mode] filename #文字设定法
chmod [mode] filename #数字设定法
https://www.runoob.com/linux/linux-comm-chmod.html
eg1.使用文字设定法,给/目录下的11.txt文档的属主(u)、同组用户(g)、其他用户(o)均增加执行权限。
chmod a+x 11.txt
eg2.使用文字设定法,给/目录下的11.txt文档的属主(u)、同组用户(g)增加写权限、其它用户(o)删除执行权限。
chmod ug+w,o-x 11.txt
umask #更改文件/目录的默认权限
命令语法: umask nnn(默认权限) //n为0~7之间的整数
chown #更改文件/目录的所有权
命令语法: chown [option] [user|group] filename
-r 递归地改变指定目录及其下面的所有子目录和文件的拥有者
-v 显示chown命令所做的工作
eg1.把文件11.txt 所有者改为stu。
chown stu 11.txt
eg2.把目录/my的属主改为stu,属组改为users
chown stu:users /my
eg3.把目录/my及其下面的所有文件和子目录的属组改为users
chown -r :users /my
文件归档命令:
压缩: tar -zcvf hello.tar.gz(目标文件) /etc
解压: tar -zxvf hello.tar.gz -C /home