Linux笔记(管道符/作业控制,shell变量,环境变量配置文件,常见问题)

简介:

一、管道符和作业控制

管道符:前面输出的结果交给后面的命令

例如:find ./*.txt | wc -l             显示当前文件下以.txt.结尾的文件有多少个


作业控制

ctrl + z  暂停当前

jobs   丢在后台的任务列出来

fg     后台的命令恢复到前台

bg     前台的命令丢到后台

&      命令后加&,直接把命令丢到后台


二、shell变量

系统的变量通常是大写的英文字母

evn    查看常用的系统变量

set    命令多了很多变量,包括用户自定义的变量

unset  去除变量

变量名规则:字母,数字,下划线,首位不能为数字,有特殊符号需要用单引号括起来。

echo &SSH_TTY    查看自己连接那个tty


export    全局变量(向下的关系,他的子shell会生效,但是父shell不会。)


三、环境变量配置文件

1、当你直接在机器login界面登陆、使用ssh登陆或者su切换用户登陆时,.bash_profile 会被调用来初始化shell环境

2、当你不登陆系统而使用ssh直接在远端执行命令,.bashrc 会被调用
3、当你已经登陆系统后,每打开一个新的Terminal时,.bashrc 都会被再次调用。

.bash_logout   用户退出时要做的命令


echo $PS1   可以查看当前目录,指定的是命令行前的一段,可以指定格式。

修改的话直接用PS1= ''注意这里要用单引号,如果需要永久生效的话,需要/etc/profile中输入 export PS1="[\u@\h \W]"\$ ,如果当前用户的话,需要在.bash_profile中输入


四、问题解答

1. 设置环境变量 HISTSIZE , 使其能够保存10000条命令历史。
答:HISTSIZE=10000   如果要永久有效需要vi  /etc/profile  将HISTSIZE=10000 再保存退出。

2. 为什么如果这样设置PS1 (PS1="[\u@\h \W]\$ ")  显示的结果和我们预想的不一样,那要如何设置才能恢复原来默认的?
答:因为是双引号括起来的,$为脱意字符有特殊意义, 改成PS1='[\u@\h \W]\$ '就能恢复默认的。

3. 想办法把当前目录下的文件的文件名中的小写字母全部替换为大写字母。
答: ls -a | tr 'a-z' 'A-Z'      

4. 使用sort以":"为分隔符,对/etc/passwd文件的第5段排序。
答:cat /etc/passwd | sort -t: -k5

5. 使用cut以":"为分隔符,截图/etc/passwd的第三段字符。
答:cat /etc/paswwd | cut -d ':' -f 3

6. 简述这几个文件的作用: /etc/profile, /etc/bashrc, .bashrc, .bash_profile.
答:/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
      /etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。
     ~/.bashrc:该文件包含专用于单用户的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取。
     ~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息即可以设置用户的特定程序和启动环境。
   
7. export 的作用是什么?
答:export是声明变量的意思,让该shell的子shell也知道该变量的值是多少.如果export后面不加任何变量名,则它会声明所有的变量。

8. linux下自定义变量要符合什么样的规则呢?  
答:a.设定变量的格式为 “a=b”, 其中a为变量名,b为变量的内容,等号两边不能有空格;
       b.变量名只能由英、数字以及下划线组成,而且不能以数字开头;
       c.当变量内容带有特殊字符(如空格)时,需要加上单引号;

9. 如何把要运行的命令丢到后台跑?又如何把后台跑的进程给调到前台?
答:Ctrl+z 或是在命令最后加上&        fg +作业号

10.  列出当前目录下以"test"开头的文件和目录。
答:ls -d test*

11.  如何把一个命令的输出内容不仅打印到屏幕上而且还可以重定向到一个文件内?
答:echo xxxx |tee 1.txt  将xxxx打印到屏幕且输入到1.txt

12. 假如有个命令很长,我们如何使用一个简单的字符串代替这个复杂的命令呢?请举例说明。
答:alias dns='vi /etc/resolv.conf'   再在命令行输入dns,就进入到/etc/resolv.conf文件里了

13. 我如何实现这样的功能,把一条命令丢到后台运行,而且把其正确输出和错误输出同时重定向到一个文件内?
答:例子:cat 2.txt 3.txt>1.txt 2>&1 &  (2.txt为存在的文件    3.txt为不存在的文件)  1.txt里面包含正确输出和错误输出
0、1和2分别表示标准输入、标准输出和标准错误信息输出,1一般为默认的。

14. 如何按照大小(假如按照10M)分隔一个大文件,又如何按照行数(假如10000行)分隔?
答:split -b10000000 1.txt     

split -l 10 1.txt       wc -l *看所有文件的行数

15. 做实验,搞明白 ; && || 这三个符号的含义。
答:command1 ; command2  表示command1 和 command2为两个单独分开执行的命令,互不影响。
       command1 && command2  1假为假 ,若command1为假时,则整条语句是假,不用执行command2,若command1为真时,再去执行command2
       command1 ||   command2  1真为真,若command1为真时,则整条语句是真,不用执行command2,若command1为假,再去执行command2

16. 如果只想让某个用户使用某个变量如何做?
答:例子仅在root下设置变量: echo "export myname=baozhen">>~/.bashrc   source ~/.bashrc(使配置生效)  echo $myname

17. 使用哪个命令会把系统当中所有的变量以及当前用户定义的自定义变量列出来?
答:set











本文转自 小新锐 51CTO博客,原文链接:http://blog.51cto.com/13407306/1982611,如需转载请自行联系原作者
目录
相关文章
|
7月前
|
Linux 开发工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
7种比较Linux中文本文件的最佳工具
|
5月前
|
存储 数据管理 Linux
区分Linux中.tar文件与.tar.gz文件的不同。
总之,".tar"文件提供了一种方便的文件整理方式,其归档但不压缩的特点适用于快速打包和解压,而".tar.gz"文件通过额外的压缩步骤,尽管处理时间更长,但可以减小文件尺寸,更适合于需要节约存储空间或进行文件传输的场景。用户在选择时应根据具体需求,考虑两种格式各自的优劣。
845 13
|
6月前
|
安全 Linux
Linux赋予文件000权限的恢复技巧
以上这些步骤就像是打开一扇锁住的门,步骤看似简单,但是背后却有着严格的逻辑和规则。切记,在任何时候,变更文件权限都要考虑安全性,不要无谓地放宽权限,那样可能
206 16
|
7月前
|
Linux
【Linux】 Linux文件I/O常见操作技巧
以上就是Linux文件I/O操作的一些技巧,接纳它们,让它们成为你在Linux世界中的得力伙伴,工作会变得轻松许多。不过记住,技巧的运用也需要根据实际情况灵活掌握,毕竟,最适合的才是最好的。
247 28
|
6月前
|
存储 Linux 数据处理
深入剖析Linux中一切即文件的哲学和重定向的机制
在计算机的奇妙世界中,Linux的这套哲学和机制减少了不同类型资源的处理方式,简化了抽象的概念,并蕴藏着强大的灵活性。就像变戏法一样,轻轻松松地在文件、程序与设备之间转换数据流,标准输入、输出、错误流就在指尖舞动,程序的交互和数据处理因此变得既高效又富有乐趣。
112 4
|
7月前
|
Ubuntu Linux
"unzip"命令解析:Linux下如何处理压缩文件。
总的来说,`unzip`命令是Linux系统下一款实用而方便的ZIP格式文件处理工具。本文通过简明扼要的方式,详细介绍了在各类Linux发行版上安装 `unzip`的方法,以及如何使用 `unzip`命令进行解压、查看和测试ZIP文件。希望本文章能为用户带来实际帮助,提高日常操作的效率。
1127 12
|
8月前
|
Linux Shell
Linux系统下快速批量创建和删除文件的方法
总的来说,使用shell脚本来批量处理文件是一种非常强大的工具,只要你愿意花时间学习和实践,你会发现它能大大提高你的工作效率。
482 19
|
7月前
|
运维 监控 中间件
Linux运维笔记 - 如何使用WGCLOUD监控交换机的流量
WGCLOUD是一款开源免费的通用主机监控工具,安装使用都非常简单,它可以监控主机、服务器的cpu、内存、磁盘、流量等数据,也可以监控数据库、中间件、网络设备
|
6月前
|
Linux
linux文件重命名命令
本指南介绍Linux文件重命名方法,包括单文件操作的`mv`命令和批量处理的`rename`命令。`mv`可简单更改文件名并保留扩展名,如`mv old_file.txt new_name.txt`;`rename`支持正则表达式,适用于复杂批量操作,如`rename 's/2023/2024/' *.log`。提供实用技巧如大小写转换、数字序列处理等,并提醒覆盖风险与版本差异,建议使用`-n`参数预览效果。
|
8月前
|
缓存 Linux
如何创建Linux交换文件?Linux交换文件最新创建方法
Swap是Linux中的虚拟内存空间,用于在物理内存不足时将非活动进程移至磁盘,从而优化活动进程的性能。通过创建交换文件(如1GB),可灵活调整交换空间而无需重新分区。步骤包括:使用`fallocate`或`dd`创建文件、设置权限 (`chmod 600`)、格式化 (`mkswap`)、启用交换 (`swapon`)、修改`/etc/fstab`以持久化配置,以及调整`vm.swappiness`值(默认60,建议从10开始)来平衡内存与交换的使用。最后通过`swapon -s`检查状态并重启生效。此方法适用于VPS和专用服务器,需以root用户操作。
236 2