linux命令⾏与shell脚本编程⼤全
linux 命令⾏与shell脚本编程⼤全
第⼀章
Linux LiveCD就是从cd读取的系统,由于没法将数据写⼊到cd,所以⼀旦重启,之前操作过后的⼀切数据都会丢失。
第⼆章
第三章
1.man⼿册使⽤快捷键
使⽤空格键翻页
2.man -k 某类型 ==== 查某类型下的所有命令
3.ls
-R 递归选项
-a 显⽰隐藏⽂件
-F :⽅便区分何为⽬录何为⽂件
-l :长列表格式输出
linux会在根驱动器上创建⼀些特别的⽬录,我们称之为挂载点
ls -l my_scr[ai]pt 匹配a或i
ls -l f[a-i]ll 匹配a到i范围的或
ls -l [!a]all 匹配⾮a的通配字符串
ls my?test 通配⼀个字符
处理⽂件
1.创建空⽂件(很实⽤) :再也不⽤vi再保存了。
touch file.name ⽂件不存在则创建⽂件,⽂件存在则更新⽂件的修改时间(并不修改⽂件内容)
matlab strncmp
2.复制⽂件
-i : cp -i file1 file -i 开启强制提醒是否覆盖!python编程判断闰年
-R: cp -R Scripts/ Mod_Scripts
链接⽂件
如需要在系统上维护同⼀⽂件的两份或多份副本,除了保存多份单独的副本的物理⽂件外,还可以采⽤保存⼀份物理⽂件副本和多个虚拟⽂件副本的⽅法,这种虚拟⽂件的副本就称为链接。
1.软链接 (i结点不同,表明是不同的⽂件)
⼀个实在存在的⽂件,它指向存放在虚拟⽬录结构中某个地⽅的另⼀个⽂件。这两个通过符号链接在⼀起的⽂件彼此的内容并不相同。
软链接只是指向⽂件的⼀个⽂件,所以它的⼤⼩远⼩于⽂件。
2.硬链接 (i结点相同,表明就是同⼀个⽂件)
.硬链接会创建独⽴的虚拟⽂件,其中包含了原始⽂件的信息及位置。但他们从根本上来讲是同⼀个⽂
件。引⽤硬链接⽂件等同于引⽤源⽂件。
同时创建多个⽬录和⼦⽬录mkdir -p /askcm/sajcn/akscn
root@ubuntu:/home/zyb/CODE/LEETCODE/myleetcode/JZ_OFFER# mkdir -p ./askcm/sajcn/akscn root@ubuntu:/home/zyb/CODE/LEETCODE/myleetcode/JZ_OFFER# ls
030532_1  32_3  42  askcm  operator_reload.cpp
root@ubuntu:/home/zyb/CODE/LEETCODE/myleetcode/JZ_OFFER# cd askcm/sajcn/akscn/
查看⽂件内容
1.file “filename”
确定⽂件类型,编码信息等
2.cat
-n 给输出的内容加上⾏号
-b 只给有⽂本的内容加上⾏号 (突然知道怎么统计代码⾏号了)
<
more 分页显⽰
4.less
5.tail 显⽰⽂件的最后⼏⾏内容
-n number :具体要显⽰最后的⼏⾏。
6.head …
第四章
管理进程
1.ps
-e 指定显⽰所有运⾏在系统上的进程
-f 扩展输出信息
-
l 长格式输出
-T 显⽰跟当前终端关联的所有进程
-a 显⽰跟任意终端关联的所有进程
-r 仅显⽰运⾏的进程
实时显⽰进程的信息
结束进程
1.kill
⼀般是 kill pid
加-s更强制⼀些,避免有的进程不服管理。kill -s pid
2.kill all (⽀持进程名,⽀持通配符)
killall http* 通常是因为系统中某⼀系列进程占⽤资源过多
监测磁盘空间
2.umount (linux系统,先卸载再弹出)
3.df (所有已挂在磁盘的使⽤情况)
4.du 显⽰当前⽬录下的所有⽂件、⽬录和⼦⽬录的磁盘使⽤情况(以磁盘块为单位显⽰每个⽂件和⽬录占⽤了多⼤存储空间)
处理数据⽂件
1.排序⽂件
1.1 sort (默认字符排序)
-n 把数字识别成数字⽽不是字符,并按序排序
-M 按⽉排序
2.搜索数据
2.1 grep 【options】pattern 【file】
-v 反向搜索
-n 显⽰搜索结果的⾏
-c 有多少⾏含有匹配的模式
-e 指定多个匹配模式 grep -e t -e f file1
3.压缩数据
4.归档数据
tar tar function 【options】 object1 object2 …
function:
-
A 将⼀个已有tar归档⽂件追加到另⼀个已有tar归档⽂件
-c 创建⼀个新的tar归档⽂件
-d 检查归档⽂件和⽂件系统的不同之处
-r 追加⽂件到已有tar归档⽂件末尾
-t 列出已有tar归档⽂件的内容
-u 将⽐tar归档⽂件中已有的同名⽂件新的⽂件追加到该tar归档⽂件中
-x 从已有归档⽂件中提取⽂件
options:
-C 切换到指定⽬录
-f 输出结果到⽂件或指定file
-j 将输出重定向给bzip2命令来压缩内容
-
p 保留所有⽂件权限
-v 在处理⽂件时显⽰⽂件
-z 将输出重定向给gzip命令来压缩内容
第五章
1.进程列表
(pwd;ls;cd /etc;pwd;ls;cd -;echo $BASH_SUBSHELL) (⽣成⼀个⼦shell来执⾏)
{。。。。。。。。。。。} 不⽣成⼦shell
2.协程
协程可以同时做两件事,它在后台⽣成⼀个⼦shell,并在这个⼦shell中执⾏命令
3.理解shell内建命令
3.1外部命令
当外部命令执⾏时,会创建⼀个⼦进程(⽐如运⾏我们⾃⼰构建的程序)
3.2内部命令
内建命令和外部命令的区别在于前者不需要使⽤⼦进程来执⾏。它们已经和shell编译成⼀体,作为shell⼯具的组成部分存在。不需要借助外部的程序⽂件来运⾏。
电影源代码的主题
4.命令别名
alias li=“ls -li"
第六章
1.显⽰环境变量:
printenv
echo $HOME
2.环境遍量:
1.全局:⼤写字母,所有派⽣的shell都可以使⽤。
常量和变量怎么表示
2.局部:⼩写字母,只能⾃⼰使⽤。
⼀旦启动了bash shell,就能创建在这个shell进程内可见的局部变量
2.创建局部环境变量:
通过’='给环境变量赋值,如果要给变量赋值⼀个含有空格的字符串值,必须使⽤双引号来界定字符串⾸尾。
3.创建全局环境变量:
先创建⼀个局部环境变量,再将它导⼊全局环境变量。
zyb@zyb-ubto:~$ my_varibale=“I am Global Now”
zyb@zyb-ubto:~$ echo  I am Global Now
zyb@zyb-ubto:~$ export my_varibale
zyb@zyb-ubto:~$ bash
zyb@zyb-ubto:~$ echo  I am Global Now
创建的⼦shell改变了该值,但是并不会映射到⽗shell,只在该⼦shell中有效。
4.删除环境变量 (同样遵循全局和局部的关系)
unset
(要操作环境变量,不使⽤)
5.设置PATH环境变量 ( 同样具有全局和局部的特性 )
如何理解PATH环境变量:
以前只是跟着⽹上教程瞎设置,⼤体也了解,就是在打开⼀个程序后,系统搜索PATH中的路径,去追踪最终程序处于何位置!书上原⽂,当你在shell命令⾏界⾯中输⼊⼀个外部命令时,shell必须搜索系统来到对应的程序。PATH环境变量定义了⽤于进⾏命令和程序查的⽬录。
1.添加环境变量:(当退出系统时,对环境变量的修改将会复原)
PATH=$PATH:newpath
2.如何添加永久的环境变量?
编辑启动⽂件,并添加⾃⼰的环境变量,这些环境变量会在每次启动bash_shell会话时⽣效。
5.交互式shell进程
如果shell是作为交互式shell启动的,他就不会访问/etc/profile⽂件,只会检查HOME⽬录中的.bashrc⽂件
第七章
1.系统账户:系统上运⾏的各种服务进程,当他们运⾏时,和⽤户操作某⼀个对象⼀样,需要存在⼀个⽤户,且这个⽤户需要有操纵这个对象的权限,于是就为这些服务进程创建⼀个⾮真正的⽤户来操作他们,于是他们就叫系统⽤户。所有运⾏在后台的服务都需要⼀个系统⽤户登陆到linux系统上。
(⽤户 : 密码 : uid : gid : home : shell )
2.⽤户⽂件 /etc/passwd
密码⽂件 /etc/shadow
3.useradd -m newuserhtml文本框下拉列表
userdel (默认情况下,只删除⽤户不删除其⽂件)
4.修改⽤户
1.usermod
选项:
my aribalezyb @zyb −v ubto : my aribalezyb @zyb −v ubto : ,要⽤到变量,使⽤
-c, --comment 注释 GECOS 字段的新值
-d, --home HOME_DIR ⽤户的新主⽬录
-e, --expiredate EXPIRE_DATE 设定帐户过期的⽇期为 EXPIRE_DATE
-f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态
-g, --gid GROUP 强制使⽤ GROUP 为新主组
-G, --groups GROUPS 新的附加组列表 GROUPS
-
a, --append GROUP 将⽤户追加⾄上边 -G 中提到的附加组中,
并不从其它组中删除此⽤户
-h, --help 显⽰此帮助信息并退出
-l, --login LOGIN 新的登录名称
-L, --lock 锁定⽤户帐号
-m, --move-home 将家⽬录内容移⾄新位置 (仅于 -d ⼀起使⽤)
-o, --non-unique 允许使⽤重复的(⾮唯⼀的) UID
-p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码
-s, --shell SHELL ⽤户帐号的新登录 shell
-u, --uid UID ⽤户帐号的新 UID
-U, --unlock 解锁⽤户帐号linux建立文件系统的命令
-
Z, --selinux-user new SELinux user mapping for the user account
2.passwd、chpasswd
chpasswd < (键值对⽂本):批量修改⽤户的密码
\3. chsh:修改shell chsh -s /bin/tsch ⽤户
chfn: chfn ⽤户
chage:管理账户的有效期
chage
⽤法:chage [选项] [登录]
选项:
-d, --lastday 最近⽇期 将最近⼀次密码设置时间设为“最近⽇期”
-E, --expiredate 过期⽇期 将帐户过期时间设为“过期⽇期”
-
h, --help 显⽰此帮助信息并退出
-I, --inactive INACITVE 过期 INACTIVE 天数后,设定密码为失效状态
-l, --list 显⽰帐户年龄信息
-m, --mindays 最⼩天数 将两次改变密码之间相距的最⼩天数设为“最⼩天数”-M, --maxdays 最⼤天数 将两次改变密码之间相距的最⼤天数设为“最⼤天数”-W, --warndays 警告天数 将过期警告天数设为“警告天数”

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。