Linux常用操作(超全)

目录

目录

查询

ls

授权

chgrp

chmod

chown

变量操作

注释

输入输出重定向

输入重定向

输出重定向

读取外部输入

输出

echo

printf

登录mysql

shell脚本调试


查询

ls

-a 列出目录下的所有文件,包括以 . 开头的隐含文件

-b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出

-c 输出文件的 i 节点的修改时间,并以此排序

-d 将目录象文件一样显示,而不是显示其下的文件

-e 输出时间的全部信息,而不是输出简略信息

-f -U 对输出的文件不排序

-g 无用

-i 输出文件的 i 节点的索引信息

-k 以 k 字节的形式表示文件的大小

-l 列出文件的详细信息

-m 横向输出文件名,并以“,”作分格符

-n 用数字的 UID,GID 代替名称

-o 显示文件的除组信息外的详细信息

-p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;

“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)

-q 用?代替不可输出的字符

-r 对目录反向排序

-s 在每个文件名后输出该文件的大小

-t 以时间排序

-u 以文件上次被访问的时间排序

-x 按列输出,横向排序

-A 显示除 “.”和“..”外的所有文件

-B 不输出以 “~”结尾的备份文件

-C 按列输出,纵向排序

-G 输出文件的组的信息

-L 列出链接文件名而不是链接到的文件

-N 不限制文件长度

-Q 把输出的文件名用双引号括起来

-R 列出所有子目录下的文件

-S 以文件大小排序

-X 以文件的扩展名(最后一个 . 后的字符)排序

-1 一行只输出一个文件

授权

chgrp

  • chgrp (change group) : 修改所属用户与组。

chgrp [-R] 属组名 文件名

-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改。

chmod

  • chown (change owner) : 修改所属用户与组。

在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等。

  • 当为 d 则是目录
  • 当为 - 则是文件;
  • 若是 l 则表示为链接文档(link file);
  • 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

接下来的字符中,以三个为一组,且均为 rwx 的三个参数的组合。其中, r 代表可读(read)、 w 代表可写(write)、 x 代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号 - 而已。

每个文件的属性由左边第一部分的 10 个字符来确定

chown

  • chmod (change mode) : 修改用户的权限。

chown [–R] 属主名 文件名

chown [-R] 属主名:属组名 文件名

变量操作

  • 创建普通变量: name="test" (=两边不可有空格)
  • 创建只可函数体中使用的局部变量: local name="test" (使用local修饰的变量在函数体外无法访问,并且local只能在函数体内使用)
  • 使用变量: echo $name 或者 echo ${name} (推荐使用大括号版)
  • 变量重新赋值: name="new_test" (将原值覆盖)
  • 只读变量: name="only_read" -> readonly name (使用readonly标识后的变量,不可被修改)
  • 删除变量: unset name; (删除之后不可访问,删除不掉只读变量)
  • 获取字符串长度
  • 在${}中使用“#”获取长度
  • name="test";
  • echo ${#name}; # 输出为4
  • 提取子字符串

:1:4 从第2个开始,往后截取4个字符
::4 从第1个开始,往后截取4个字符

  • 数组
  • 定义数组:array_name=(li wang xiang zhang) (小括号做边界、使用空格分离)
  • 单独定义数组的元素: array_para[0]="w"; array_para[3]="s" (定义时下标不连续也可以)
  • 赋值数组元素:array_name[0]="zhao";
  • 获取数组元素:
    • array_name[0]="li"
    • array_name[3]="zhang"
    • echo ${array_name[0]} # 输出"li"
    • echo ${array_name[1]} # 输出" "
    • echo ${array_name[3]} # 输出"zhang"
    • echo ${array_name[@]} # 输出"li zhang" 输出数组所有元素,没有元素的下标省略
  • 取得元素个数:${#array_name[@]} 或者 ${#array_name
  • }
  • 取得单个元素长度:${#array_name[1]}

注释

“# ”开头的就是注释,被编译器忽略

  • 单行注释: #
  • 多行注释: :<


输入输出重定向

  1. 一般情况下,每个 Unix/Linux 命令运行时都会打开三个文件:
  2. 标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
  3. 标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
  4. 标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。
  5. 默认情况下,command > file 将 stdout 重定向到 file,command < file 将stdin 重定向到 file。
  6. 如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null:

输入重定向

  1. 1. bash.sh < file : 将脚本的输入重定向到file,由file提供参数

输出重定向

  1. 1. bash.sh > file : 将脚本的输出数据重定向到file中,覆盖数据
  2. 2. bash.sh >> file : 将脚本的输出数据重定向到file中,追加数据
  3. 3. command >> file 2>&1 : 将 stdout 和 stderr 合并后重定向到 file

读取外部输入

  1. 命令:`read arg` (脚本读取外部输入并赋值到变量上)
  2. 在shell脚本执行到上述命令时,停止脚本执行并等待外部输入,将外部输入赋值到arg变量上,继续执行脚本

输出

echo

栗子:echo 'hello linux'

printf

printf 不会像 echo 自动添加换行符,我们可以手动添加 \n
无大括号,直接以空格分隔

  • 格式:printf format-string [arguments...] 其中(format-string: 格式控制字符串、arguments: 参数列表)
  • 栗子:printf "%-10s %-8s %-4.2f\n" 郭靖 男 66.1234
  • %s %c %d %f 都是格式替代符
    • d:Decimal 十进制整数 对应位置参数必须是十进制整数,否则报错!
    • s:String 字符串 对应位置参数必须是字符串或者字符型 否则报错
    • c:Char 字符 对应位置参数必须是字符串或者字符型 否则报错
    • f:Float 浮点 对应位置参数必须是数字型 否则报错
  • %-10s : 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),任何字符都会被显示在10个字符宽的字符内,如果不足则自动以空格填充,超过也会将内容全部显示出来。
  • %-4.2f :指格式化为小数,宽度为4个字符,其中.2指保留2位小数。
  • 转义符:
    • \a :警告字符,通常为ASCII的BEL字符
    • \b :后退
    • \c :抑制(不显示)输出结果中任何结尾的换行字符(只在%b格式指示符控制下的参数字符串中有效),而且,任何留在参数里的字符、任何接下来的参数以及任何留在格式字符串中的字符,都被忽略
    • \f :换页(formfeed)
    • \n :换行
    • \r :回车(Carriage return)
    • \t :水平制表符
    • \v :垂直制表符
    • \ :一个字面上的反斜杠字符
    • \ddd :表示1到3位数八进制值的字符。仅在格式字符串中有效
    • \0ddd :表示1到3位的八进制值字符

登录mysql

选择操作数据库,之后进行导入数据

/mysql/mysql/bin/mysql \ -h test_host -P 000 \ -u test_user -ptest_password \ -e "use test_database; source data_faile; " # -e 代表执行sql语句

-u 用户名
-p 用户密码
-h 服务器ip地址
-D 连接的数据库
-N 不输出列信息
-B 使用tab键 代替 分隔符
-e 执行的SQL语句
退出脚本命令:exit

shell脚本调试

检查是否有语法错误-n:

bash -n script_name.sh

使用下面的命令来执行并调试 Shell 脚本-x:

bash -x script_name.sh

有用就点赞关注哦

猜你喜欢

转载自blog.csdn.net/wangerrong/article/details/126324685