Shell:外壳,用户通过Shell可以和操作系统内核交互,通常所说的Shell就是指终端
-------------------------------------------------
文件系统管理相关命令
文件(File):一堆数据的集合
广义上,文件包括普通文件和目录,目录可以认为是一种特殊的文件
在Linux系统中,文件名以.开头的文件都是隐藏文件
每个目录下都有两个特殊的目录,即.和..,.为当前目录,..为当前目录的上层目录
文件路径表示形式有两种:
1.绝对路径,相对根目录(/)定位,比如/home/dj/abc.mp3
2.相对路径,相对当前目录定位,比如./abc, ../def.mp3
-------------------------------------------------
目录/文件的"增、删、改、查"操作:
mkdir:(创建目录)
vi 文件名:创建文件
rmdir:(该命令只能删除空目录,要删除非空目录,使用rm -rf)
mv 被改动名字的文件 改动名字的文件:(实现改名)
rename:可实现批量改名(下一期有介绍)
ls:(list,打印指定目录下的所有非隐藏文件信息。带上-a参数可以打印所有文件信息,包括隐藏文件;带上-l参数可以显示详细的文件属性信息)
pwd(print work directory):打印当前工作目录
cd(change directory):改变当前工作目录
附:如果是系统自带的文件 用相对路径 直接进去
如果是自己建立的文件 用绝对路径 一层层进去
-------------------------------------------------
ls -l执行结果解读:
文件类型(第一个字符,d表示目录,-表示普通文件,l表示软链接文件) 文件访问权限或文件模式(9个字符) 硬链接数 所有者 所属组群 文件大小 最近修改时间 文件名
*************************************************
以.c文件为例:
-rw-rw-r-- 1 dj dj 0 7月 11 19:20 b1.c
rw- 三个一组,分别代表用户自己的权限、同组用户的权限、其他组的权限
*************************************************
文件访问权限信息共包含9个字符,将它们均分为3组来看(每组3个字符),第一组表示文件的所有者对该文件具有的访问权限,第二组表示文件所属组群的成员(即同组人)对它的访问权限,第三组表示其他用户(即其他人)对它的访问权限。每一组的3个字符依次为rwx,r表示read,即可读,w表示write,即可写,x表示eXecute,即可执行,如果没有某个权限,对应的位置用-表示
附:权限可用16进制数 或者 可以+x、-x给文件赋予可执行权限。
-------------------------------------------------
修改目录属性
改名:rename (mv )
更新最近修改时间:touch
修改目录的所有者和所属组群:chown (change ownership)
修改硬链接数:后面再说
修改文件访问权限:chmod (change mode)
复制目录:cp -r 注:cp 即 copy
移动目录:mv 注:mv 即 move,也可以实现改名的功能
附:带点.文件 是隐藏文件
-------------------------------------------------
创建用户名:adduser 用户名(在/下创建)
查看新建用户:cd home/
删除用户:(1)在root下 exit出已建用户 然后userdel 用户
(2) 在home/里删除用户文件。
-------------------------------------------------
文件是否可执行条件:
(1)本身是否就是可执行文件
(2)是否具有x权限
-------------------------------------------------
查看进程:
(1)ps:当前用户的进程
(2) ps -e:所有的进程
(3)top:动态显示所有的进程
*****************************************************************************************************************************************************************************
思考题目:
1.在VM中如何将u盘的数据识别到linux中:
(1):首先要确定VM的usb服务开启。
(2):usb连接成功则VM右下角的usb图标会点亮
(3):或者在root中使用"fdisk -l"查看U盘情况。
(4):挂载u盘:"fdisk -/dev/sd"按两下tab出现磁盘情况,再输入fdisk -l/dev/U盘名
(5):在mnt目录下创建一个“usb”目录。cd /mnt -->mkdir usb
(6): 挂载u盘:mount dev/u盘名 /mnt/usb
(7): 进入挂载路径: cd /mnt/usb
(8): 查看文件信息: ls
(9): [复制文件]: cp 文件名 要到的路径
(10): 取消挂载: unmount /mnt/usb
------------------------------------------------------------
2.通过shell命令进入配置文件修改主机名:
(1):查看主机名:localname
(2):切换到root:su root
(3):修改network文件:vi /etc/sysconfig/network(网卡)
(4):修改hosts文件: vi etc/hosts
(5):重启:reboot
-------------------------------------------------------------
3.为什么在root下,使用"ls -a"显示gvfs权限不够
(1)什么是gvfs:是GNOME桌面系统的虚拟文件系统。
gvfs是fuse文件系统,fuse文件系统是在用户态运行的,管理那个文件系统的进程有权审查每一个请求并选择允许或者拒绝,su成它认可的用户就可以了。fuse文件系统通常会被挂载成不允许root用户访问的。
-------------------------------------------------------------
4.比较 "su"、"su root"和"su - root"之间带"-"的区别
su :默认切到root
su root :不改变当前变量,切到root
su - root :改变为切换到用户的变量
(也就是说su - 是切换到root并获得root的环境变量及执行权限,例如su root 就无法访问别的用户文件。)
root-->普通 不加- 则在到root环境 是打不开的
普通-->root 不在root环境是ls 不了的
-------------------------------------------------------------
5.用rename批量改名
(1):将 main1.c--->main.c
rename main1.c main.c main1.c
-------------------------------------------------------------
文件夹有 foo1,...foo9,foo10,...,
(2):rename foo foo0 foo? foo-->foo0 ?代替单个字符 所以批量修改1-9。
(3):rename foo foo0 foo* *代替多个字符 所以都修改。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
心得体会:
我是学习C++方向的,前期就先学习下简单的linux操作系统的命令,后期将会一直使用linux进行编程。所以我们先简单使用下linux,后期将会涉及高级linux技术。坚持下来,大家都可以成为合格的C++工程师!