文章目录
一、Xwindow、重要的热键、在线求助
1.Xwindow与纯文本模式的切换:
linux会提供6个terminal供使用者登陆,名称分别为tty1-tty6。
- ctrl + alt + F2~F6 文字借口登陆到tty2-tty6终端机
- ctrl + alt +F1 登陆图形接口
2.一些系统指令
date
显示系统日期与时间
date +%Y/%m/%d 2020/11/09
date +%H:%M 10:46
cal
显示日历
cal 2015 显示2015年日历
cal 10 2020 显示2020年10月份日历
bc
计算器
先在终端输入bc,则进入计算器程序,输入quit则退出,计算时直接输入表达式即可。
$bc
$1+2+3
输出:6
$1/3
输出:0 #要想保留小数点位数,则指定scale
$scale=3
$1/3
输出:0.333
shutdown
3.重要的热键
[Tab]
命令补齐与文件名补全[ctrl] + C
中断当前指令[ctrl ] + D
键盘输入结束(EOF)的意思,用于离开文字接口,相当于exit[shift] + [page up] | [page down]
某些指令输出信息太长时,用于前后翻页
4.在线求助
命令 --help
man 命令
info 命令
二、文件权限与目录配置
1.文件属性
使用ls -al
或者ll
指令输出某个文件夹下的文件属性:
- 其中第一个字符表示这个文件是目录、文件或链接文件等。
- d代表是目录
- -代表是文件
- l代表为链接文件(link file)
- b代表装置里面可供存储的接口设备(可随机存取装置)
- c代表装置里面的串行端口设备,如键盘、鼠标等
- 接下来的rwx三个为一组,分别表示文件拥有者、文件所属群组和其他用户对该文件的访问权限。
- 第二栏代表有多少档名链接到此节点。
- 第三、四栏表示该文件的拥有者与所属群组
- 第五栏为文件容量大小,默认单位为kb
- 第六、七栏为该文件最近修改日期和文件名
2.改变文件属性与权限
chown [-R] 账号名 文件或目录
chown [-R] 账号名:组名 文件或目录
chown [-R] 组名 文件或目录
改变文件所属用户或群组,-R代表对于目录下的所有子文件都递归的变更
可以使用数字代表每个权限,r=4,w=2,x=1
chmod [-R] 777 文件或目录
chmod [-R] [u|g|o|a][+|-][r|w|x] 文件或目录
chmod [-R] u=rwx,go=rx 文件或目录
chgrp [-R] 组名 文件或目录
改变所属群组
假设有dir1与dir2两个文件夹,且在dir1下有file1这个文件,如果要做出如下动作,则要求dir1、dir2、file1具有的权限如下:
3.文件与目录的默认权限
umask
用户在新建文件或目录时的默认权限值
输入umask,输出0022,第一组是特殊权限用的,不用关心,只需关注后面3组022即可。
- 022表示用户去除了0分,即没有任何权限去除,所以为rwx,而群组和other去除了2分,即去除了w权限,所以他们分别为r-x;
- 注意,对于文件在新建时默认没有x权限,对于目录没有限制;
例子:
$umask
0022
$touch file1
$mkdir directory1
$ll
-rw-r--r-- 1 root root ....
drwxr-xr-x 2 root root ....
如何修改umask?直接umask number,如:
$umask 002
$touch file1
$touch directory1
$ll
-rw-rw-r-- ....
drwxrwxr-x ....
4.文件与目录的隐藏权限
(待补充)
三、文件与目录管理
1.一些特殊的目录
. 代表此层目录
.. 代表上层目录
- 代表前一个工作目录
~ 代表目前用户身份所在的家目录
~account 代表account用户的家目录(account是账户名称)
2.目录操作指令
cd 变换目录
pwd 显示当前目录
pwd -P 显示出真实的路径,而非链接文件的路径
mkdir 目录名 新建一个目录
mkdir -p 目录/目录2/目录3 递归新建目录
mkdir -m 711 目录1 以权限711创建目录1,如果不指定-m选项,则会以默认权限创建目录
rmdir 目录名 删除目录,注意目录下面必须为空!
rmdir -p 目录1/目录2/目录3 递归删除目录,每个目录下必须为空!
3.文件操作指令
ls文件与目录检视
ls -[aAdfFhilnrRSt] 文件或目录名
记住几个常用选项:
-a:列出全部文件,包括隐藏文件(以.开头的文件)
-d:仅列出目录本身,而不列出目录内包含的文件
-h:将文件容量以人类较易读的单位列出(Kb,Gb等)
-l: 以长串形式列出文件或目录属性
复制、删除与移动:cp、rm、mv
cp -[adfilprsu] 源文件 目的文件
cp [options] 源1 源2 ... 目的目录
记住如下常用选项:
-i 若目标文件已存在时,则在复制前会询问是否要覆盖
-p 连同文件的属性(权限、用户、时间)一起复制过去,而非使用默认属性
-a 功能更强大,包含-p功能
-r 递归持续复制,用于目录复制行为
-s 复制成为符号链接文件,即快捷方式文件
-l 进行硬链接文件建立,而非复制文件本身
-u 会比较目标文件与源文件的新旧,只有源文件更新时,才会复制
rm -[rfi] 文件或目录
-r: 递归删除,用于删除目录
-f:强制删除,忽略不存在的文件,不会产生警告信息
-i: 互动模式,在删除前会询问删除者是否动作
mv -[fiu] source destination
mv [options] source1 source2 source3 destionation
-f: 强制移动,若已存在,则不会询问而直接覆盖
-i: 若目标文件存在,则会询问是否覆盖
-u: 若目标文件存在,且source比较新,才会覆盖
注意:没有-r选项,即目录可以直接移动
文件内容查阅
注意:tail -f 文件名
可以持续观测文件内容,只要文件有更新输入,就会显示,常用来查看日志文件
4.指令与文件搜寻
which
which -[a] command
根据PATH这个环境变量所规范的路径,去搜寻执行档的档名
-a表示列出所有由PATH目录中可以找到的指令,而不止第一个指令
whereis
whereis -[bmsu] 文件或目录名
只去几个特定目录下去寻找文件,如/bin/sbin、/usr/share/man,所以查找速度比find快很多。
如果想知道whereis到底查了多少目录,可以用whereis -l。
locate/updatedb
locate -[ir] keyword
locate后面可以接文件名的一部分,使用起来更简单。它是从已建立的数据库/var/lib/mlocate里面去搜寻,
不用直接从硬盘当中去搜寻,所以执行很快。但它使用起来有限制,因为数据库的建立是每天执行一次,所以
当新建的文件在数据库更新之前搜寻时,会搜不到,要使用updatedb更新数据库。
find
find [path] [option] [command]
1. 与时间有关的参数:-atime、-ctime、-mtime,以-mtime说明
-mtime n: n天之前(一天内)被更改过的文件
-mtime +n: n天之前(不含n天)被更改过的文件
-mtime -n: n天之内被更改过的文件
-newer file: file为一个文件,列出不file还要新的文件
例子:
find / -mtime 0 列出24小时内有更改过的内容
find / -mtime 4 列出/下4天内被更改过的文件名
find /etc -newer file 列出比/etc下日期比file还要新的文件名
2. 与使用者或组名有关的参数
-uid n: n为数字,这个数字是用户的账号id。
-gid n: n为数字,是组名的id
-user name: 列出所属指定用户的文件
-group name: 列出所属指定组的文件
-nouser: 寻找文件的拥有者不存在/etc/passwd的人
-nogroup:寻找群组不存在于/etc/passwd的文件
例子:
find /home -user maxu 寻找/home下属于maxu的文件
find / -nouser 寻找系统中不属于任何人的文件,可以找出不正常的文件
3. 与文件权限及名称有关的参数
-name filename: 找出某个名称的文件
-size [+-]SIZE: 找出大于(+)或小于(-)SIZE的文件
-type TYPE:搜索文件类型为TYPE,正规文件为f,装置文件为b,c,目录为d,链接文件l等
-perm MODE:搜索文件的mode刚好等于MODE的文件。
例子:
find / -name passwd 文件名为passwd
find / -name "*passwd*" 文件名包含passwd
find /run -type s
find / -perm /7000
4. 额外进行的动作
-exec command
例子:
find /usr/bin /usr/sbin -perm /7000 -exec ls -l {} \;
{}代表是由find找到的内容;
-exec一直到\;是关键词,代表额外动作的开始(-exec)到结束(\;)
;在bash环境下是有特殊意义的,所以加\转义
一般在搜寻某个文件时,先使用which、whereis和locate,如果找不到,再使用find。