本人较为懒,部分内容为直接cp,勿怪
图片借鉴余知乎某位深藏不漏的用户
关于ls命令输出结果的详解:
- 1 如何知道自己当前的用户名
可以使用 w whoami who am i who
- 2 如何查看以登陆以及当前系统上以安装的所有shell
echo $SHEll 查看当前登陆的shell
cat /etc/shells 查看当前所有以安装的shell
- 3 利用vim编辑器对一些参数的更改
vim /etc/bashrc 永久修改提示符,如何修改,以及怎么保存(:wq x q!)修改并退出
- 4 命令执行的语法 多个字母构成需加–
- 5 判断内部与外部命令使用 type
- 6 熟悉使用enable管理内部命令
enable 某个命令 表示激活一个内部命令
enable -n 某个命令 表示禁用某个内部命令
- 7 熟悉 help的使用方法
- 8 hash 用来查看外部命令的存储路径
常用的 有 hash -l 查看详细 包含别名
- 9 PATH 用来指定外部命令的搜索路径
命令执行的顺序 alias(别名)->内部命令(可以用type查看是否内外部)->hash(缓存你历史记录)->PATH
whereis 命令 查看命令的路径(外部)和help文档的路径
which 命令 显示命令的路径
- 10 别名(alias)
alias (别名缩写)=’(原命令)选项 参数 ‘
例如 alias cp =’ cp -i’ 原命令cp -i 和 别名(cp) 均可使用,别名可以根据个人喜好编辑
alias 查看别名 unalias 命令 删除某个命令别名 临时有效的别名可加 \ ‘ ‘ ” “来设置
永久保存别名需 添加到~/.bashrc中 每个用户都可以使用别名 添加到/etc/bashrc中
- 11 中断某个正在进行的命令操作
ctrl c 强制中断 ctrl d 正常中断
- 12 关机命令
shutdown
-r(reboot)重启
-h (halt) 关机
+X (秒,分,时)计划关机
-c 取消计划关机
- 13 时间显示及设置
date 显示时间 修改时间格式 date 月日时分年.秒
clock -s 将系统时间写入bios时间 clock -w 将bios时间写入系统时间
- 14 cal 日历
查看日历 cal 查看某年日历 cal 2017 查看前几月日历(显示上三个月) cal -5(显示567月的日历,5不特定)
- 15 screen的用法
-ls 列出当前所有的screen会话
-S xxx 创建一个自命名会话
加入某个对话 screen -x pts2sam
- 16 熟悉echo 的用法
-n 不换行 -E 不支持解释 -e 支持解释
“\a” 有警示音 可添加做提醒用
- 17 TAB 补齐
键入某个指令可以输入前几位后敲击TAB键补齐命令当有多个命令时 两次TAB 会显示所有键入相关指令
- 18 history 历史输入
HISTSIZE 可以查询当前的1000条键入命令, 输入HISTFILESIZE 查询文件中的存储数量
- 19 快捷键
ctrl a 跳到当前行首 e跳到当前行尾 alt 数字键 abc 输入指定字符
- 20 man的使用
d 向下翻半屏 u向上翻半屏 :q 退出man字典 -k查找命令所在的指定章节
- 21 文件类型
-开头为普通文件 d开头为目录文件
- 22 pwd 查询当前所在目录
- 23 cd 的用法
– 进入上一次的工作目录
~ 进入家目录或cd
.. 进入上一级目录
. 进入软连接原始目录
- 24 ls 的用法
ls为列出目录里的内容
-a(all) 列出所有文件包括隐藏文件
-l(long)列出显示属性信息的文件
- 25 使用which 查找命令路径
- 26 查看文件的详细属性 可使用 stat filename
- 27 关于通配符(这个就比较常用了)
常用的有 *(匹配多个任意字符)
?(匹配一个单一字符)
^ (这个符号是取相反的数据)
剩下的就是一些比较常用而且比较好记忆的代码了
[[:digit:]] 表示任意数字
[[:alpha:]] 表示任意字母
[[:alnum:]] 表示任意字母或数字
[[:upper:]] 表示大写字母
[[:lower:]] 表示小写字母
[[:blank:]] 水平空白字符
[[:space:]] 水平或垂直空白字符
[[:punct:]] 特殊字符
- 28 cp 的使用 cp=copy
-i 复制时提示
-r 递归 可以复制目录
-p 复制时保留它的权限 不改变时间
-v 复制时显示复制过程
- 29 mv 移动某个文件或者文件夹
-i 如果存在该文件会询问
-f 表示直接覆盖 不询问
- 30 rename 改名
改名时需注意指定路径
rename 原名字 目标名字 原文件路径(可以用通配符)
- 31 rm 删除指令
rm 文件名
-i 询问
-f 直接删除不询问
当文件数目超过上限时 可以搭配管道来进行批量删除 ls |xargs rm -rf
-r 连目录一起删除
需要注意的是 rm- rf / 这个命令在root下禁止使用,因为直接就删除所有目录和文件了,所以使用这个命令,就得背锅
- 32 tree 树显示
-d 只显示目录
- 33 mkdir 创建文件夹
-p 一次性创建多级目录,无论上级目录是否存在
-v 创建时显示信息
-m mode 创建时 直接指定权限
rmdir 删除空目录
- 34 tr 字符转换与删除
- 35 输入与输出文件
标准输入
<
标准正确输出
> 覆盖
>> 追加
标准错识输出
2> 覆盖
2>> 追加
将标准正确输出转换为标准错误输出
1>&2
将标准错误输出转换为标准正确输出
2>&1
将所有输出结果输出
&> 覆盖
&>> 追加
&> /dev/null 丢入null
- 36 管道
| 管道符表示将前一条正确命令传递给后面一条命令使用
例如 计算 1+2+3+..+99+100的总和 可以使用管道符计算 echo {1..100} |tr ‘ ‘ +|bc
- 37 tee 对输出结果进行复制
- 38 用户和权限管理
每个用户都有他的uid和guid信息,当uid和guid为0时表示当前用户为超级管理员模式
除了uid和guid为0以外的用户和组分为 系统组和用户组,系统组拥有一定的权限。用户组没有权限只能交互式登录
什么是安全上下文?
某个用户使用某个命令的进程为上文
对某个文件或目录进行修改为下文
linux组的类别
用户的主要组,和用户的附加组
一个用户只能拥有一个主要组,但是可以拥有零个或多个附加组
Linux用户和组的主要配置文件:
/etc/passwd:用户及其属性信息(名称、UID、主组ID等)
/etc/group:组及其属性信息
/etc/shadow:用户密码及其相关属性
/etc/gshadow:组密码及其相关属性
passwd的文件格式
用户名 (root) 密码(xx)UID(0)GID(0)用户全名或注释 用户所在的主目录(/home/root)以及用户可以使用的shell(/bin/shell)
shadow文件格式
登录用户名 用户名密码(用shadow512加密)从1970年1月1日起到密码最近一次被更改的时间,密码再过几天可以被变更(0表示随时可被变更),密码再过几天必须被变更(99999表示永不过期),密码过期前几天系统提醒用户(默认为一周),密码过期几天后帐号会被锁定,从1970年1月1日算起,多少天后帐号失效
group文件格式
群组名称 群组密码 (通常默认不需要设定,被记录在/etc/gshadow里面)群组ID(GUID),以当前组为附加组的用户列表(分隔符为逗号)
gshadow文件格式
群组名称,群组密码,组管理员列表,以当前组为附加组的用户列表
用户管理命令
useradd 添加用户 userdel 删除用户 usermod修改账号设定
组账号维护命令
groupadd 添加组 groupdel删除组 groupmod修改组设定
- 39 用户创建的参数
useradd -D 修改用户的信息及功能
useradd xxxx 为创建用户名为xxxx的用户
-u可以设定该用户的uid信息
o 配合-u 选项,不检查UID的唯一性
-g GID:指明用户所属基本组,可为组名,也可以GID useradd –D –g GROUP更改基本组
-c “COMMENT”:用户的注释信息
-d HOME_DIR: 以指定的路径(不存在)为家目录 useradd –D –b BASE_DIR 更改用户所在路径
-s SHELL: 指明用户的默认shell useradd –D -s SHELL 更改用户使用的shell
-G GROUP1[,GROUP2,…]:为用户指明附加组,组须事先存在
-N 不创建私用组做主组,使用users组做主组
-r: 创建系统用户
默认值设定:/etc/default/useradd文件中
- 新建用户的相关文件及命令
/etc/default/useradd
/etc/skel/*
/etc/login.defs
newusers passwd格式文件 批量创建用户
chpasswd 批量修改用户口令
- usermod的相关设定
usermod -? loginuser
-u UID: 新UID
-g GID: 新主组
-G GROUP1[,GROUP2,…[,GROUPN]]]:新附加组,原来的
附加组将会被覆盖;若保留原有,则要同时使用-a选项
-s SHELL:新的默认SHELL
-c ‘COMMENT’:新的注释信息
-d HOME: 新家目录不会自动创建;若要创建新家目录并移
动原家数据,同时使用-m选项
-l login_name: 新的名字;
-L: lock指定用户,在/etc/shadow 密码栏的增加 !
-U: unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉
-e YYYY-MM-DD: 指明用户账号过期日期
-f INACTIVE: 设定非活动期限
- 删除用户
userder (xxxx) login -r 删除家目录
- 查看用户的相关信息 id -? xxxx
-u: 显示UID
-g: 显示GID
-G: 显示用户所属的组的ID
-n: 显示名称,需配合ugG使用
- 切换用户及用其他用户执行命令
su 不完全切换用户(及不改变工作目录,不会读取用户的配置文件)
su – 完全切换 (会读取切换用户的配置文件并切换至家目录)
root用户切换至其他账户无需密码,其他用户切换账号需要输入对应的密码
- 设置密码
输入passwd 修改当前密码
-l 锁定指定用户 -u解锁指定用户
-e 强制某个用户下次登陆修改密码
-n 指定密码最短使用期限 -x 密码最大使用期限
-w提前多少天开始警告
-i 非活动期限
- 用户密码修改设置策略
chage -? loginuser
-l 显示密码策略
- 创建组
groupadd groupname
-g 指定gid号
-r 创建系统组
- 修改和删除组
组属性修改 goupmod -? … group
-n group_name 新名字
-g GID 新的GID
- 组删除
groupdel GROUP
- 更改组密码
gpasswd
-a user 将user添加到指定组中
-d user 将指定user移除组中
-A user1,user2,.. : 设置有管理权限的用户列表
newgrp命令 临时切换主组,如用户不属于此组,将需要组密码
- 更改和查看组成员
groupmems
-g,–group groupname 更改为指定组(仅root可用)
-a,–add username 指定用户加入组
-d, –delete username 删除指定用户
-p,–purge 清除组中所有成员
-l,–list 显示组中成员列表
groups ? username … 查看用户所属组列表
- 文件权限
chown 设置文件的所有者
用法 chown ? [owner]:[GROUP] FILE ?
OWNER OWNER:GROUP :GROUP
命令中的冒号.替换
-R 递归
chown [OPTION]… –reference=RFILE FILE…
chgrp 设置文件的属组信息
chgrp ? …GROUP FILE…
chgrp ? .–reference=RFILE FILE…
-R 递归
- 文件权限针对三类型定义
owner:属主 , u
group:属组 ,g
other :其他 ,o
- 每个文件对每类访问者定义三种权限
r :Readable 可使用文件查看工具获取其内容
w: writable 可以修改其内容
x: eXcutable 可把此文件提请内核启动为一个程序
目录
r: 可以使用ls查看此目录中文件列表
w: 可新建或删除此目录中的文件
x: 可使用ls -l查看此目录中文件,可以cd进入该目录
X: 只给目录x权限 , 不给文件x权限
文件权限操作命令 : chmod
操作文件权限可以使用数字快速代替
读(r):4
写(w):2
执行(x):1
八进制数字
— 000 0
–x 001 1
-w-010 2
-wx 011 3
r– 100 4
r-x 101 5
rw- 110 6
rwx 111 7
例如640 rw-r—– 756 rwxr-xr-w
- 修改文件权限
-R递归修改权限
chmod ? 。。。。。。。
chmod ? mode file
MODE:
修改一类用户的所有权限:
u= g= o= ug= a= u=,g=
修改一类用户某位或某些位权限
u+ u- g+ g- o+ o- a+ a- + –
原创文章,作者:spidermansam,如若转载,请注明出处:http://www.178linux.com/86126