Linux 数据流重定向
Linux 数据流重定向 数据流重定向简单的重定向 文件描述符 设备文件 说明 0 /dev/stdin 标准输入 1 /dev/stdout 标准输出 2 /dev/stderr 标准错误 文件描述符:文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于 UNIX、Linux 这样的操作系统。 默认使用终端的标准输入作为命令的输入和标准输出作为命令的输出 12$ cat # (按Ctrl+C退出) 将cat的连续输出(heredoc方式)重定向到一个文件 1234567891011$ mkdir Documents$ cat > Documents/test.c <<EOF#include <stdio.h>int main(){ printf("hello world...
Linux 简单的文本处理
Linux 简单的文本处理 文本处理命令tr 命令12# 用来删除一段文本信息中的某些文字。或者将其进行转换。$ tr [option]...SET1 [SET2] 常用选项: 选项 说明 -d 删除和set1匹配的字符,注意不是全词匹配也不是按字符顺序匹配 -s 去除set1指定的在输入文本中连续并重复的字符 常用操作: 1234567# 删除 "hello shiyanlou" 中所有的'o','l','h'$ echo 'hello shiyanlou' | tr -d 'olh'# 将"hello" 中的ll,去重为一个l$ echo 'hello' | tr -s 'l'# 将输入文本,全部转换为大写或小写输出$ cat /etc/passwd | tr '[:lower:]' '[:upper:]'# 上面的'[:lowe...
Linux 命令执行顺序控制与管道
Linux 命令执行顺序控制与管道 命令执行顺序的控制顺序执行多条命令1$ sudo apt-get update;sudo apt-get install some-tool;some-tool 有选择的执行命令&&使用which来查找是否安装某个命令,如果找到就执行该命令,否则什么也不做 1$ which cowsay>/dev/null && cowsay -f head-in ohch~ 上面的&&就是用来实现选择性执行的,它表示如果前面的命令执行结果(不是表示终端输出的内容,而是表示命令执行状态的结果)返回0则执行后面的,否则不执行,你可以从$?环境变量获取上一次命令的返回结果 1$ echo $? ||||表示与&&相反的控制效果,当上一条命令执行结果为≠0($?≠0)时则执行它后面的命令 1$ which cowsay>/dev/null || echo "cowsay has not been install, please run 'sudo apt-get inst...
Linux 任务计划crontab
Linux 任务计划crontab crontab 简介这里我们看一看crontab 的格式 12345678# Example of job definition:# .---------------- minute (0 - 59)# | .------------- hour (0 - 23)# | | .---------- day of month (1 - 31)# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat# | | | | |# * * * * * user-name command to be executed crontab 准备crontab 在本实验环境中需要做一些特殊的准备,首先我们会启动 rsyslog,以便我们可以通过日志中的信息来了解我们的任务是否真正的被执行了(在本实验环境中需要手动启动...
Linux 下的帮助命令
Linux 下的帮助命令 内建命令与外部命令 内建命令实际上是 shell 程序的一部分,其中包含的是一些比较简单的 Linux 系统命令,这些命令是写在bash源码的builtins里面的,并由 shell 程序识别并在 shell 程序内部完成运行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中。而且解析内部命令 shell 不需要创建子进程,因此其执行速度比外部命令快。比如:history、cd、exit 等等。 外部命令是 Linux 系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。虽然其不包含在 shell 中,但是其命令执行过程是由 shell 程序控制的。外部命令是在 Bash 之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi等。 1234567891011$ type exit$ type service#得到这样的结果说明是内建命令,正如上文所说内建命令都是在 bash 源...
Linux 文件系统操作与磁盘管理
Linux 文件系统操作与磁盘管理 基本操作使用 df 命令查看磁盘的容量12$ df$ df -h 使用 du 命令查看目录的容量123456789101112# 默认同样以 blocks 的大小展示$ du # 加上`-h`参数,以更易读的方式展示$ du -h# 只查看1级目录的信息$ du -h -d 0 ~# 查看2级$ du -h -d 1 ~du -h #同--human-readable 以K,M,G为单位,提高信息的可读性。du -a #同--all 显示目录中所有文件的大小。du -s #同--summarize 仅显示总计,只列出最后加总的值。 简单的磁盘管理dd 命令简介dd命令从标准输入读入用户输入到标准输出或者一个文件 12345678910# 输出到文件$ dd of=test bs=10 count=1 # 或者 dd if=/dev/stdin of=test bs=10 count=1# 输出到标准输出$ dd if=/dev/stdin of=/dev/stdout bs=10 count=1# bs(block size)用于指定块大小(...
Linux 环境变量与文件查找
Linux 环境变量设置和文件查找操作 环境变量创建变量和读取变量的值123$ declare tmp$ declare tmp$ echo $tmp 环境变量设置123.profile 可以用 ls -a 查看cd /home/shiyanlouls -a .profile 只对当前用户永久生效。而写在 /etc/profile 里面的是对所有用户永久生效,所以如果想要添加一个永久生效的环境变量,只需要打开 /etc/profile,在最后加上你想添加的环境变量就好啦。 文件添加可执行权限1$ chmod 755 hello_shell.sh gcc 编译1$ gcc -o hello_world hello_world.c 添加自定义路径到“ PATH ”环境变量12345$ PATH=$PATH:/home/shiyanlou/mybin # 注意这里一定要使用绝对路径。$ echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc # 开机加载自定义环境变量位置# >> 表示将标准...
Linux 用户及文件权限管理
添加删除用户,添加用户到 sudo 组,修改文件权限。 Linux 用户管理通过第一节课程的学习,你应该已经知道,Linux 是一个可以实现多用户登陆的操作系统,比如“李雷”和“韩梅梅”都可以同时登陆同一台主机,他们共享一些主机的资源,但他们也分别有自己的用户空间,用于存放各自的文件。但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于 Linux 的 用户管理 和 权限机制,不同用户不可以轻易地查看、修改彼此的文件。 下面我们就来学习一下 Linux 下的账户管理的基础知识。 2.1 查看用户请打开终端,输入命令: 123$ who am i或者$ who mom likes 输出的第一列表示打开当前伪终端的用户的用户名(要查看当前登录用户的用户名,去掉空格直接使用 whoami 即可),第二列的 pts/0 中 pts 表示伪终端,所谓伪是相对于 /dev/tty 设备而言的,还记得上一节讲终端时的那七个使用 [Ctrl]+[Alt]+[F1]~[F7] 进行切换的 /dev/tty 设备么,这是“真终端”,伪终端就是当你在图形用户界面使用 /...
Linux 目录结构及文件基本操作
实验楼《Linux 基础入门》第四节 Linux 目录结构及文件基本操作笔记 Linux 目录结构 Linux 文件基本操作新建空白文件1$ touch test 新建目录12$ mkdir mydir$ mkdir -p father/son/grandson 复制文件1$ cp test father/son/grandson 复制目录1$ cp -r father family # -r 或者 -R 参数,表示递归复制 删除文件12$ rm test$ rm -f test # -f 参数强制删除 删除目录1$ rm -r family # 跟复制目录一样,要删除一个目录,也需要加上 -r 或 -R 参 移动文件1$ mv file1 Documents # mv 源目录文件 目的目录 重命名文件1$ mv file1 myfile # mv 旧的文件名 新的文件名 批量重命名12345678# 使用通配符批量创建 5 个文件:$ touch file{1..5}.txt# 批量将这 5 个后缀为 .txt 的文本文件重命名为以 .c 为后...
test_2 4.1 逆序输出(10分))
你的程序会读入一系列的正整数,预先不知道正整数的数量,一旦读到-1,就表示输入结束。然后,按照和输入相反的顺序输出所读到的数字,不包括最后标识结束的-1。 题目内容你的程序会读入一系列的正整数,预先不知道正整数的数量,一旦读到-1,就表示输入结束。然后,按照和输入相反的顺序输出所读到的数字,不包括最后标识结束的-1。 输入格式一系列正整数,输入-1表示结束,-1不是输入的数据的一部分。 输出格式按照与输入相反的顺序输出所有的整数,每个整数后面跟一个空格以与后面的整数区分,最后的整数后面也有空格。 输入样例1 2 3 4 -1 输出样例4 3 2 1 限制时间限制:500ms 内存限制:32000kb 代码实现C语言12345678910111213141516171819202122232425262728# include<stdio.h># include<stdlib.h>typedef struct _node { int value; struct _node* before;} Node;int main () ...




