导图社区 linux自学教程框架思维导图
linux自学教程框架思维导图内容有sudo权限、A如何免登B机器、文件管理、cd命令、链接In、创建目录文件、cp复制文件或目录、v移动或更名现有文件或目录、m删除命令,欢迎品鉴。
编辑于2023-02-24 21:10:01 广东linux自学教程框架思维导图
sudo 权限
sudo 用户配置的文件是:/etc/sudoers,默认只有root 用户可以修改该文件,切保存的时候需要进行强制保存:wq!
如何为用户增加sudo权限,如 将ckl 用户 加上 ls 和rpm的权限
1、先用 whereis ls 和 whereis rpm 命令找到ls 与 rpm的绝对路径
2、然后在sudoers 里面 加上: ckl ALL=/bin/rpm , /bin/ls 就给ckl 用户添加上ls和rpm的权限了
A如何免登B机器
1、首先在A 机器上生成秘钥:ssh -keygen
2、然后进入保存秘钥的目录:cd .ssh/
3、秘钥保存在 id_rsa.pub,文件中,用cat id_rsa.pub 可查看秘钥
4、将A机器中的 id_rsa.pub 的文件内容 复制到 B机器用户的 .ssh/authorized_keys文件里
文件管理
通过ls -l 命令可以查看文件目录等的相关信息
-rw-------. 1 root root 772 6\u6708 18 2013 anaconda-ks.cfg -rw-r--r--. 2 root root 1 11\u6708 20 16:27 hard-link -rw-r--r--. 1 root root 11955 5\u6708 2 2013 post-install -rw-r--r--. 1 root root 550 5\u6708 2 2013 post-install.log -rw-r--r--. 2 root root 1 11\u6708 20 16:27 source lrwxrwxrwx. 1 root root 6 11\u6708 20 16:33 source1 -> source
上步中显示信息代表的含义
- 表示文件 ; d 表示目录 ; l 表示链接; s 表示sock; b 表示block设备块。
上步中后面字符信息表达的意思
第一组3个字符表示 该文件的用户所属者, 第二组3个字符表示该文件的用户组所属, 最后表示其他角色
文件权限与权限代码
r --读 4, w --写 2, x --执行 1, - --无权限 0
描述 -rw-r--r--. 2 root root 1 11\u6708 20 16:27 source 的权限信息
这是个文件,root 用户有读写的权限,root用户组有读的权限,其他角色有读的权限
读的权限代码>=4(4,5,6,7), 写的权限代码是2,3,6,7 , 执行的权限代码是基数(1,3,5,7)
chmod 修改文件许可权限&chown 修改目录文件的所有者
命令 -R 在更改目录时 加上此参数 表示递归更改目录的属性,目录下的文件和子目录的权限一起做变更
chmod 777 -R /etc
chown 用户.用户组 /root/source 更改用户的所有者信息
cd 命令
常用命令
1、cd ~ 直接返回用户主目录,回到当前用户的家目录 2、cd - 返回上次用户所在目录 3、cd /test/ 使用绝对路径 --直接进入test目录 4、cd ../../root/ 使用相对路径 每个.. 表示一层目录
如何处理 不能 sudo cd
cd 不能有sudo的权限 如果要更改cd的权限 ,先要确定操作的目录/文件有哪个用户组有权限,如root 用户组,通过usermod -g root ckl
链接 ln
链接之间的关系
对原文件、硬链接、软链接 进行修改时,其他两项均会进行修改
对原文件删除时,软链接也会无效
要真正删除文件,要同时删除硬链接和原文件
链接的实际意义
软连接的作用主要是建立桌面的快捷方式 ls -s existfile newfile
硬链接的作用是备份 ls existfile newfile
注意
对目录 不能建立硬链接,只能建立软连接
实例
实例一:ln /etc/passwd /home/passwd 例子说明:对文件/etc/passwd 创建一个硬连接passwd,存放在/home 目录下 实例二:ln -s /etc/rc.d/init /home/init 例子说明:对目录/etc/rc.d/init 创建一软连接init,存放在/home 目录下
创建目录文件
命令 -p
若所要建立目录的上层目录目前尚未建立, 则会一并建立上层目录
创建目录(mkdir)
实例一:mkdir bak 例子说明:在当将目录下新建 bak 目录 实例二:mkdir -p /home/lwan/1/2/bak 例子说明:在/home/lwan/1/2/新建一bak 目录,如果bak 的上层目录不存在,则一并创建
创建文件touch
touch log log1
cp 复制文件或目录
关键参数
-r/R 递归处理, 将目录及其子目录和文件一并处理 -f 强制覆盖重名的文件或目录
命令格式
命令格式:cp –rf 源文件或目录 目标文件或目录
实例
cp -r /root/test /root/test0 (cp命令必须带上r参数) 将root 目录下的 test 文件拷贝到 root 目录下的 test0 下
mv 移动或更名现有文件或目录
关键参数
-f 若目标文件与现有的文件重名则直接覆盖. -i 提示用户是否覆盖已经存在的文件或目录.
命令格式
命令格式:mv [-if] 源文件或目录 目录文件或目录
实例
mv /root/source /root/test 将root 目录下的 source 文件拷贝到 root/test 目录下
rm 删除命令
关键参数
-r 一次性删除目录及目录下的子目录和文件 -f 强调删除
命令格式
命令格式:rm [-rf] 目录或文件名
cat 参看文件
相似命令
cat more vim grep等
cat 特殊用法
cat -v 命令可以查看影藏的编码信息
当windows中的代码copy到linux使用时,可能有影藏的编码问题(^m ^f 等信息)可以用 cat -v 1.sh
行合并
[root@localhost test]# cat 123 test 123 [root@localhost test]# cat 234 road 234 [root@localhost test]# cat 123 234 --- 行合并 test 123 road 234
列合并
[root@localhost test]# cat 123 test 123 [root@localhost test]# cat 234 road 234 [root@localhost test]# paste 123 234 --- 列合并 test road 123 234
覆盖
[root@localhost test]# cat 123 test 123 [root@localhost test]# cat 234 road 234 [root@localhost test]# cat 123 > 234 --- 覆盖(一个大于号) [root@localhost test]# cat 234 test 123
追加
[root@localhost test]# cat 123 test 123 [root@localhost test]# cat 234 test 123567 [root@localhost test]# cat 123 >> 234 --- 追加(两个大于号) [root@localhost test]# cat 234 test 123567 test 123
grep 与管道的连用
命令格式与关键参数
命令格式:grep [-ivnE] 字符串文件 -n : 显示行号 -A: 显示后几行
[root@localhost ~]# grep spotlight -A 3 /etc/passwd -- 显示spotlight 后面3行,若没有3行显示实际的行数 spotlight:x:0:0::/home/spotlight:/bin/bash ckl:x:501:502::/home/ckl:/bin/bash road:x:502:503::/home/road:/bin/bash
-B:显示前几行
显示spotlight 前面2行,若没有2行显示实际的行数 [root@localhost ~]# grep spotlight -B 2 /etc/passwd tcpdump:x:72:72::/:/sbin/nologin lwan:x:500:500:lwan:/home/lwan:/bin/bash spotlight:x:0:0::/home/spotlight:/bin/bash
-v: 排除
[root@localhost ~]# grep spotlight -A 3 /etc/passwd |grep -v ckl -- 显示spotlight 后面3行除去ckl的一行 spotlight:x:0:0::/home/spotlight:/bin/bash road:x:502:503::/home/road:/bin/bash
-i:不区分大小写
[root@localhost test]# rpm -qa | grep ssh -i openssh-5.3p1-84.1.el6.i686 ksshaskpass-0.5.1-4.1.el6.i686 openssh-askpass-5.3p1-84.1.el6.i686 openssh-server-5.3p1-84.1.el6.i686 openssh-clients-5.3p1-84.1.el6.i686 libssh2-1.4.2-1.el6.i686
-R: 递归查找目录
[root@localhost test]# grep "test" -R /root/test --- 递归查找/root/test 目录下包含”test 这个词的行 /root/test/123:test /root/test/234:test /root/test/234:test
-E: 扩展查找
[root@localhost ~]# grep -E "root|ckl" /etc/passwd -n -- 显示有 root 和ckl ,并显示行号 1:root:x:0:0:root:/root:/bin/bash 11:operator:x:11:0:operator:/root:/sbin/nologin 40:ckl:x:501:502::/home/ckl:/bin/bash
管道的使用
[root@localhost test]# grep spotlight -A 3 /etc/passwd |grep -v ckl -- 找出spotlight 的后3行中去掉ckl的行 ,管道之前的输出作为管道的输入,管道前面的内容需要正确的输出信息 spotlight:x:0:0::/home/spotlight:/bin/bash road:x:502:503::/home/road:/bin/bash
分支主题 13find 与通配符的使用
通配符含义
* 表示 匹配顺序的一个或多个字符 co* 以co开头的文件 ? 表示 任意单个字符 ?.h 所有文件开头是一个字符。以.hj结尾 [] 匹配一组封闭字符或范围 log[1-3].txt 名为log1.txt 到 log3.txt 的文件
find命令格式与参数
命令格式:find [路径] [-type fdl] [-name 字符串] [-atime [+/-] number of days] 格式说明:路径:确定搜索的路径 -type: 确定搜索的范围, f( 文件) d( 目录) l( 链接) -name: 文件或目录名表达式 -atime: 多少天内修改过
[root@localhost test]# find ./ -name "log*" --找到log开头的文件和目录 [root@localhost test]# find ./ -type f -name "log*" -- 找到log开头的文件 [root@localhost test]# find ./ -type d -name "log*" --找到log开头的目录 [root@localhost test]# find ./ -type f -name "log[1-2]" --找到log1/2的文件 [root@localhost test]# find ./ -type f -name "log?" -- 找到log 后面加一个字符的文件
管道 +xargs
find ./ -type f -name "log?" | xargs -I FILE cp FILE test3/
xargs -I FILE 表示管道前面的内容,参数化赋值给FILE cp 管道前面的内容(FILE,变量 可随意定义) 复制到 /test3
1、find ./ -type f -name "log*" ---找文件
2、 | xargs -I FILE1 --- 管道参数化(固定)
3、cp FILE1 FILE1.bak 操作参数化的文件