一、cat

  1. cat 1.txt > 3.txt 读取文件内容,且写入到另一个文件中,覆盖写入文件内容
  2. cat 1.txt >> 3.txt 追加写入内容
  3. xargs -n 2 < shuzi.txt 把文本内容拆分成多行
  4. [root@ylin opt]# cat >> gushi.txt <<EOF >>重定向输入,EOF作为开始结束标识符
  5. > love
  6. > love you
  7. > EOF
  1. 用法:cat [选项] [文件]...
  2. 将[文件]或标准输入组合输出到标准输出。
  3. 清空文件内容,慎用
  4. > 文件名
  5. -A, --show-all 等价于 -vET
  6. -b, --number-nonblank 对非空输出行编号
  7. -e 等价于 -vE
  8. -E, --show-ends 在每行结束处显示 $
  9. -n, --number 对输出的所有行编号
  10. -s, --squeeze-blank 不输出多行空行
  11. -t -vT 等价
  12. -T, --show-tabs 将跳格字符显示为 ^I
  13. -u (被忽略)
  14. -v, --show-nonprinting 使用 ^ M- 引用,除了 LFD TAB 之外
  15. --help 显示此帮助信息并退出
  16. --version 输出版本信息并退出
  17. 如果[文件]缺省,或者[文件]为 - ,则读取标准输入。

二、chmod

  1. RWX 4+2+1
  2. chmod 766 chaoge.txt
  3. chmod u=rw,g=w,o=x chaoge.txt
  4. chmod a=r chaoge.txt # 一次性修改文件权限

三、chown

  1. chown root chaoge.txt #修改文件的属主信息
  2. chown :root chaoge.txt #修改文件的属组信息
  3. chown root:root chaoge.txt #同时修改文件的属主、组信息
  4. -R #递归修改文件夹和文件夹中所有文件的属主、组信息
  1. /etc/passwd 用户信息
  2. /etc/shadow 用户密码信息
  3. /etc/group 用户组信息
  4. /etc/gshadow 用户组密码信息
  5. /etc/skel

四、umask

linux默认设置创建文件的最大权限是666,文件夹的权限最大为777
实际文件夹权限:777-umask=755

  1. [root@localhost ~]# umask #roo用户,存放在/etc/profile的61行
  2. 0022
  3. [ylin@localhost ~]$ umask #普通用户
  4. 0002

五、chattr

  1. [root@localhost Documents]# lsattr chaoge.txt #查看底层权限,为空
  2. ---------------- chaoge.txt
  3. chattr +a chaoge.txt #只能添加数据不能删除,不支持vim写入但是能echo -a删除权限
  4. i #不能被删除修改写入

六、useradd

  1. -c <备注>:加上备注文字。备注文字会保存在passwd的备注栏位中;
  2. -d<登入目录>:指定用户登入时的启始目录;
  3. -D:变更预设值;
  4. -e<有效期限>:指定帐号的有效期限;
  5. -f<缓冲天数>:指定在密码过期后多少天即关闭该帐号;
  6. -g<群组>:指定用户所属的群组;
  7. -G<群组>:指定用户所属的附加群组;
  8. -m:自动建立用户的登入目录;
  9. -M:不要自动建立用户的登入目录;
  10. -n:取消建立以用户名称为名的群组;
  11. -r:建立系统帐号;
  12. -s<shell>:指定用户登入后所使用的shell
  13. -u<uid>:指定用户id

七、通配符

符号 作用
* 匹配任意
匹配有且只有一个字符
【!abc】 不匹配a,b,c
【a-z】 匹配a到z的任意字符
  1. [root@localhost ~]# find / -maxdepth 3 -type f -name "l?[a-z]"
  2. /usr/bin/ldd
  3. /usr/bin/lua
  4. /usr/sbin/lvm
  5. /usr/sbin/lid

八、特殊引号

名称 解释
单引号’X’ 所见即所得,强引用,单引号中内容会原样输出
双引号”X” 弱引用,能够识别各种特殊符号、变量、转义符等,解析后在输出结果
反引号X 引用命令结果,等同$命令

九、重定向特殊符号

  1. echo "kjj" > chaoge.txt #重定向覆盖
  2. echo "kjj" >> chaoge.txt #重定向输出追加
  3. wc -l < chaoge.txt #将chaoge.txt文件内容输出重定向给wc匹配
  4. lll qq 2>cuowu.txt #错误重定向,2>为标准格式

十、VIM

基础命令 - 图1
image.png

  1. w(e)  移动光标到下一个单词
  2. b    移动到光标上一个单词
  3. 数字0  移动到本行开头
  4. $    移动光标到本行结尾
  5. H    移动光标到屏幕首行
  6. M    移动到光标到屏幕的中间一行
  7. L    移动光标到屏幕的尾行
  8. gg    移动光标到文档的首行
  9. G    移动光标到文档尾行
  10. ctrl + f  下一页
  11. ctrl + b  上一页
  12. `.  移动光标到上一次的修改行
  1. 删除光标所在位置到行尾的内容并进入编辑模式 C(大写字母)
  2. 在命令模式下按下字母i,即可进入输入模式,可以编写代码啦。。。
  3. 在当前行下面插入一行并进入编辑模式 o(小写字母)
  4. 在当前行上面插入一行并进入编辑模式 O(大写字母)
  5. 快速到达行尾并进入编辑模式 A
  6. 快速保存并退出 ZZ
  1. yy 拷贝光标所在行
  2. dd 删除光标所在行
  3. D 删除当前光标到行尾的内容
  4. dG 删除当前行到文档尾部的内容
  5. p 粘贴yy所复制的内容
  6. x   向后删除字符
  7. X 先前删除字符
  8. u 撤销上一步的操作
  9. . 重复前一个执行过的动作
  1. 批量删除:
  2. 进入批量编辑模式(可视块)
  3. ctrl+v
  4. 选择 上下左右
  5. 删除 d
  6. 批量增加注释:
  7. 1.进入批量编辑模式(可视块)ctrl+v
  8. 2.选择区域
  9. 3.输入大写的 I 进入编辑模式 编辑
  10. 4.按下两次ESC
  11. 批量去掉注释:
  12. 1. 进入命令行模式,按ctrl + v进入 visual block模式,按字母l横向选中列的个数,例如 // 需要选中2
  13. 2. 按字母j,或者k选中注释符号
  14. 3. d键就可全部取消注释

十一、特殊符号

  1. * 匹配任意个字符
  2. 匹配一个字符
  3. | 管道符
  4. $ 变量符

十二、tail

  1. -c 数字 指定显示的字节数
  2. -n 行数 显示指定的行数
  3. -f 实时刷新文件变化
  4. -F 等于 -f --retry 不断打开文件,与-f合用 tail -f查看日志
  5. --pid=进程号 进程结束后自动退出tail命令
  6. -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    .