linux 操作系统笔记基础命令(1)

  • 从远程复制文件到本地目录:

[root@linuxcool ~]# scp root@192.168.10.10:/opt/soft/rhel-server-7.3-x86_64.tar.gz /opt/soft/

  • 从远程复制目录到本地:

[root@linuxcool ~]# scp -r root@10.10.10.10:/opt/soft/mysql /opt/soft/

  • 上传本地文件到远程机器指定目录:

[root@linuxcool ~]# scp /opt/soft/rhel-server-7.3-x86_64.tar.gz root@192.168.10.10:/opt/soft/scptest

  • 上传本地目录到远程机器指定目录:

[root@linuxcool ~]# scp -r /opt/soft/mysql root@192.168.10.10:/opt/soft/scptest

  • 保留文件的最后修改时间,最后访问时间和权限模式:

[root@linuxcool ~]# scp -p /root/install.log root@192.168.10.10:/tmp

ssh 命令


  • ssh命令是openssh套件中的客户端连接工具,可以给予ssh加密协议实现安全的远程登录服务器,实现对服务器的远程管理。

  • 语法格式: ssh [参数] [远程主机]

  • 常用参数:

-1 强制使用ssh协议版本1

-2 强制使用ssh协议版本2

-4 强制使用IPv4地址

-6 强制使用IPv6地址

-A 开启认证代理连接转发功能

-a 关闭认证代理连接转发功能

-b<IP地址> 使用本机指定的地址作为对位连接的源IP地址

-C 请求压缩所有数据

-F<配置文件> 指定ssh指令的配置文件,默认的配置文件为“/etc/ssh/ssh_config”

-f 后台执行ssh指令

-g 允许远程主机连接本机的转发端口

-i<身份文件> 指定身份文件(即私钥文件)

-l<登录名> 指定连接远程服务器的登录用户名

-N 不执行远程指令

-o<选项> 指定配置选项

-p<端口> 指定远程服务器上的端口

-q 静默模式,所有的警告和诊断信息被禁止输出

-X 开启X11转发功能

-x 关闭X11转发功能

-y 开启信任X11转发功能

  • 登录远程服务器:

[root@linuxcool ~]# ssh 202.102.240.88

  • 用test用户连接远程服务器:

[root@linuxcool ~]# ssh -l test 202.102.220.88

  • 查看分区列表:

[root@linuxcool ~]# ssh 202.102.220.88 /sbin/fdisk -l

  • 强制使用ssh协议版本1:

[root@linuxcool ~]# ssh -1

  • 开启认证代理连接转发功能:

[root@linuxcool ~]# ssh -A

linux 用户权限

====================================================================

useradd 命令详解


  • useradd命令用来创建新的用户或更改用户的信息。

  • useradd可用来建立用户帐号。

  • 帐号建好之后,再用passwd设定帐号的密码。

  • 使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。

语法格式:useradd [参数] [用户名]

常用参数:

-D 改变新建用户的预设值

-c 添加备注文字

-d 新用户每次登陆时所使用的家目录

-e 用户终止日期,日期的格式为YYYY-MM-DD

-f 用户过期几日后永久停权。当值为0时用户立即被停权,而值为-1时则关闭此功能,预设值为-1

-g 指定用户对应的用户组

-G 定义此用户为多个不同组的成员

-m 用户目录不存在时则自动创建

-M 不建立用户家目录,优先于/etc/login.defs文件设定

-n 取消建立以用户名称为名的群组

-r 建立系统帐号

-u 指定用户id

  • 添加新用户linuxcool:

[root@linuxcool ~]# useradd linuxcool

  • 不创建家目录,并且禁止登陆:

[root@linuxcool ~]# useradd -M -s /sbin/nologin linuxcool

  • 添加新用户linuxcool,指定UID为888,指定归属用户组为root,cool成员,其shell类型为/bin/sh:

[root@linuxcool ~]# useradd -u 888 -s /bin/sh -G root,cool linuxcool

  • 添加新用户linuxcool,设置家目录为/tmp/linuxcool,用户过期时间为2019/05/01.过期后两天停权:

[root@linuxcool ~]# useradd -e “2019/05/01” -f 2 -d /tmp/linuxcool linuxcool

usermod 命令详解


  • usermod命令用于修改用户账号 。usermod可用来修改用户账号的各项设定,修改系统账号文件来反映通过命令行指定的变化。

  • 语法格式:usermod [参数]

  • 常用参数:

-c<备注> 修改用户账号的备注文字

-d<登入目录> 修改用户登入时的目录

-e<有效期限> 修改账号的有效期限

-f<缓冲天数> 修改在密码过期后多少天即关闭该账号

-g<群组> 修改用户所属的群组

-G<群组> 修改用户所属的附加群组

-l<账号名称> 修改用户账号名称

-L 锁定用户密码,使密码无效

-s 修改用户登入后所使用的shell

-u 修改用户ID

-U 解除密码锁定

  • 更改登陆目录:

[root@linuxcool ~]# usermod -d /home/hnlinux root

  • 改变用户的uid:

[root@linuxcool ~]# usermod -u 777 root

  • 修改用户名为linux:

[root@linuxcool ~]# usermod -l Linux linuxcool

  • 锁定linuxcool的密码:

[root@linuxcool ~]# usermod -L linuxcool

  • 解锁linuxcool的密码:

[root@linuxcool ~]# usermod -U linuxcool

userdel 命令详解


  • userdel命令用于删除指定的用户及与该用户相关的文件,英文全称即“user delete”。

  • 其实userdel命令实际上是修改了系统的用户账号文件 /etc/passwd、/etc/shadow以及/etc/group文件。

  • 这与Linux系统”一切操作皆文件”的思想正好吻合。

值得注意的是,但是如果有该要删除用户相关的进程正在运行,userdel命令通常不会删除一个用户账号。如果确实必须要删除,可以先终止用户进程,然后再执行userdel命令进行删除。但是userdel命令也提供了一个面对该种情况的参数,即”-f”选项。

语法格式:userdel [参数] [用户名]

  • 常用参数:

-f 强制删除用户账号

-r 删除用户主目录及其中的任何文件

-h 显示命令的帮助信息

  • 删除用户,但不删除其家目录及文件:

[root@linuxcool ~]# userdel linuxcool

  • 删除用户,并将其家目录及文件一并删除:

[root@linuxcool ~]# userdel -r linuxcool

  • 强制删除用户:

[root@linuxcool ~]# userdel -f linuxcool

groupadd 命令详解


  • groupadd命令用于创建一个新的工作组,新工作组的信息将被添加到系统文件中。

  • 语法格式:groupadd [参数]

  • 常用参数:

-g 指定新建工作组的id

-r 创建系统工作组,系统工作组的组ID小于500

-K 覆盖配置文件“/ect/login.defs”

-o 允许添加组ID号不唯一的工作组

  • 使用-g参数新建linuxcool工作组名,1005是工作组id:

[root@linuxcool ~]# groupadd -g 1005 linuxcool

-使用-r创建系统工作组:

[root@linuxcool ~]# groupadd -r -g 368 linuxcool

groupdel 命令详解


  • groupdel命令用于删除指定的工作组,本命令要修改的系统文件包括/ect/group和/ect/gshadow。

  • userdel修改系统账户文件,删除与 GROUP 相关的所有项目。给出的组名必须存在。若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组。

  • 语法格式:groupdel [参数] [群组名称]

  • 常用参数:

-h 显示帮助信息

-R 在chroot_dir目录中应用更改并使用chroot_dir目录中的配置文件

  • 使用groupdel命令删除linuxcool工作组:

[root@linuxcool ~]# groupdel linuxcool

  • 查看linuxcool组是否删除成功:

[root@linuxcool ~]# more /etc/group|grep linuxcool

通过查看/etc/group配置文件里面不存在linuxcool组,说明已经被删除了。

chmod 命令详解


  • chmod命令主要用于修改文件或者目录的权限,例如chmod o+w test.txt,赋予test.txt其他人w写权限

  • 语法格式: chmod [参数] [文件]

  • 常用参数:

  • -R 目录下所有文件

-c 若该文件权限确实已经更改,才显示其更改动作

-f 若该文件权限无法被更改也不显示错误讯息

-v 显示权限变更的详细资料

-R 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

  • 将档案 file1.txt 设为所有人皆可读取:

[root@linuxcool ~]# chmod a+r file.txt

  • 将目前目录下的所有文件与子目录皆设为任何人可读取 :

[root@linuxcool ~]# chmod -R a+r *

  • 将 file.txt 设定为只有该文件拥有者可以执行:

[root@linuxcool ~]# chmod u+x file.txt

chown 命令详解


  • chown命令主要用于文件或者文件夹宿主及属组的修改,命令格式例如chown –R root.root /tmp/test.txt,表示修改test.txt文件的用户和组均为root

用法:chown [选项]… [所有者][:[组]] 文件…

或:chown [选项]… --reference=参考文件 文件…

更改每个文件的所有者和/或所属组。

当使用 --referebce 参数时,将文件的所有者和所属组更改为与指定参考文件相同。

-f, --silent, --quiet 去除大部份的错误信息

–reference=参考文件 使用参考文件的所属组,而非指定值;

-R, --recursive 递归处理所有的文件及子目录;

-v, --verbose 为处理的所有文件显示诊断信息;

-H 命令行参数是一个通到目录的符号链接,则遍历符号链接;

-L 历每一个遇到的通到目录的符号链接;

-P 历任何符号链接(默认);

–help 显示帮助信息并退出;

–version 显示版本信息并退出。

  • 将test.txt文件用户组与用户都改为bin:

[root@linuxcool ~]# ll test.txt.bz2

-rw-r–r-- 1 root root 56 Jul 22 20:17 test.txt.bz2

[root@linuxcool ~]# chown bin:bin test.txt.bz2

[root@linuxcool ~]# ll test.txt.bz2

-rw-r–r-- 1 bin bin 56 Jul 22 20:17 test.txt.bz2

  • 显示改动动作:

[root@linuxcool ~]# ll test.txt

-rw-r–r-- 1 root root 45 Jul 22 21:11 test.txt

[root@linuxcool ~]# chown -c bin:bin test.txt

changed ownership of `test.txt’ to bin:bin

  • 将当前目录下所有文件的拥有者都改为 linuxcool,用户组改为 linuxcoolgroup:

[root@linuxcool ~]# chown -R linuxcool:linuxcoolgroup *

文件管理相关

================================================================

touch命令详解


  • 主要用于创建文件、修改时间

  • touch -t 2103081018 he.txt 修改he.txt文档,时间为21年3月18日10点18分

  • touch haha.txt 创建 haha.txt文件

用法:touch [选项]… 文件…

将每个文件的访问时间和修改时间改为当前时间;

不存在的文件将会被创建为空文件,除非使用-c 或-h 选项;

如果文件名为"-"则特殊处理,更改与标准输出相关的文件的访问时间;

长选项必须使用的参数对于短选项时也是必需使用的;

-a 只更改访问时间;

-c, --no-create 不创建任何文件;

-d, --date=字符串 使用指定字符串表示时间而非当前时间;

-f (忽略);

-h, --no-dereference 会影响符号链接本身,而非符号链接所指示的目的地;

(当系统支持更改符号链接的所有者时,此选项才有用);

-m 只更改修改时间;

-r, --reference=文件 使用指定文件的时间属性而非当前时间;

-t STAMP 使用[[CC]YY]MMDDhhmm[.ss] 格式的时间而非当前时间;

–time=WORD 使用WORD 指定的时间:access、atime、use 都等于-a;

选项的效果,而modify、mtime 等于-m 选项的效果;

–help 显示此帮助信息并退出;

–version 显示版本信息并退出。

mkdir命令详解


  • 主要用于创建目录

  • 常用参数

  • mkdir -pv hbs 创建目录

  • [root@localhost ~]# mkdir -p a/{b/{e,f},c,d/{g,h}} 命令扩展 大括号{}

用法:mkdir [选项]… 目录;若指定目录不存在则创建目录;

长选项必须使用的参数对于短选项时也是必需使用的;

-m, --mode=模式 设置权限模式(类似chmod),而不是rwxrwxrwx 减umask;

-p, --parents 需要时创建目标目录的上层目录,但即使这些目录已存在也不当作错误处理;

-v, --verbose 每次创建新目录都显示信息;

-Z, --context=CTX 将每个创建的目录的SELinux 安全环境设置为CTX;

–help 显示此帮助信息并退出;

–version 显示版本信息并退出。

rmdir 删除目录


rm 命令详解


  • 主要用于删除文件和目

  • 常用命令

  • rm -r 递归删除目录及其内容

  • rm -rf 强制删除。忽略不存在的文件,不提示确认

用法:rm [选项]… 文件…删除 (unlink) 文件。

-f, --force 强制删除。忽略不存在的文件,不提示确认;

-i 在删除前需要确认;

-I 在删除超过三个文件或者递归删除前要求确认。此选项比-i 提示内容更少,但同样可以阻止大多数错误发生;

-r, -R, --recursive 递归删除目录及其内容;

-v, --verbose 详细显示进行的步骤;

–help 显示此帮助信息并退出;

–version 显示版本信息并退出;

默认时,rm 不会删除目录,使用–recursive(-r 或-R)选项可删除每个给定的目录,以及其下所有的内容;

要删除第一个字符为"-“的文件 (例如”-foo"),请使用以下方法之一:

rm – -foo

rm ./-foo

cp命令详解


  • 主要用于拷贝文件

  • 常用命令

  • [root@hbs ~]# cp -r b/c/ /tmp/ 拷贝目录

  • 拷贝文件,只能一对一

  • 拷贝多个目录,只能是目录

  • -i 覆盖式提示信息

  • -f 强制复制

  • -p 保留原有属性

用法:cp [选项]… [-T] 源文件 目标文件

或:cp [选项]… 源文件… 目录

或:cp [选项]… -t 目录 源文件…

将源文件复制至目标文件,或将多个源文件复制至目标目录。

长选项必须使用的参数对于短选项时也是必需使用的。

-a, --archive 等于-dR --preserve=all;

–backup[=CONTROL 为每个已存在的目标文件创建备份;

-b 类似–backup 但不接受参数;

–copy-contents 在递归处理是复制特殊文件内容;

-d 等于–no-dereference --preserve=links;

-f, --force 如果目标文件无法打开则将其移除并重试(当 -n 选项;

存在时则不需再选此项);

-i, --interactive 覆盖前询问(使前面的 -n 选项失效);

-H 跟随源文件中的命令行符号链接;

-l, --link 链接文件而不复制;

-L, --dereference 总是跟随符号链接;

-n, --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效);

-P, --no-dereference 不跟随源文件中的符号链接;

-p 等于–preserve=模式,所有权,时间戳;

mv 命令详解


  • 移动、重命名

  • 目标在本地,是重命名

  • 目标在远端,是移动

用法:mv [选项]… [-T] 源文件 目标文件;

或:mv [选项]… 源文件… 目录;

或:mv [选项]… -t 目录 源文件;

将源文件重命名为目标文件,或将源文件移动至指定目录。长选项必须使用的参数对于短选项时也是必需使用的。

–backup[=CONTROL] 为每个已存在的目标文件创建备份;

-b 类似–backup 但不接受参数;

-f, --force 覆盖前不询问;

-i, --interactive 覆盖前询问;

-n, --no-clobber 不覆盖已存在文件,如果您指定了-i、-f、-n 中的多个,仅最后一个生效;

–strip-trailing-slashes 去掉每个源文件参数尾部的斜线;

-S, --suffix=SUFFIX 替换常用的备份文件后缀;

-t, --target-directory=DIRECTORY 将所有参数指定的源文件或目录;

移动至 指定目录;

-T, --no-target-directory 将目标文件视作普通文件处理;

-u, --update 只在源文件文件比目标文件新,或目标文件;

不存在时才进行移动;

-v, --verbose 详细显示进行的步骤;

–help 显示此帮助信息并退出;

–version 显示版本信息并退出。

cat命令详解


  • 主要用于查看文件内容(适用短文本)

  • 常用命令

  • cat -n he.txt 显示行号的

用法: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 显示版本信息并退出。

  • cat …EOF …EOF用法

  • 添加内容,会覆盖前面内容

  • 追加内容

[root@hbs a]# cat > /tmp/hbs.txt <<EOF

my name is hbs

I love a girl

EOF

[root@hbs a]#

[root@hbs a]# cat >> /tmp/hbs.txt <<EOF 追加内容

I LOVE LIU AO NI

EOF

[root@hbs a]#

head命令详解


  • 主要用于查看文件内容,通常查看头10行

  • 常用命令

  • [root@hbs ~]# head -3 anaconda-ks.cfg 看前3行

用法:head [选项]… [文件]…

将每个指定文件的头10 行显示到标准输出。

如果指定了多于一个文件,在每一段输出前会给出文件名作为文件头。

如果不指定文件,或者文件为"-",则从标准输入读取数据,长选项必须使用的参数对于短选项时也是必需使用的;

-q, --quiet, --silent 不显示包含给定文件名的文件头;

-v, --verbose 总是显示包含给定文件名的文件头;

–help 显示此帮助信息并退出;

–version 显示版本信息并退出;

-c, --bytes=[-]K 显示每个文件的前K 字节内容,如果附加"-"参数,则除了每个文件的最后K字节数据外显示剩余全部内容;

-n, --lines=[-]K 显示每个文件的前K 行内容,如果附加"-"参数,则除了每个文件的最后K 行外显示剩余全部内容。

tail 命令详解


  • 主要用于查看文件内容,通常用于尾 10行

  • 常用命令

  • tail -10 anaconda-ks.cfg 查看尾 10行

用法:tail [选项]… [文件]…

显示每个指定文件的最后10 行到标准输出。

若指定了多于一个文件,程序会在每段输出的开始添加相应文件名作为头。

如果不指定文件或文件为"-" ,则从标准输入读取数据。

长选项必须使用的参数对于短选项时也是必需使用的。

-n, --lines=K 输出的总行数,默认为10行;

-q, --quiet, --silent 不输出给出文件名的头;

–help 显示此帮助信息并退出;

–version 显示版本信息并退出;

-f, --follow[={name|descriptor}] 即时输出文件变化后追加的数据;

-f, --follow 等于–follow=descriptor

-F 即–follow=name –retry

-c, --bytes=K 输出最后K字节;另外,使用-c +K 从每个文件的第K字节输出。

find命令详解


  • 实时查找,精确性强,遍历指定目录中所有文件完成查找,

  • 查找速度慢,支持众多查找标准。

  • 语法:find [OPTION…] 查找路径 查找标准 查找到以后的处理动作

  • 查找路径 默认为当前目录

  • 查找标准 默认为指定路径下的所有文件

-name ‘filename’ 对文件名作精确匹配.支持glob通配符机制

-iname ‘filename’ 文件名匹配时不区分大小写

-regex pattern 基于正则表达式进行文件名匹配.以pattern 匹配整个文件路径字符串,而不仅仅是文件名称

-user username 根本属主来查找

-group groupname 根据属组来查找

-uid 根据UID进行查找,当用户被删除以后文件的属主会变为此用户的UID

-gid 根据GID进行查找,当用户被删除以后文件的属组会变为此用户的GID

-nouser 查找没有属主的文件.用户被删除的情况下产生的文件,只有uid没有属主

-nogroup 查找没有属组的文件.组被删除的情况下产生的文件,只有gid没有属组

-type 根据文件类型来查找(f,d,c,b,l,p,s)

-size 根据文件大小进行查找。如1k、1M,+10k、+10M,-1k、-1M, +表示大于,-表示小于


mtime 修改时间

-ctime 改变时间

-atime 访问时间+5 ,5天前;-5,5天以内

-mmin 多少分钟修改过

-cmin 多少分钟改变过

-amin 多少分钟访问过, +5 ,5分钟前;-5,5分钟以内

-perm mode 根据权限精确查找

-perm -mode 文件权限能完全包含此mode时才符合条件

-perm /mode 9位权限中有任何一位权限匹配都视为符合查找条件

处理动作:默认为显示到屏幕上

-print 显示

-ls 类似ls -l的形式显示每一个文件的详细信息

-delete 删除查找到的文件

-fls /path/to/somefile 查找到的所有文件的长格式信息保存至指定文件中

-ok COMMAND {} ; 对查找到的每个文件执行COMMAND,每次操作都需要用户确认

-exec COMMAND {} ; 对查找到的每个文件执行COMMAND,操作不需要确认

[root@localhost ~]# find / -name abc 找名字是 abc的

/root/abc

/opt/abc

[root@localhost ~]# find / -iname abc 忽略大小写的

/root/abc

/opt/abc

/opt/ABC

[root@localhost ~]# find / -nouser tom 找没有user的

[root@localhost ~]# find -type d 找目录

.

./a

./a/b

./a/b/e

[root@localhost ~]# find -size -1M 小于1m的文件

./00:00:00

./2021

[root@localhost ~]# find -size +1k 大于1k的文件

.

./.bash_history

./anaconda-ks.cfg

[root@localhost ~]# find -mmin +1 一分钟前改变的

./.bash_logout

./.bash_profile

./.bashrc

[root@localhost ~]# find -type d -name 5 必须是目录,名字是 5的目录

./5

[root@localhost ~]# find -type f -name 5

[root@localhost ~]#

[root@localhost ~]# find -type d -name 5 -ls 组合命令

33576693 0 drwxr-xr-x 2 root root 6 Apr 8 10:25 ./5

[root@localhost ~]#

[root@localhost ~]# find -type f -name he.txt -print 查找 名字为he.txt的文件,并且打印出来

./he.txt

[root@localhost ~]#

[root@localhost ~]# find -type f -name 5 -delete **查找名字是 5的文件,并删除

**

[root@localhost opt]# find ./ -type f -name *.sh -exec mv {} /opt/ ; 将当前文件 名为 .sh 的文件移动到 /OPT下

more命令详解


  • 从前往后看,不能回退

  • 有进度条显示

less 命令详解


  • 可以回退,空格 从前往后翻屏幕。

  • 从后往前翻屏,b键

  • q键 退出查看

du 命令详解


  • 常用于查看文件在磁盘中的使用量

  • 常用命令

  • [root@hbs ~]# du -sh /tmp/ 查看当前目录所有文件及文件及的大小

df 命令详解


  • 主要用于查询磁盘分区

  • 常用命令

  • df –h,查看磁盘分区信息

[root@hbs ~]# du -sh /boot/ 查看目录及文件大小

110M /boot/

[root@hbs ~]# df -h /boot/ 查看boot 目录的使用情况

Filesystem Size Used Avail Use% Mounted on

/dev/sda1 197M 121M 77M 62% /boot

[root@hbs ~]#

用法:df [选项]… [文件]…

显示每个文件所在的文件系统的信息,默认是显示所有文件系统。

长选项必须使用的参数对于短选项时也是必需使用的。

-a, --all 显示所有文件系统的使用情况,包括虚拟文件系统;

-B, --block-size=SIZE 使用字节大小块;

-h, --human-readable 以人们可读的形式显示大小;

-H, --si 同-h,但是强制使用1000而不是1024;

-i, --inodes 显示inode 信息而非块使用量;

-k 即–block-size=1K;

-l, --local 只显示本机的文件系统;

–no-sync 取得使用量数据前不进行同步动作(默认);

-P, --portability 使用POSIX 兼容的输出格式;

–sync 取得使用量数据前先进行同步动作;

-t, --type=类型 只显示指定文件系统为指定类型的信息;

-T, --print-type 显示文件系统类型;

-x, --exclude-type=类型 只显示文件系统不是指定类型信息;

–help 显示帮助信息并退出;

–version 显示版本信息并退出

wc 命令详解


  • 主要用于统计文本、字符(数字、符号、空格、行等)

  • 常用命令

  • [root@hbs ~]# wc -l anaconda-ks.cfg 查看看它有多少行

  • [root@hbs ~]# wc -c anaconda-ks.cfg 查看它有多少个字符

  • [root@hbs ~]# wc -w anaconda-ks.cfg 查看它有多少个单词

[root@hbs ~]# wc anaconda-ks.cfg

52 148 1511 anaconda-ks.cfg (行、单词、字符)

[root@hbs ~]

[root@hbs ~]# cat anaconda-ks.cfg | wc -l #查看多少行

52

[root@hbs ~]#

cut 命令详解


  • 取出指定列的选项

  • 常用命令选项

  • -d 指定分隔符

  • -f 指定要显示的列

[root@localhost ~]# head -5 /etc/passwd

root❌0:0:root:/root:/bin/bash

bin❌1:1:bin:/bin:/sbin/nologin

daemon❌2:2:daemon:/sbin:/sbin/nologin

adm❌3:4:adm:/var/adm:/sbin/nologin

lp❌4:7:lp:/var/spool/lpd:/sbin/nologin

[root@localhost ~]# head -5 /etc/passwd|cut -d : -f6 取出/etc/passwd 以冒号为分隔符,第6列

/root

/bin

/sbin

/var/adm

/var/spool/lpd

[root@localhost ~]#

[root@localhost ~]# head -3 /etc/passwd|cut -d: -f1

root

bin

daemon

[root@localhost ~]#

awk命令详解


  • 处理列的内容

  • 常用命令选项

  • -F 指定分割符 `‘NR==行{print $需要的列}’ 文件名

[root@localhost ~]# awk -F: ‘{print $1}’ /etc/passwd|head -5 以冒号为分隔符,查看 passwd 前5行的一个。

root

bin

daemon

adm

lp

[root@localhost ~]#

[root@localhost ~]# df -h|awk ‘{print $4}’ 分割符默认是 空格,如果不是 -F

Avail

19G

901M

912M

888M

912M

77M

183M

0

[root@localhost ~]#

[root@localhost ~]# df -h|awk ‘NR==3{print $4}’ 第4列第3行

901M

[root@localhost ~]#

[root@localhost ~]# df -h|awk ‘NR==2{print NF}’ 最后一列(NF),第二行

6

[root@localhost ~]# df -h|awk ‘NR==2{print $(NF-2)}’ 倒数多少列,第二行

sed命令详解


  • 处理行的内容

  • sed 选项 动作 文件名

  • -c 修改

  • -s 替换

  • -a 追加

  • -p 打印

  • -d 删除

  • 常用命令

  • sed -i ‘1s/^#//g’ bcd 去除#号

[root@localhost ~]# sed ‘2p’ bcd

123

456

456

23

[root@localhost ~]# sed -n ‘2p’ bcd

456

[root@localhost ~]# sed -n ‘1p’ bcd

123

[root@localhost ~]# sed -n ‘3p’ bcd

23

[root@localhost ~]# sed -n ‘/456/p’ bcd 匹配456 打印

456

[root@localhost ~]#

[root@localhost ~]# sed ‘3s/23/9999/g’ bcd 第3行的23 替换成 999

123

456

9999

[root@localhost ~]#

[root@localhost ~]# cat bcd

#123

#456

#23

[root@localhost ~]# sed ‘1s/^#//g’ bcd 将第1行的#号替换为 空,并没有修改原文件

123

#456

#23

[root@localhost ~]#

[root@localhost ~]# sed -i ‘1s/^#//g’ bcd 修改源文件了的

[root@localhost ~]# sed -i ‘1c888’ bcd 将第一行改成 888

[root@localhost ~]#

grep 命令详解


  • 文本查找

  • 常用命令参数

  • i 忽略大小写

  • v 显示没有匹配的项

  • E,一般用于 egrep

grep egrep fgrep

grep 根据模式搜索文本,并将符合模式的文本行显示出来。

使用基本正则表达式定义的模式来过滤文本的命令。

Pattern(模式) 文本字符和正则表达式的元字符组合而成的匹配条件

-i 忽略大小写

–color 匹配到的内容高亮显示

-v 显示没有被模式匹配到的行

-o 只显示被模式匹配到的字符串

-E 使用扩展正则表达式。grep -E相当于使用egrep

-q 静默模式,不输出任何信息

-A 1 被模式匹配到的内容以及其后面一行的内容都显示出来

如果把1改成2就表示被模式匹配到的内容以及其后面2行的内容均显示出来

-B 1 被模式匹配到的内容以及其前面一行的内容都显示出来

如果把1改成2就表示被模式匹配到的内容以及其前面2行的内容均显示出来

-C 1 被模式匹配到的内容以及其前后的行各显示1行,如果把1改成2

就表示被模式匹配到的内容以及其前后的行各显示2行。

fgrep 不支持正则表达式,执行速度快

[root@localhost ~]# cat g.txt

world

WORLDshar

worldhelo

123456

woLD

worLD

World

WOF

[root@localhost ~]# cat g.txt |grep world 过滤world

world

worldhelo

[root@localhost ~]# cat g.txt |grep -i world 过滤world,忽略大小写

world

WORLDshar

worldhelo

worLD

World

[root@localhost ~]# cat g.txt |grep -v world 取反

WORLDshar

123456

woLD

worLD

World

WOF

[root@localhost ~]#

[root@localhost ~]# cat g.txt |egrep -E world

world

worldhelo

[root@localhost ~]#

echo 命令详解


  • 主要用于打印字符或者回显

  • 常常和管道符连用

  • “>” 覆盖

  • “>>” 追加

  • 扩展 -e,主要用于写脚本

\033[30m 黑色字 \033[0m

\033[31m 红色字 \033[0m

\033[32m 绿色字 \033[0m

\033[33m 黄色字 \033[0m

\033[34m 蓝色字 \033[0m

\033[35m 紫色字 \033[0m

\033[36m 天蓝字 \033[0m

\033[37m 白色字 \033[0m

\033[40;37m 黑底白字 \033[0m

\033[41;37m 红底白字 \033[0m

\033[42;37m 绿底白字 \033[0m

\033[43;37m 黄底白字 \033[0m

\033[44;37m 蓝底白字 \033[0m

\033[45;37m 紫底白字 \033[0m

\033[46;37m 天蓝底白字 \033[0m

\033[47;30m 白底黑字 \033[0m

  • auto_lamp_v2.sh

#!bin/sh

echo -e “\033[036m Please select intstall Menu follow:\033[0m”

echo -e “\033[32m 1)install Apache Server\033[1m”

echo “2)install Mysql Server”

echo “3)install PHP Server”

echo “4)Configuration index.php and start LAMP Server”

echo -e “\033[31mUsage:{ /bin/sh $0 1|2|3|4|hep}\033[0m”

文本排序与去重


  • sort 排序

  • uniq 去重

  • -c 显示它出现的次数

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 23
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值