Linux基础指令
1、基础
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 ls //查询 man 指令 //查询指令用法 mkdir 文件/夹名 //创建文件/夹 rm -rf 文件/夹名 //删除文件/夹 mv move [移动 改名] Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY. 把目标文件[SRC]移动到目标位置[DEST]改名,或者把源文件移动到目标目录 1.移动 #mv a.txt /tmp //把文件a.txt移动到/tmp 目录下 2.改名 #mv a.txt aa.txt //把文件a.txt移动到当前目录下并改名为aa.txt #mv /tmp/a.txt aaa.txt //把/tmp目录下的a.txt文件移动到当前目录下并改名为aaa.txt 在linux系统中 如果文件前面不加路径 默认为当前路径下的文件 3.对多个文件移动 #mv file1.txt file2.txt file3.txt /tmp //把当前目录下的file{1..5}.txt 文件移动到/tmp目录下 mv命令默认最后一个参数为目标位置 其余的为源文件 4.对多个文件和目录文件进行移动 #mv /tmp/file1.txt /tmp/file2.txt /tmp/dir1 /root #把/tmp目录下的file1.txt file2.txt dir1 移动到/root目录下 #移动目录时 如果目录里面有文件 目录下的文件也会一起移动 rm remove 删除 Remove (unlink) the FILE(s). 删除(解除)文件 常用的rm命令参数: -f force ignore nonexistent files and arguments, never prompt 忽略不存在的文件和参数,不提示 rm -f filename 删除文件且不询问 -r or -R recursive remove directories and their contents recursively 递归地删除目录及其内容 rm -rf dirname 删除目录且不询问 常用命令 rm -rf ./* 删除当前目录下的所有文件 注:删除时谨慎使用* 不要把根目录全删了 cp copy 复制 Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY. 把源文件[src]复制到目标位置dest,或者将多个源文件复制到目标位置 常用的cp命令参数: -f force 与rm命令参数中的-f一致 强制删除 不询问 -r recursive 递归 复制单个文件 cp a.txt /tmp // 将当前目录下的a.txt文件复制到目录 /tmp 下 复制多个文件 cp file1.txt file2.txt file3.txt /tmp #将多个文件复制到/tmp目录下 cp与mv命令相似 默认把最后一个参数作为目标位置 其余为源文件 复制目录 cp -r dir1 /tmp //复制目录dir1 到 /tmp下 cp -rf dir1 /tmp cp -rf dir1/* /tmp // 复制目录dir1下的所有文件和目录到/tmp下
文本编辑
1 2 3 4 5 vi vim 文件名 //创建或打开文件并输入内容 ---输入:或/即可进入命令模式 //一般只使用: i //按下i键进入编辑模式 =全称INSERT wq //保存并退出
2、用户与用户组
用户
1 2 3 useradd 用户名 //创建用户 usermod 参数 ?/组名 用户名 //修改用户 userdel 用户名 //删除用户
用户组
1 2 3 groupadd 组名 //创建用户组 groupmod //修改用户组 groupdel 组名 //删除用户组
user+group大部分通用参数
1 2 3 4 5 6 7 8 9 -c --修改备注 通用 -d --修改主目录 通用 -e --修改日期 通用 -g --修改gid 通用 -u --修改uid 通用 -l --修改用户名 通用 -L --临时锁定用户 user -U --解锁用户 user -s --修改shell 通用
gpasswd
1 2 3 4 5 6 7 8 9 10 11 gpasswd //管理用户组 (下面是参数) -a --add USER 将 USER 添加到 GROUP -d --delete USER 从 GROUP 中删除 USER -h --help 显示此帮助消息并退出 -Q --root CHROOT_DIR chroot 进入的目录 -r --delete-password 删除 GROUP 的密码 -R --restrict 限制对 GROUP 成员的访问 -M --members 用户,... 设置GROUP成员列表 -A --administrators 管理员,... 设置 GROUP 的管理员列表
3、权限
1 2 ll /root //查询root目录下文件的权限 ll -d /root //查询root目录的权限
4、挂载
1 2 3 4 mount //挂载 umount //卸载 yum clean all //清除缓存 yum repolist //查看缓存
开机自动挂载
1 2 3 4 5 6 7 8 vi /etc/fstab 进去后在下面补充 mount /dev/cdrom /opt //挂载命令-可有可无 /dev/cdrom /opt iso9660 defaults 0 0 //空格至少一个-必须要有 /dev/cdrom挂载文件地址 /opt挂载目录 iso9660挂载源文件类型 不需要了可在那一行前加上#(#为注释的意思) 挂载文件地址可用挂载文件的UUID代替 lsnlk -f list block 查看文件UUID
5、yum源配置
yum源地址在/etc/yum.repos.d/ 当中的.repo文件内
先进入文件夹(cd /etc/yum.repos.d)
1 2 3 4 5 [文件名] name=文件名 baseurl=file:///opt //本地协议为file:// 网络协议为http:// gpgcheck=0 enabled=1
6、安装软件和启动
1 2 3 4 5 6 7 8 yum history //查看安装和卸载的历史 yum history info 排序号 //查看具体信息 yum install 应用名 //安装应用 yum list |grep 应用名 //查看应用是否安装 yum remove/erase 应用名 //卸载应用-有残留 yum history undo 排序号 -y //卸载应用-无残留 搭配历史使用 systemctl start 应用名 //启动应用 systemctl status 应用名 //查看应用是否运行---ps -ef |grep 应用名 也是同理
7、查找与替换
sed 尽量用`
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 选项与参数: -n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。 -e :直接在命令列模式上进行 sed 的动作编辑; -f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作; -r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法) -i :直接修改读取的文件内容,而不是输出到终端。 function: a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~ c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行! d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚; i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行); p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~ s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦! (该解释来源csdn用户bobuddy)
正则表达式
内容太多,转跳到里面看吧
正则表达式
8、本地修改IP地址
网卡配置文件地址vi /etc/sysconfig/network-scripts/ifcfg-ens33
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 配置文件如下 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none //static也可以 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=不动 NAME=ens33 UUID=不可动 DEVICE=ens33 ONBO0T=yes IPADDR=修改的IP地址 NETMASK=255.255.255.0 GATEWAY=网关 DNS1=114.114.114.114 ---------------------- 重启网络服务systemctl restart network //restart-重启 start-开启 stop-停止
9、Linux权限管理-ACL权限
本章来源
1 2 3 作者:honehou 链接:https:// www.jianshu.com/p/ ff6c3b0ac0ad 来源:简书
设定和查看ACL权限
1 2 3 4 5 为用户设定ACL权限 [root@localhost ~]# setfacl -m u:用户名:权限(rwx) 文件名 ====================================================== 为用户组设定ACL权限 [root@localhost ~]# setfacl -m g:组名:权限(rwx) 文件名
查看ACL权限
1 2 查看文件或目录的ACL权限 [root@localhost ~]# getfacl 文件名
补充参数
1 2 3 4 5 6 -m:设定ACL权限; -x:删除指定的ACL权限; -b:删除所有的ACL权限; -d:设定默认ACL权限; -k:删除默认ACL权限; -R:递归设定ACL权限;
最大权限与删除
最大有效权限mask
mask是用来指定最大有效权限的(使用命令getfacl 文件名显示的结果中倒数第二排会出现mask这个词)。如果给用户赋予了acl权限,是需要和mask的权限“相与”才能得到用户的真正权限。相与是计算机中的术语,皆真方为真,有假便为假。例如mask权限为rwx,某用户的acl权限为r-x,则实际有效权限为r-x。
※最大权限也会影响到组权限(例:某文件所有者为tony,chmod赋予的普通权限为7,而acl赋予tony的权限为5,则acl权限会高于chmod权限)
修改最大有效权限mask
1 2 修改mask的命令 setfacl -m m:权限 文件
删除acl权限的命令
1 2 3 4 5 6 7 8 删除指定用户的acl权限 setfacl -x u:用户名 文件 ============================= 删除指定用户组的acl权限 setfacl -x g:组名 文件 ============================= 删除文件所有的acl权限 setfacl -b 文件
递归ACL权限
父目录在设定ACL权限时,所有的已建立好的子文件和子目录也会拥有相同的ACL权限。
※递归权限仅能赋予目录,赋予文件会报错
※新建立的文件没有相应的权限
1 2 设定递归权限 setfacl -m u:用户名:权限 -R 目录名
默认ACL权限
如果父目录设定默认ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限。
※默认权限也只能赋予目录,但赋予文件不会报错
※旧的子文件不会赋予响应的权限
1 2 设定默认权限 setfacl -m d(default的缩写):用户名:权限 目录名
权限溢出
由于rwx对文件和目录的作用不同,当给目录赋予权限时,递归所得到子文件权限可能超出预想,这便是权限溢出。
※尽量少用acl权限
10、sed语法选项
太多了懒得复制
详细参考
sed语法选项