一、cat
cat 1.txt > 3.txt 读取文件内容,且写入到另一个文件中,覆盖写入文件内容cat 1.txt >> 3.txt 追加写入内容xargs -n 2 < shuzi.txt 把文本内容拆分成多行[root@ylin opt]# cat >> gushi.txt <<EOF >>重定向输入,EOF作为开始结束标识符> love> love you> EOF
用法:cat [选项] [文件]...将[文件]或标准输入组合输出到标准输出。清空文件内容,慎用> 文件名-A, --show-all 等价于 -vET-b, --number-nonblank 对非空输出行编号-e 等价于 -vE-E, --show-ends 在每行结束处显示 $-n, --number 对输出的所有行编号-s, --squeeze-blank 不输出多行空行-t 与 -vT 等价-T, --show-tabs 将跳格字符显示为 ^I-u (被忽略)-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外--help 显示此帮助信息并退出--version 输出版本信息并退出如果[文件]缺省,或者[文件]为 - ,则读取标准输入。
二、chmod
RWX 4+2+1chmod 766 chaoge.txtchmod u=rw,g=w,o=x chaoge.txtchmod a=r chaoge.txt # 一次性修改文件权限
三、chown
chown root chaoge.txt #修改文件的属主信息chown :root chaoge.txt #修改文件的属组信息chown root:root chaoge.txt #同时修改文件的属主、组信息-R #递归修改文件夹和文件夹中所有文件的属主、组信息
/etc/passwd 用户信息/etc/shadow 用户密码信息/etc/group 用户组信息/etc/gshadow 用户组密码信息/etc/skel
四、umask
linux默认设置创建文件的最大权限是666,文件夹的权限最大为777
实际文件夹权限:777-umask=755
[root@localhost ~]# umask #roo用户,存放在/etc/profile的61行0022[ylin@localhost ~]$ umask #普通用户0002
五、chattr
[root@localhost Documents]# lsattr chaoge.txt #查看底层权限,为空---------------- chaoge.txtchattr +a chaoge.txt #只能添加数据不能删除,不支持vim写入但是能echo -a删除权限i #不能被删除修改写入
六、useradd
-c <备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;-d<登入目录>:指定用户登入时的启始目录;-D:变更预设值;-e<有效期限>:指定帐号的有效期限;-f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;-g<群组>:指定用户所属的群组;-G<群组>:指定用户所属的附加群组;-m:自动建立用户的登入目录;-M:不要自动建立用户的登入目录;-n:取消建立以用户名称为名的群组;-r:建立系统帐号;-s<shell>:指定用户登入后所使用的shell;-u<uid>:指定用户id。
七、通配符
| 符号 | 作用 |
|---|---|
| * | 匹配任意 |
| ? | 匹配有且只有一个字符 |
| 【!abc】 | 不匹配a,b,c |
| 【a-z】 | 匹配a到z的任意字符 |
[root@localhost ~]# find / -maxdepth 3 -type f -name "l?[a-z]"/usr/bin/ldd/usr/bin/lua/usr/sbin/lvm/usr/sbin/lid
八、特殊引号
| 名称 | 解释 |
|---|---|
| 单引号’X’ | 所见即所得,强引用,单引号中内容会原样输出 |
| 双引号”X” | 弱引用,能够识别各种特殊符号、变量、转义符等,解析后在输出结果 |
反引号X |
引用命令结果,等同$命令 |
九、重定向特殊符号
echo "kjj" > chaoge.txt #重定向覆盖echo "kjj" >> chaoge.txt #重定向输出追加wc -l < chaoge.txt #将chaoge.txt文件内容输出重定向给wc匹配lll qq 2>cuowu.txt #错误重定向,2>为标准格式
十、VIM


w(e) 移动光标到下一个单词b 移动到光标上一个单词数字0 移动到本行开头$ 移动光标到本行结尾H 移动光标到屏幕首行M 移动到光标到屏幕的中间一行L 移动光标到屏幕的尾行gg 移动光标到文档的首行G 移动光标到文档尾行ctrl + f 下一页ctrl + b 上一页`. 移动光标到上一次的修改行
删除光标所在位置到行尾的内容并进入编辑模式 C(大写字母)在命令模式下按下字母i,即可进入输入模式,可以编写代码啦。。。在当前行下面插入一行并进入编辑模式 o(小写字母)在当前行上面插入一行并进入编辑模式 O(大写字母)快速到达行尾并进入编辑模式 A快速保存并退出 ZZ
yy 拷贝光标所在行dd 删除光标所在行D 删除当前光标到行尾的内容dG 删除当前行到文档尾部的内容p 粘贴yy所复制的内容x 向后删除字符X 先前删除字符u 撤销上一步的操作. 重复前一个执行过的动作
批量删除:进入批量编辑模式(可视块)ctrl+v选择 上下左右删除 d批量增加注释:1.进入批量编辑模式(可视块)ctrl+v2.选择区域3.输入大写的 I 进入编辑模式 编辑4.按下两次ESC键批量去掉注释:1. 进入命令行模式,按ctrl + v进入 visual block模式,按字母l横向选中列的个数,例如 // 需要选中2列2. 按字母j,或者k选中注释符号3. 按d键就可全部取消注释
十一、特殊符号
* 匹配任意个字符? 匹配一个字符| 管道符$ 变量符
十二、tail
-c 数字 指定显示的字节数-n 行数 显示指定的行数-f 实时刷新文件变化-F 等于 -f --retry 不断打开文件,与-f合用 tail -f查看日志--pid=进程号 进程结束后自动退出tail命令-s 秒数 检测文件变化的间隔秒数
十三、cut
语法 tail -b或者-c 参数
cut 参数 文件
-b 以字节为单位分割
-n 取消分割多字节字符,与-b一起用
-c 以字符为单位
-d 自定义分隔符,默认以tab为分隔符
-f 与-d一起使用,指定显示哪个区域
N 第 N 个 字节, 字符 或 字段, 从 1 计数 起
N- 从 第 N 个 字节, 字符 或 字段 直至 行尾
N-M 从 第 N 到 第 M (并包括 第M) 个 字节, 字符 或 字段
-M 从 第 1 到 第 M (并包括 第M) 个 字节, 字符 或 字段
十四、sort
用法:sort [选项]... [文件]...
或:sort [选项]... --files0-from=F
串联排序所有指定文件并将结果写到标准输出。
-b, --ignore-leading-blanks 忽略前导的空白区域
-n, --numeric-sort 根据字符串数值比较
-r, --reverse 逆序输出排序结果
-u, --unique 配合-c,严格校验排序;不配合-c,则只输出一次排序结果
-t, --field-separator=分隔符 使用指定的分隔符代替非空格到空格的转换
-k, --key=位置1[,位置2] 在位置1 开始一个key,在位置2 终止(默认为行尾)
#sort 是默认以第一个数据来排序,而且默认是以字符串形式来排序,所以由字母 a 开始升序排序
[root@luffycity tmp]# cat /etc/passwd | sort
[root@luffycity tmp]# sort -n sort.txt #按照数字从大到小排序
[root@luffycity tmp]# sort -nr sort.txt #降序排序
[root@luffycity tmp]# sort -u sort.txt #去重排序
[root@luffycity tmp]# sort -t " " -k 2 sort.txt #指定分隔符,指定序列
10.0.0.15 a
10.0.0.12 e
10.0.0.22 e
10.0.0.54 f
10.0.0.34 q
10.0.0.63 q
10.0.0.3 r
10.0.0.34 r
10.0.0.4 v
10.0.0.44 w
10.0.0.5 x
[root@luffycity tmp]# cat /etc/passwd| sort -t ":" -k 3 #以分号分割,对第三列排序,以第一位数字排序
#以分号分割,对第一个区域的第2到3个字符排序
[root@luffycity tmp]# cat /etc/passwd | sort -t ":" -k 1.2,1.3
十五、wc
-c, --bytes打印字节数
-m, --chars 打印字符数
-l, --lines 打印行数
-L, --max-line-length 打印最长行的长度
-w, --words 打印单词数
十六、stat
[root@www ~]#stat abc.ph
文件:"abc.ph"
大小:0 块:0 IO 块:4096 普通空文件
设备:801h/2049d Inode:1200314 硬链接:1
权限:(0644/-rw-r--r--) Uid:( 0/ root) Gid:( 0/ root)
最近访问:2013-05-14 13:24:30.830729223 +0800
最近更改:2013-05-14 13:24:30.830729223 +0800
最近改动:2013-05-14 13:24:30.830729223 +0800
创建时间:-
[root@luffycity tmp]# stat test.txt
File: 'test.txt'
Size: 16 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 17540200 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:user_tmp_t:s0
Access: 2019-10-18 14:58:59.465647961 +0800 #access、最近访问,文件每次被cat之后,时间变化,由于操作系统特性,做了优化,频繁访问,时间不变
Modify: 2019-10-18 14:58:57.799636638 +0800 #modify,最近更改,更改文件内容,vim等
Change: 2019-10-18 14:58:57.799636638 +0800 #change,最近改动,文件元数据改变,如文件名
Birth: -
#显示文件权限
[root@pylinux test_find]# stat -c %a alex.txt
644
十七、find
命令格式:
find 查到路径 参数
按照名字查找:
[root@luffycity tmp]# find . -name "alex.txt" -delete #找出名为alex.txt且删除
[root@luffycity tmp]# find . -name "*.pid" #找出所有的pid
[root@luffycity tmp]# find . -name "[0-9]*.pid" #找到所以以数字开头的pid文件
十八、tar
tar -zcvf 打包之后的文件名(或者目录文件名) 打包文件
-c 打包 -x 解包 -z 压缩 -v 显示过程 -f 指定文件夹
[alex@luffycity tmp]$ tar -cvf alltmp.tar ./* #打包不压缩
[alex@luffycity tmp]$ tar -zcvf alltmp.tar ./* #打包压缩
#根据tar包文件后缀,决定是否添加z参数,调用gzip
[alex@luffycity tmp]$ tar -ztvf alltmp2.tar.gz #列出打包文件中的内容
tar -zxvf alltmp2.tar.gz ./ #正常解压文件
#先看下tar包中有什么内容,再指定文件解压
[root@luffycity tmp]# tar -ztvf alltmp2.tar.gz #查看压缩包中的内容
[root@luffycity tmp]# tar -zxvf alltmp2.tar.gz ./alltmp.tar #只解压部分文件
[root@luffycity tmp]# tar -xf alltmp.tar -C /opt/data/ #指定目录解压
十九、sudo
1.直接输入visudo命令,相当于打开vim /etc/sudoers
找到如下行
89 ## The COMMANDS section may have other options added to it.
90 ##
91 ## Allow root to run any commands anywhere
92 root ALL=(ALL) ALL
2.添加你想让执行sudo命令的用户
89 ## The COMMANDS section may have other options added to it.
90 ##
91 ## Allow root to run any commands anywhere
92 root ALL=(ALL) ALL
93 chaoge ALL=(ALL) ALL
3.保存退出,使用vim/vi的模式,此时已经可以用chaoge用户,使用sudo命令了
sudo ls /root/
二十、chown
语法:
chown alex test.txt #文件属于alex
chown :组 test.txt #修改文件属组
chown 用户:组 #修改
参数
-R, --recursive 递归处理所有的文件及子目录
-v, --verbose 为处理的所有文件显示诊断信息
二十一、ss
ss -ln #查看本地监听的端口
[root@rsync ~]# ss -lnp |grep rsync #查看正在运行的进程和进程对应的端口
tcp LISTEN 0 5 *:873 *:* users:(("rsync",pid=10746,fd=3))
tcp LISTEN 0 5 :::873 :::* users:(("rsync",pid=10746,fd=5))
二十二、other
[root@localhost opt]# ln -s 1.txt 2.txt # 创建软连接
[root@localhost opt]# ll
total 0
-rw-r--r--. 1 root root 0 Dec 1 13:55 1.txt
lrwxrwxrwx. 1 root root 5 Dec 1 13:55 2.txt -> 1.txt
touch "`date +%F`".txt #创建以时间为文件名的文件
[root@localhost ~]# touch /etc/sysconfig/network-scripts/ifcfg-ens33{,.bak}
#快捷复制文件内容
[root@ylin tmp]# head -n 30 chaoge.txt | cat -n #查看前30行并让他显示行号
[root@ylin /]# hostnamectl set-hostname ylinux #修改主机名,需要重新登录一下
[root@ylinux log]# find /var/log/ -type f | wc -l #从前往后,|传递作用
75
export LC_ALL=en_US.UTF-8
export LC_ALL=zh_CN.UTF-8
[root@ylin ~]# yum install bash-completion #安装命令补全插件
.bash_history #在home目录下
[root@whoami ~]# uname -r #查看内核版本
3.10.0-693.2.2.el7.x86_64
[root@whoami ~]# cat /etc/redhat-release #查看系统版本
CentOS Linux release 7.4.1708 (Core)
[root@rsync ~]# ll -d /backup/ #查看一把
drwxr-xr-x 2 rsync rsync 4096 2月 23 17:19 /backup/
[root@rsync ~]# rpm -qa wget #查看通过yum安装的软件包,是否安装
wget-1.14-18.el7_6.1.x86_64
二十三、du
[root@whoami opt]# du -sh . #查看当前文件夹中文件大小
4.0K .
