命令
立刻关机 :shutdown -h now 或 shutdown -r now 或 poweroff
查看shell类型: cat /etc/shells 或 chsh -l
显示工作目录:pwd (print work directory)
切换当前工作目录:cd ?(change directory)
-h:在ls -l基础上去使用h,以人类可读的方式显示当前目录中文件和目录的大小
/bin 软链接(快捷方式),符号链接,binaries(二进制文件),可执行的应用程序。
/boot:存放的是启动程序后的核心文件(链接文件和镜像文件)
/lib:library(库),存放着系统最基本的动态连接共享库(32位),
/lib64: ibrary (库),存放着系统最基本的动态连接共享库(64位)
/media:挂载点目录,让用户去临时挂载别的文件系统。系统默认
/opt: optional (可选).主机给额外安装软件所摆放的目录。
/sbin:超级用户的二进制文件的缩写,存放的是系统管理员所使
/srv:第三方服务,存放的是一些服务启动后需要提取的数据。
/usr:unix shared resourse(共享资源),很多应用程序和文件
/run:是临时文件系统,存放的系统启动以来的信息(守护进程)
/proc:进程的缩写。程序(源代码生成的可执行文件)、进程
如man passwd(q退,空格下页,b上页,n(N)上(下)个一关键字)
date -s "20190218 12:00:00" 设置时间伟2019年2月18号12:00
date 001218022019 设置时间为2019年2月18日12点(不能加秒)
date -s "19970222 10:10:11":设置时间
timedatectl set-ntp true:自动同步时间(true开启,false关闭)
hwclock -s:将系统时间(date) 同步到 硬件时间(clock)
hwclock -w:将硬件时间(clock) 同步到 系统时间(date)
timedatectl status:查看详细时间(好几个时间)
timedatectl set-timezone Asia/Shanghai:设置时区为亚洲上海
软链接、硬链接创建方式:
ls -i 文件名:索引节点是否相同判断是软链接(不同)还是硬链接(一样)
d rwx r-x r-x:文件类 + 所有者权限 + 所属者权限 + 其用户权限
文件权限: 9位,每3位一组,每一组:rwx(读,写,执行) -:没有权限
第一组为: 文件拥有者的权限, 该文件的拥有者可以读写,但不可执行;
stat 文件(夹)名
rm
-r 递归删除详细linux rm -rf命令
mkdir -p 1/2/3/4 :级联目录1中有2,2中有3,3中有4
cp 复制
mv 移动
数据流和重定向
标准输入 stdin (standardinput):从键盘获取的输入,
标准正确输出 stdout (standard output): 命令执行后的正确信息会输出到屏幕上,
标准错误输出 stderr(standard error output): 命令执行失败后的错误信息会输出到屏幕上,代码2
文件3 >> 文件4:使用 >> 符号可以将文件3内容附加到文件4末尾而不覆盖原有内容
echo 字符串的输出
echo 字符串 >>(或>) 文件 :把字符串写入文件,文件不存在则创建新文件
vim 键盘图
whereis
可以搜索系统命令的可执行文件路径和说明文档,#which ls
which
locate
数据库位置/var/lib/mlocate/mlocate.db可以使用updatedb 命
find
可按照文件名、大小、时间、权限、类型所属者、所属组来搜索文件
find -name "f*" //查找f开头的文件,要用双引号
-type 文件类型 (f普通文件、d 目录文件、I链接文件)。
-size 文件大小 +1M-1M c(字节) w(字数)b(块数) K M G
-ctime n 分钟 change改变时间,原数据内容的改变的时间
find . -type d -exec ls -l -h {} ;
grep:用于查找文件里面的字符串或者正则表达式
-n 查找到字符串所在行
-c 查找到字符串在的行号,有多少个
-l 只打印匹配到文件名
-v 反向查找
-r 递归查找。
^[sg]: 匹配以s或g开头的行
^[^sg]: 不匹配以s或g开头的行
^[0-9]: 匹配数字开头的行
n$ :匹配以n结尾的行
cat
tr
cat 文件 | tr a-z A-Z: 把文件里的a-z换成A-Z
wc 命令用于计算字数。
利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。
wc [-clw][--help][--version][文件...]
zip 压缩
∆ tar 压缩c 解压x
tar -xvf a.tar -C /home/zhang/ : 将a.tar压缩包解压到/home/zhang/中
scp 传文件
就是secure copy,是用来进行远程文件拷贝的。数据传输使用 ssh,并且和ssh 使用相同的认证方式,提供相同的安全保证 。
命令格式:scp [参数] <源地址(用户名@IP地址或主机名)>:<文件路径> <目的地址(用户名 @IP 地址或主机名)>:<文件路径>
scp /home/work/source.txt work@192.168.0.10:/home/work/ #把本地的source.txt文件拷贝到192.168.0.10机器上的/home/work目录下
scp work@192.168.0.10:/home/work/source.txt /home/work/ #把192.168.0.10机器上的source.txt文件拷贝到本地的/home/work目录下
scp work@192.168.0.10:/home/work/source.txt work@192.168.0.11:/home/work/ #把192.168.0.10机器上的source.txt文件拷贝到192.168.0.11机器的/home/work目录下
scp -r /home/work/sourcedir work@192.168.0.10:/home/work/ #拷贝文件夹,加-r参数
scp -r /home/work/sourcedir work@www.myhost.com:/home/work/ #使用主机名
scp -r -v /home/work/sourcedir work@www.myhost.com:/home/work/ #显示详情,加-v参数
shell
ls -a | vim .bash_history 查看配置文件中的历史记录
账户名称 密码占位符 uid gid 个人资料 主目录 默认shell
- 用户名:代表账号
- 口令:存放着加密后的用户口令,虽然这个字段存放的只是用户口令的加密串,不是明文,但是由于/etc/passwd文件对所有用户都可读,所以这仍是一个安全隐患。因此,现在许多Linux版本都使用了shadow技术,把真正加密后的用户口令存放到/etc/shadow文件中,而在/etc/passwd文件的口令字段中只存放一个特殊的字符,例如,用x或者*来表示。
- 用户标识号:就是用户的UID,每个用户都有一个UID,并且是唯一的。通常UID号的取值范围是0~65535,0是超级用户root的标识号,1~99由系统保留,作为管理账号,普通用户的标识号从100开始。而在Linux系统中,普通用户UID默认从500开始。UID是Linux下确认用户权限的标志,用户的角色和权限都是通过UID来实现的
- 组标识号:就是组的GID,与用户的UID类似,这个字段记录了用户所属的用户组。它对应着/etc/group文件中的一条记录。
- 注释性描述:该字段是对用户的描述信息,例如,用户的住址、电话、姓名等。
- 主目录:也就是用户登录到系统之后默认所处的目录,也可以叫作用户的主目录、家目录、根目录等。
- 默认shell:就是用户登录系统后默认使用的命令解释器。shell是用户和Linux内核之间的接口,用户所做的任何操作,都是通过shell传递给系统内核的。Linux下常用的shell有sh、bash、csh等,管理员可以根据用户的习惯,为每个用户设置不同的shell。
2、加密后的密码:如果为空,则对应用户没有口令,登录时不需要口令;星号代表帐号被锁定;双叹号表示这个密码已经过期了,故为*或者!!时都不能登录。$6$开头的,表明是用SHA-512加密;$1$表明是用MD5加密; $2$ 是用Blowfish加密;$5$ 是用 SHA-256加密;
3、最近改动密码的日期(是一堆数字,这个是从1970年1月1日算起的总的天数)。
4、密码不可被变更的天数:设置了这个值,则表示从变更密码的日期算起,多少天内无法再次修改密码,如果是0的话,则没有限制.
5、密码需要重新变更的天数:密码经常更换才能保证安全,为了提醒某些经常不更换密码的用户,可以设置一个天数,强制让用户更换密码,也就是说该用户的密码会在多少天后过期,如果为99999则没有限制
6、密码过期预警天数:如果在5中设置了密码需要重新变更的天数,则会在密码过期的前多少天进行提醒,提示用户其密码将在多少天后过期
7、密码过期的宽恕时间:如果在5中设置的日期过后,用户仍然没有修改密码,则该用户还可以继续使用的天数
[root@localhost ~]#vim /etc/group
组名 也就是是用户组的名称,有字母或数字构成。同 /etc/passwd 中的用户名一样,组名也不能重复。
组密码 和 /etc/passwd 文件一样,这里的 "x" 仅仅是密码标识,真正加密后的组密码默认保存在 /etc/gshadow 文件中。
不过,用户设置密码是为了验证用户的身份,那用户组设置密码是用来做什么的呢?用户组密码主要是用来指定组管理员的,由于系统中的账号可能会非常多,root 用户可能没有时间进行用户的组调整,这时可以给用户组指定组管理员,如果有用户需要加入或退出某用户组,可以由该组的组管理员替代 root 进行管理。但是这项功能目前很少使用,我们也很少设置组密码。如果需要赋予某用户调整某个用户组的权限,则可以使用 sudo 命令代替。
组ID (GID):就是群组的 ID 号,Linux 系统就是通过 GID 来区分用户组的,同用户名一样,组名也只是为了便于管理员记忆。
这里的组 GID 与 /etc/passwd 文件中第 4 个字段的 GID 相对应,实际上,/etc/passwd 文件中使用 GID 对应的群组名,就是通过此文件对应得到的。
组中的用户:此字段列出每个群组包含的所有用户。需要注意的是,如果该用户组是这个用户的初始组,则该用户不会写入这个字段,可以这么理解,该字段显示的用户都是这个用户组的附加用户。
举个例子,lamp 组的组信息为 "lamp:x:502:",可以看到,第四个字段没有写入 lamp 用户,因为 lamp 组是 lamp 用户的初始组。如果要查询这些用户的初始组,则需要先到 /etc/passwd 文件中查看 GID(第四个字段),然后到 /etc/group 文件中比对组名。
每个用户都可以加入多个附加组,但是只能属于一个初始组。所以我们在实际工作中,如果需要把用户加入其他组,则需要以附加组的形式添加。例如,我们想让 lamp 也加入 root 这个群组,那么只需要在第一行的最后一个字段加入 lamp,即 root:x:0:lamp 就可以了。
userdel -r 用户名 //家目录和邮箱都删掉,邮箱 /var/spool/mail/
权限
一般权限
chmod 对象[+/-/=] 权限(r/w/x) 文件名 //对象:u g o a(所有者,所属组,其他,所有)
0 6 3 // 0 2+4 1+2 :没有权限,修改和读取,执行和修改
特殊权限
SUID //u,所属者的权限,s权限 ,S没有x执行权限,s有x执行权限
作用: 是为了让一般用户执行某些程序的时候,在程序运行的期间,暂时获得该程序文件的所属者的权限。
文件:如果SGID 设置在二进制文件上面,则不论用户是谁,都可以在执行该程序的时候程序的所属组将变成该文件的所属组。
目录:如果 SGID 设置 A 目录上,则在该目录内创建的文件或者目录的所属组会变成A目录的所属组
chgrp :命令用于变更文件或目录的所属群组
chgrp [-cfhRv][--version][所属群组][文件或目录...] 或 chgrp [-cfhRv][--reference=<参考文件或目录>][--version][文件或目录...]
-c 或 --changes:效果类似"-v"参数,但仅回报更改的部分。
-f 或 --quiet 或 --silent: 不显示错误信息。
-h 或 --no-dereference: 只对符号连接的文件作修改,而不改动其他任何相关文件。
-R 或 --recursive: 递归处理,将指定目录下的所有文件及子目录一并处理。
-v 或 --verbose: 显示指令执行过程。
--reference=<参考文件或目录>: 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
--version: 显示版本信息。