잘 알려지지 않은 5가지 Linux 터미널 팁 및 실험
개발자로서 우리는 프로그래밍 관련 활동에 그래픽 사용자 인터페이스(GUI) 대신 명령줄 인터페이스(CLI)를 선호하는 경우가 많습니다. 물론 대부분의 GUI는 키보드 단축키를 제공하지만 GUI를 사용할 때 작업을 완료하려면 마우스를 여러 번 클릭하고 움직여야 하는 경우가 많습니다. 대신, CLI 상호 작용 스타일은 개발자가 키보드에 손만 대면 되는 명령과 스크립팅 언어를 사용하여 거의 모든 작업을 수행하도록 장려합니다. 또한 여러 명령을 결합하여 개발 활동을 더욱 효율적으로 만들 수도 있습니다.
프로그래머로서 우리는 일반적으로 Unix 또는 Linux 명령을 사용하여 파일 처리, 시스템 구성, 네트워크 요청 처리 등 다양한 작업을 수행합니다.
알려진 CLI 명령을 넘어 터미널 내부에 대해 자세히 알아볼 수 있다면 터미널 인터페이스의 생산성과 자신감을 높이는 더 독특한 방법을 배울 수 있습니다. 이 글에서는 잘 알려지지 않은 터미널 관련 개념들을 실제 실험을 통해 설명하겠습니다.
다른 터미널 창으로 콘텐츠 보내기
프로그래머는 컴퓨터의 여러 물리적 화면을 사용하여 여러 개발 활동을 동시에 수행합니다. 일부 프로그래머는 이 화면에서 여러 터미널 창을 엽니다. 또한 일부 프로그래머는 동일한 물리적 화면에서 여러 터미널 창을 사용하는 경우가 많습니다. 특정 명령의 출력을 기존의 다른 터미널 창으로 보내야 하는 경우에는 어떻게 해야 합니까?
각 GUI 터미널 프로그램 인스턴스는 의사 터미널 파일이라는 장치 파일에 연결됩니다. 이러한 의사 터미널 파일은 GUI 터미널이 하위 프로세스에서 I/O 데이터를 보내고 캡처하는 데 도움이 됩니다. 터미널 창을 열고 다음 명령을 입력하여 사용 가능한 모든 의사 터미널 장치를 확인하세요.
으아아아
터미널 창만 열면 두 개의 장치 파일이 표시됩니다: ptmx
和0
。当前终端使用/dev/pts/0文件处理进程的I/O数据——您可以使用tty
找到当前的伪终端。例如,如果当前终端的伪终端是/dev/pts/0
. 다음 명령은 현재 터미널 자체에 일부 텍스트를 인쇄합니다.

이 실험적 개념을 사용하여 이제 아래와 같이 명령 출력을 다른 기존 터미널 창으로 직접 보낼 수 있으며 그 반대로도 가능합니다.

두 터미널 창 간에 명령 출력 보내기
.bashrc 정의를 효과적으로 다시 로드
터미널 REPL을 통해 별칭과 환경 변수를 정의하면 터미널을 종료할 때 이러한 구성이 삭제됩니다. 따라서 Bash 인터프리터가 제공하는 스크립트가 실행되므로 여기에 영구 별칭, 환경 변수 및 전역 기능을 추가할 수 있습니다. .bashrc
文件以添加所有启动脚本定义。每当你用 Bash 打开一个新的终端窗口时,.bashrc
我们经常需要在开发工具配置过程中更新这个启动脚本。您通常如何使用新的启动脚本版本更新您的终端?一些程序员经常进入bash
打开一个新的 Bash 解释器实例,但它会创建一个资源密集型进程链,如下所示:

GNOME 系统监视器上的 Bash 进程链
有两种主要方法可以.bashrc
有效地重新加载文件。第一种方法是使用内置source
命令,如下所示。
source ~/.bashrc
上面的命令再次执行.bashrc
脚本。第二种方法是用内置exec
命令替换当前的 shell 实例。
exec bash
上述两种方式都比bash
手动输入或打开新的终端窗口更好、更有效率。
通过铃声和警报了解任务完成情况
程序员在终端窗口中运行各种命令。有时,他们会输入即时命令,例如ls
和pwd
。但是,有时,他们必须使用终端命令启动长时间运行的任务。例如,由于深度依赖安装,React 应用程序或 React Native 应用程序创建命令通常需要更多时间。
一些程序员通常会输入这些长时间运行的命令并等待完成。同时,一些程序员从事另一项活动,并经常检查长时间运行的命令的状态。让我们找到一种更高效的方式来管理长时间运行的任务。
如果您总是戴耳机或使用扬声器,播放哔声是识别长时间运行命令完成的好方法。看下面的命令
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com ⚡ sleep 5; printf "\a"

上述命令在sleep
命令完成后播放哔声。但是,如果有多个长时间运行的命令,而您的扬声器已静音怎么办?然后,我们可以使用预定义的alert
别名,如下所示。
linuxmi@linuxmi /home/linuxmi/www.linuxmi.com ⚡ sleep 5; alert

警报 alert 别名alias
通知Ubuntu上的命令完成
上面的命令显示了使用先前输入的命令片段完成的任务。
该alert
别名在大多数 GNU/Linux 发行版中都可用,但如果它不适合您,您可以将以下代码段添加到您的.bashrc
文件中以激活它:
# 为长时间运行的命令添加“alert”别名。使用像这样: # sleep 10; alert alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
使用终端作为计算器
除了终端、代码编辑器和 Web 浏览器之外,程序员不会经常使用许多 GUI 应用程序。但是,在某些情况下,Web 开发人员倾向于使用像 Postman 这样的 GUI 工具来测试 Web API,而不是像curl
这样的命令行工具。
每个 GNU/Linux 操作系统都提供一个 GUI 计算器程序,但大多数程序员并不倾向于将它用于日常计算。如果我们需要进行单位换算或者货币换算,我们可以在搜索引擎中输入它来寻找答案。当我们使用算法解决问题时,我们经常需要进行各种计算。如果你需要计算一个数学表达式——当你处理一个编程任务时怎么办?
bc -l
我们可以使用命令(-l
启用浮点计算)打开一个命令行计算器。看下面的预览:

尽管程序名称是基本计算器basic calculator(也称为bc
),但它支持变量定义、复杂表达式和数学函数。如果您需要使用现代语言语法执行数学运算,您还可以将 Python REPL 用作简单的计算器。例如,以下 Python 表达式计算半径为 7 个单位的圆的周长:
2 * math.pi * 7
“
子shell、命令组合和大括号扩展
Bash 是一种命令语言,因此它提供了许多功能来高效地编写命令并制作更好的自动化脚本。Bash 提供了一种创建子 shell 的方法,我们可以使用它来初始化隔离的脚本执行环境。例如,我们可以更改特定命令的当前工作目录,而不会影响终端上的当前工作目录,如下所示
(cd backend; npm i)
Bash 还允许您更改进程的环境变量。看下面的例子:
PORT=5000 ./linuxmi.py
上述命令PORT
只为 Python 脚本执行环境设置环境变量,不更新原始 shell 实例。
有时,我们可以组合几个命令来更快地完成任务。&&
我们可以使用、||
、|
和等 Bash 运算符将多个命令连接成一个命令;
。命令替换功能还可以帮助我们组合多个命令。例如,我们可以使用以下命令仅将当前目录的文本文件作为参数发送到脚本:
./linuxmi.py `find . -name "*.txt"`
大括号扩展功能有助于根据范围定义生成字符串。例如,{1..5}
扩展定义生成一个以空格分隔的整数列表,范围为1
到5
。同样,/path/{bin,src}
返回以下输出:
/path/bin /path/src
如下图:

现在我们可以结合mkdir
命令和大括号替换来一次创建多个子目录。
mkdir linuxmi/{linux,debian,ubuntu,fedora}
위 내용은 잘 알려지지 않은 5가지 Linux 터미널 팁 및 실험의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

PHP 컨테이너가 자동 구성을 지원할 수 있도록 핵심은 CI (Continuous Integration) 프로세스를 구성하는 데 있습니다. 1. DockerFile을 사용하여 기본 이미지, 확장 설치, 종속성 관리 및 권한 설정을 포함하여 PHP 환경을 정의합니다. 2. Gitlabci와 같은 CI/CD 도구를 구성하고 .gitlab-ci.yml 파일을 통해 빌드, 테스트 및 배포 단계를 정의하여 자동 구성, 테스트 및 배포를 달성합니다. 3. PHPUNIT와 같은 테스트 프레임 워크를 통합하여 코드 변경 후 테스트가 자동으로 실행되도록합니다. 4. Kubernetes와 같은 자동 배포 전략을 사용하여 배포 .yaml 파일을 통해 배포 구성을 정의합니다. 5. Dockerfile 최적화 및 다단계 구조를 채택하십시오

독립적 인 PHP 작업 컨테이너 환경 구축은 Docker를 통해 구현할 수 있습니다. 특정 단계는 다음과 같습니다. 1. Docker 및 DockerCompose를 기초로 설치하십시오. 2. DockerFile 및 Crontab 파일을 저장하기위한 독립 디렉토리를 만듭니다. 3. PHPCLI 환경을 정의하고 CRON 및 필요한 확장을 설치하려면 dockerfile을 작성하십시오. 4. 타이밍 작업을 정의하기 위해 Crontab 파일을 작성하십시오. 5. docker-compose.yml 마운트 스크립트 디렉토리를 작성하고 환경 변수를 구성하십시오. 6. 컨테이너를 시작하고 로그를 확인하십시오. 웹 컨테이너에서 타이밍 작업을 수행하는 것과 비교할 때 독립 컨테이너는 자원 격리, 순수한 환경, 강력한 안정성 및 쉬운 확장의 장점이 있습니다. 로깅 및 오류 캡처를 보장합니다

Linux에 소프트웨어를 설치하는 세 가지 주요 방법이 있습니다. 1. APT, DNF 또는 Pacman과 같은 패키지 관리자를 사용한 다음 Sudoaptininstallcurl과 같은 소스를 업데이트 한 후 설치 명령을 실행합니다. 2. .deb 또는 .rpm 파일의 경우 dpkg 또는 rpm 명령을 사용하여 설치하고 필요할 때 종속성을 복구하십시오. 3. Snap 또는 FlatPak을 사용하여 버전 업데이트를 추구하는 사용자에게 적합한 SudosnapInstall 소프트웨어 이름과 같은 플랫폼에 응용 프로그램을 설치하십시오. 더 나은 호환성과 성능을 위해 시스템 자체 패키지 관리자를 사용하는 것이 좋습니다.

cronisusedforprecisesCeedulingonalways-onsystems, whileanacronensuresperiodictasksrunonsystems that thatorenuouslypowered, suchaslaptops; 1. usecronforexacttiming (예 : 3amdaily) viacrontab-ewithsyntaxminhourdomondowcommand;

ChoosePop!_OS,Ubuntu,NobaraLinux,orArchLinuxforoptimalgamingperformancewithminimaloverhead.2.InstallofficialNVIDIAproprietarydriversforNVIDIAGPUs,ensureup-to-dateMesaandkernelversionsforAMDandIntelGPUs.3.EnabletheperformanceCPUgovernor,usealow-latenc

Linux는 이전 하드웨어에 적합하며 보안이 높으며 사용자 정의 가능하지만 소프트웨어 호환성이 약합니다. Windows 소프트웨어는 풍부하고 사용하기 쉽지만 리소스 활용이 높습니다. 1. 성능 측면에서 Linux는 가볍고 효율적이며 오래된 장치에 적합합니다. Windows의 하드웨어 요구 사항이 높습니다. 2. 소프트웨어 측면에서 Windows는 더 넓은 호환성, 특히 전문 도구 및 게임을 가지고 있습니다. Linux는 일부 소프트웨어를 실행하기 위해 도구를 사용해야합니다. 3. 보안 측면에서 Linux 권한 관리는 더 엄격하며 업데이트가 편리합니다. Windows는 보호되지만 여전히 공격에 취약합니다. 4. 사용 어려움 측면에서 Linux 학습 곡선은 가파르고; Windows 작동은 직관적입니다. 요구 사항에 따라 선택하십시오 : 성능 및 보안으로 Linux를 선택하고 호환성과 사용 편의성이있는 Windows를 선택하십시오.

Timesynchronizationiscrucialforsystemreliabilityandsecuritybecauseinconsistenttimecauseslogconfusion,securityfailures,misfiredscheduledtasks,anddistributedsystemerrors;1.CheckNTPstatususingtimedatectlstatustoconfirmsynchronizationandserviceactivity;2
