Ubuntu-Basis-3rd
周日,晴,记录生活分享点滴
参考博客:https://www.cnblogs.com/resn/p/5800922.html
推荐阅读:https://www.runoob.com/linux/linux-tutorial.html
环境变量
自定义账户的个性化环境的三个重要文件
(参考博客:https://blog.csdn.net/u011479200/article/details/86501366)
.bash_history :保存了当前用户使用过的历史命令,方便查找
.bash_logout :用户登出时执行的命令
.bashrc :登录用户以后所加载的配置文件,输入 cp/etc/skel/ ,即用户定义别名和函数
各个文件的作用域
1. /etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。
2. /etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取(即每次新开一个终端,都会执行bashrc)。
3. ~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次。默认情况下,设置一些环境变量,执行用户的.bashrc文件。
4. ~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
5. ~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。
6. ~/.bash_profile: 也可能是 .profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。
PATH变量的设置
env : 查看当前环境变量
export : 设置或显示环境变量。
source : 在当前bash环境下读取并执行FileName中的命令。该filename文件可以无"执行权限"
env export name = "SN" source /etv/profile
补充:
- 刚登录Linux时,首先启动 /etc/profile 文件 , ~/.bash_profile、 ~/.bash_login、 ~/.profile。 如果 ~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件。
- cd 默认是当前用户的家目录,用~表示
- 所有环境变量字母要大写
- 修改PATH环境变量:
- (当前用户)~/.profile --> PATH = "要增加的路径 : $PATH"
- (所有用户)etc/profile --> PATH = "要增加的路径 : $PATH" (不推荐)
echo
echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开并在最后加上换行号。
-n 不要在最后自动换行
-e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:(不常用)
\a 发出警告声;\b 删除前一个字符;\c 最后不加上换行符号;\f 换行但光标仍旧停留在原来的位置;\n 换行且光标移至行首;\r 光标移至行首,但不换行;\t 插入tab;\v 与\f相同
管道符
| :将前一个命令的结果 交给后一个命令使用
补充:查看IP地址:windows -->ipconfig;ubuntu -->ifconfig
重定向
> 重定向,如果的文件存在,则覆盖文件内容,文件不存在时创建文件
>> 重定向,如果的文件存在,则向文件追加内容,文件不存在时创建文件
1> 标准正确输出,同上(覆盖或创建)
1>> 标准正确输出,同上(添加或创建)
2> 标准错误输出,同上(覆盖或创建)
2>> 标准错误输出,同上(添加或创建)
&> 标准正确输出和标准错误输出,同上(覆盖或创建)
locate
locate:查找文件,从生成的数据库中进行查找
locate /etc/sh # 搜索etc目录下所有以sh开头的文件。 locate ~/a # 搜索用户主目录下,所有以a开头的文件。 locate -i ~/a # 搜索用户主目录下,所有以a开头的文件,并且忽略大小写。
补充:数据库正常每天4点自动更新,如果希望立即查找到所添加的信息,需要更新数据库 sudo updatedb
find
find不同于locate,先从目录中进行查找
使用方法: find path -option [-print ] [ -exec -ok command ] {} \; ###### 根据文件名查找 ####### find / -name filename 再根目录里面搜索文件名为filename的文件 find /home -name "*.txt" find /home -iname "*.txt" # 忽略大小写 ###### 根据文件类型查找 ####### find . -type 类型参数 f 普通文件 l 符号连接 d 目录 c 字符设备 b 块设备 s 套接字 p Fifo ###### 根据目录深度查找 ####### find . -maxdepth 3 -type f # 最大深度为3 find . -mindepth 2 -type f # 最小深度为2 ######### 根据文件的权限或者大小名字类型进行查找 ########### find . -type f -size (+|-)文件大小 # +表示大于 -表示小于 b —— 块(512字节) c —— 字节 w —— 字(2字节) k —— 千字节 M —— 兆字节 G —— 吉字节 ######### 按照时间查找 ############ -atime(+|-)n # 此选项代表查找出n天以前被读取过的文件。 -mtime(+|-)n # 此选项代表查找出n天以前文件内容发生改变的文件。 -ctime(+|-)n # 此选项代表查找出n天以前的文件的属性发生改变的文件。 -newer file # 此选项代表查找出所有比file新的文件。 -newer file1 ! –newer file2 # 此选项代表查找比file1文件时间新但是没有file2时间新的文件。 # 注意: # n为数字,如果前面没有+或者-号,代表的是查找出n天以前的,但是只是一天之内的范围内发生变化的文件。 # 如果n前面有+号,则代表查找距离n天之前的发生变化的文件。如果是减号,则代表查找距离n天之内的所有发生变化的文件。 # -newer file1 ! –newer file2中的!是逻辑非运算符 ######### 按照用户/权限查找 ############ -user 用户名:根据文件的属主名查找文件。 -group 组名:根据文件的属组名查找文件。 -uid n:根据文件属主的UID进行查找文件。 -gid n:根据文件属组的GID进行查找文件。 -nouser:查询文件属主在/etc/passwd文件中不存在的文件。 -nogroup:查询文件属组在/etc/group文件中不存在的文件 -perm 777: 查询权限为777的文件 来自: http://man.linuxde.net/find ######## 查找时指定多个条件 ############ -o:逻辑或,两个条件只要满足一个即可。 -a:逻辑与,两个条件必须同时满足。 find /etc -size +2M -a -size -10M ######### 对查找结果进行处理 ############# -exec shell命令 {} \; -ok shell命令 {} \; 其中-exec就是代表要执行shell命令,后面加的是shell指令,再后面的“{}”表示的是要对前面查询到的结果进行查询,最后的“\;”表示命令结束。需要注意的是“{}”和“\”之间是要有空格的。而-ok选项与-exec的唯一区别就是它在执行shell命令的时候会事先进行询问,-print选项是将结果显示在标准输入上 find /home -name “*.txt” -ok ls -l {} \; find /home -name “*.txt” -ok rm {} \;
补充:
反引号(在linux中~下面的符号)作用是把里面的内容当作命令执行
df
df 后加上 -Th 用来查看分区是如何挂载的
-T : 显示文件系统类型 -h : 以能显示的最大单位显示 df -Th
du
-s : 如果后面是目录,只显示一层 -h : 以能显示的最大单位显示 du dirname # 显示dirname下所有目录及其子目录的大小 du -sh dirname 显示dirname的大小
mount
mount / umount 3 挂载和卸载设备
mount # 查询挂在设备及属性 # 挂载光盘 mount -t iso9660 /dev/cerom /mnt mount /dev/sr0 /mnt # 重新挂载设备 mount -o remount,rw /mnt # 重新挂载设备并设置rw属性 # 挂载iso文件 mount a.iso -o loop /mnt umount /mnt # 卸载设备 umount -l /mnt # 强制卸载
补充:
/dev/sr0 = dev/cdrom 表示挂载的光驱
mnt 代表挂载点