1. Linux系统目录结构
1.1 结构树
1.2 详细介绍
/bin: bin就是二进制(binary)的英文缩写。在这里存放前面Linux常用操作命令的执行文件,如mv、ls、mkdir等。有时,这个目录的内容和/usr/bin里面的内容一样,它们都是放置一般用户使用的执行文件。
/boot:这个目录下存放操作系统启动时所要用到的程序。如启动grub就会用到其下的/boot/grub子目录。
/dev:该目录中包含了所有Linux系统中使用的外部设备。要注意的是,这里并不是存放的外部设备的驱动程序,它实际上是一个访问这些外部设备的端口。由于在Linux中,所有的设备都当作文件一样进行操作,比如:/dev/cdrom代表光驱,用户可以非常方便地像访问文件、目录一样对其进行访问。
/etc:该目录下存放了系统管理时要用到的各种配置文件和子目录。如网络配置文件、文件系统、x系统配置文件、设备配置信息、设置用户信息等都在这个目录下。系统在启动过程中需要读取其参数进行相应的配置。
/etc/rc.d:该目录主要存放Linux启动和关闭时要用到的脚本。
/home:该目录是Linux系统中默认的用户工具根目录。执行adduser命令后系统会在/home目录下为对应账号建立一个名为同名的主目录。
/lib:该目录是用来存放系统动态链接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。因此,千万不要轻易对这个目录进行什么操作。
/mnt:该目录是软驱、光驱、硬盘的挂载点,也可以临时将别的文件系统挂载到此目录下。(U盘挂载)
/proc:该目录是用于放置系统核心与执行程序所需的一些信息。而这些信息是在内存中由系统产生的,故不占用硬盘空间。
/root:该目录是超级用户登录时的主目录。
/sbin:该目录是用来存放系统管理员的常用的系统管理程序。
/tmp:该目录用来存放不同程序执行时产生的临时文件。一般Linux安装软件的默认安装路径就是这里。
/usr:这是一个非常重要的目录,用户的很多应用程序和文件都存放在这个目录下,类似与Windows下的Program Files的目录。
/usr/bin:系统用户使用的应用程序。
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:内核源代码默认的放置目录。
/var:这也是一个非常重要的目录,很多服务的日志信息都存放在这里。
2. Linux常用命令
2.1 命令输入描述
[root@localhost root]#
第一个root:用户名,账号
localhost:计算机名
第二个root:用户当前工作目录,后面带#,表示root是超级用户,如果是$,则是普通用户
2.2 指令语法
command [-option] param1 param2 ......
命令名 选项 参数1 参数2
2.3 相关专业术语及常用命令
history:查看历史使用的所有命令
[Tab]: 按Tab键可补齐命令或文件名
[ctrl] + c:强制中断当前运行程序,终止正在执行的命令
[ctrl] + d:键盘输入结束
[ctrl] + l:清屏
[ctrl] + [insert]:复制
[shift] + [insert]:粘贴
命令帮助:帮助查询命令使用方法
help + 命令
命令 --help
例如:help cd
cd --help
区别:help 命令只能用于内建命令(通过 type + 命令 可以查看该命令是内建命令还是外部命令)的帮助信息查询,显示简洁的信息;
--help 还可以查询外部命令的帮助文档。
内建命令:若终端上显示的是 ...(命令) is a shell builtin,则是内建命令,否则是外部命令。
man + 命令
info + 命令
例如:man cp
info cp
区别:man 可以显示系统手册页中的内容,显示的信息更全;
info 命令的功能基本与 man 命令相似,但更丰富
whatis + 命令:查询命令执行什么功能
which + 命令/文件:用于查找文件
ls filename:查看当前目录里的文件和目录信息
ll filename:查看该文件属性、文件链接数、所有者、所属用户组、文件大小、修改时间、文件名
文件类型(查询显示的第一个字符)
“_”表示普通文件。
“d”表示目录文件。
“l”表示链接文件。
“c”表示字符设备文件。
“b”表示块设备文件。
“p”表示命名管道,比如FIFO文件(First In First Out,先进先出)。
“f”表示堆栈文件,比如LIFO文件(Last In First Out,后进先出)。
“s”表示套接字文件
文件属性(第一个字符后面连续的九个字符,每三个代表一组用户拥有的操作权限,分别是文件拥有者、文件所有组、系统其他用户)
“r”表示可读
“w”表示可写。
“x”表示可执行。
“-”表示该用户组对此没有权限。
操作权限含义:
对于普通文件、管道和设备等文件来写来说,
r权限:该用户能读这个文件的内容,
w权限:表示能更改文件内容
x权限:能执行这个文件代表的程序或命令
对于目录文件来说
r权限:能列该目录内容,
w权限:在该目录中增加或删除文件,
x权限:能用cd命令进入该目录
相对路径与绝对路径
绝对路径:给出从根目录开始一直到所要操作文件名、中间以“/”隔开的完整路径。
相对路径:工作目录初始设置为用户的“家”,可用命令cd改变
示例:若当前工作目录为“/home/can”,则文件/home/can/code/test/add.c可用相对路径表示为code/test/add.c
Linux目录操作命令(cd、pwd、mkdir、rmdir)
cd:改变当前工作目录
pwd:显示当前工作目录的绝对路径
mkdir filename:创建目录
rmdir filename:删除空目录文件
Linux文件操作命令(rm、cp、mv)
rm:删除目录或文件
常用选项:-f:强制删除,不进行二次询问
-i:删除前会询问用户是否操作
-r/R:递归删除
-v:显示执行过程
例如:rm -rf filename(谨慎使用)
cp:复制文件(可重命名)
语法:cp [-adfilprsu] 源文件(source) 目的文件(destination)
例如:cp test.c test1.c
实例:将家目录下的 .bashrc 复制到 /tmp 下,文件名改为bashrc
cp ~/.bashrc /tmp/bashrc
mv:移动文件与目录,或更名
语法:mv [-fiu] source destination (档案或目录更名)
mv [options] source1 source2 source3 .... Directory (档案或目录移动)
常用选项:-f:force 强制的意思,强制直接移动而不询问
-i:若目标档案 (destination) 已经存在时,就会询问是否覆盖
-u:若目标档案已经存在,且 source 比较新,才会更新 (update)
例如:(目录改名)将目录 test 改为 hh
mv test hh
文件/目录属性修改(touch,chmod)
chmod:修改文件权限信息
语法:chmod [-cfvR] [ugoa][+-][rwx] filename
chmod [-cfvR] 三位八进制数 filename
常用选项:-R 处理指定目录以及其子目录下的所有文件
u user 表示该文件的所有者
g group 表示与该文件的所有者属于同一组( group )者,即用户组
o other 表示其它用户组
a all 表示这三者(user、group、other)皆是
+增加权限 、-撤销权限、=设定权限
r读、w写、x执行
例如:将文件test.c的文件权限改为所有者、所属用户组、其他用户都有读、写、执行权
chmod 777 test.c
文件内容查阅(cat,echo,tac,head,tail,more,less)
cat:创建单个或多个文件,查看文件的内容
语法:cat [-nbse] filename
echo:查看文件内容
语法:echo filename
tac:反序输出文件内容
语法:tac filename
head:显示文件前面几行
语法:head filename -n 数字(具体多少行)
tail:显示文件最后面几行
语法:tail filename -n 数字(具体多少行)
more:分页显示文件内容
语法:more [-dlfpcsu] [-num] [+/pattern] [+num] [fileNames..]
常用选项: -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-s 当遇到有连续两行以上的空白行,就代换为一行的空白行
+num 从第 num 行开始显示
-num 一次显示的行数
+/pattern 在显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
less:分页显示文件内容
语法:less filename
创建与编辑文件(gedit, touch)
语法:gedit filename
touch filname
查找文件(grep)
grep:在文件中查找指定内容
语法:grep [options] [pattern] file
常用选项: -i : 忽略大小写
-o : 仅显示匹配到目标字符串
-v : 显示不能被匹配到的字符串(反转)
-E : 支持使用扩展的正则表达式字符串
-q : 静默模式,不输出任何信息
系统及用户管理命令
su:切换用户
sudo:以root用户权限执行
useradd:添加用户
userdel:删除用户
groupadd:添加群组
usermod:修改用户信息