文件和目录列表
ls 按字母顺序输出目录和文件
-F 会在目录后加上"/"
-a 显示所有文件包括隐藏文件
-R 递归列出目录下子目录的文件
-d 只列出目录本身信息,不列出其内容
-l 列出文件的相关信息 文件类型 权限 链接总数 所属主 所有组 修改时间 文件/目录名
用字符串做参数 指定要显示的文件
--time=atime 显示出访问时间
文件处理
创建空文件 touch touch my_file
touch 后面跟已存在的文件 会改变文件的创建时间 touch my_file
touch -a后跟已存在的文件 改变文件的访问时间 touch -a my_file
复制文件 cp cp source destination
cp file file1复制文件并重命名为file1
目标文件已存在会被覆盖
-i 参数会询问是否覆盖已存在文件
cp file filedir/ 复制文件到指定目录中
-R递归复制整个目录 -r也可以
cp -R dir1/ dir2 如果dir2不存在会自动创建
-p 连同档案的属性一起复制过去,而非使用预设属性
-l 进行硬式连结 (hard link) 的连结档建立,而非复制档案本身
-s 复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案
-f 为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制
-d 若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身
-u 若 destination 比 source 旧才更新 destinatio
复制文件夹下的所有文件到另一文件夹且目标文件夹存在 cp -r /srcdir/. /dstdir
创建链接文件 ln
ln file hard_file 创建硬链接hard_file
ln -s file soft_file 创建软链接
软连接类似原文件的快捷方式,原文件删除链接文件失效
硬链接 相当于cp -p加同步更新,修改原文件硬链接文件也会改变,删除原文件硬链接还存在保存原文件内容
重命名或移动文件 mv
mv file file_rename 重命名文件
mv file /home/temp/ 移动到目的目录下
mv file /home/temp/file_rename 移动并重命名
mv dir dir1 移动目录
-i 询问是否覆盖
删除文件 rm
-i 删除前询问是否删除
-f 参数强制删除
-r 递归删除目录
rm -i file 删除文件
rm -r dir 删除目录
删除当前目录下的所有文件 find . -type f -delete或find . -type f -exec rm -f {} \; 或find . -type f | xargs rm -f
创建目录 mkdir
-p递归创建目录
mkdir -p /home/temp/test
mkdir new_dir 创建目录new_dir
删除目录
remdir 只能删空目录
展开目录 tree
tree dir 展示目录、子目录以及其中的文件
查看文件内容
查看文件类型 file
查看整个文件
cat 显示所有内容
-n参数给所有的行加上行号
-b只给有文本的行加上行号
-T不出现制表符
more 分页显示
less 分页显示 支持上下翻页
查看部分文件
tail 显示文件最后几行 默认10行
-n参数可以指定要显示的行数 比如tail -n 5显示最后5行
-f参数可以在其他进程使用该文件时查看文件的内容,tail命令保持活跃不断的显示添加到文件中的内容,可以用来实时检 测系统日志
head 显示开头几行 默认10行
-n参数指定要显示几行
处理进程
监测进程
ps 显示进程ID 运行在哪个终端 已用CPU时间等信息
ps在不同的类unix中有不同的参数风格 BSD的风格是不用"-"
a显示跟任意终端关联的进程
g显示所有进程
r仅显示运行中的进程
x显示所有进程甚至包括未分配任何终端的进程
l采用长模式显示
u基于用户的格式显示
top 实时显示进程信息
top在运行时可以使用命令 是在运行时不是在top后面加上
f选择对输出进行排序的字段
d修改轮询间隔
q退出top
结束进程
kill 通过PID结束进程 k如:ill 6784
kill默认发送TERM信号结束进程
-s参数指定要发送的信号 kill -s kill 6784
KILL 9 无条件终止
HUP 1 挂起
INT 2 中断
QUIT 3 结束运行
SEFV 11 段错误
TERM 15 尽可能终止
STOP 17 无条件停止运行,但不终止
killall 通过进程名而不是PID来结束进程,也可以使用通配符
kill http*
监测磁盘空间
挂载存储媒体 mount 手动挂载设备媒体(大部分都支持自动挂载)
mount 命令直接输出当前系统上挂载的设备列表
mount -t type device directory 手动挂载基本命令
type指定了磁盘被格式化的文件系统类型
device存储文件的设备
directory 挂载点
例如:mount -t vfat /dev/sdb1 /media/disk
卸载移动设备 umount 从linux上移除一个移动设备不能直接移除要先鞋子
umount directory | device 可以使用设备文件或者挂载点卸载
例如 umount /dev/sdb1
查看设备磁盘空间
df
显示输出设备文件位置、容量、已用、剩余、已用比例、挂载点
-h 输出的磁盘空间数字变成M或G的格式
du
显示某个特定目录的磁盘使用情况,默认是当前目录,包括目录和子目录,按照目录层级最底部开始,一次显示文件、子目录、目录
-c 参数显示所有已列出文件总大小
-h 参数按用户易读的格式输出大小
-s 显示每个输出参数的总计
处理数据文件
排序数据 sort
-n 把数字识别成数字而不是字符
-M 按月排序
-r 反序
搜索数据 grep
grep 在输入或指定文件中查找包含匹配模式的字符的行
grep “查找的内容” 搜索路径
grep good file 在文件file中搜索能匹配模式good的文本行
-v 参数输出不匹配的行
-n 显示匹配模式的行所在行号
-c 只显示输出有多少行匹配
-e 指定多个匹配模式 例如 grep -e one -e two file
匹配模式可以用正则表达式
-r 有目录
压缩文件
gzip
gzip myprog 压缩文件
gzip my* 使用通配符来批量压缩
gzcat 查看压缩过的文本文件内容
gunzip 解压文件
rar
压缩:rar a 压缩包名(无后缀) 压缩内容
解压缩:rar x 压缩包名 解压目录
zip/unzip
压缩:zip 参数(目录:-r) 压缩包名 原料
解压:unzip 压缩包名 -d 解压目录
归档数据
tar
参数 :
-c 创建压缩文件
-x 提取文件
-v 处理文件时显示文件
-f 指定压缩包名字
-z 将输出重定向给gzip命令压缩文件 xxx.tar.gz
-j 使用bzip2的方式压缩文件 xxx.tar.bz2
-A 将一个已有 tar归档文件追加到另一个已有tar文件
-C 解压到指定目录
-r 追加文件到已有tar文件末尾
-t 列出已有tar文件的内容
压缩
tar 参数 压缩包名 原材料
tar zcvf test.tar.gz file dir
解压
tar zxvf test.tar.gz -C 解压目录
tar jxvf test.tar.bz2 -C 目录
tar tf test.tar 列出test.tar的内容
shell命令 有内建命令和外部命令
shell 的内建命令会在当前shell中执行,外部命令会在子shell中执行
显示命令文件位置
which 只显示外部命令文件
which ps
type -a 显示出每个命令的两种实现内部和外部(都存在的情况下)
查看使用历史命令
命令末尾加上字符 &,可以进入后台模式
jobs命令可以显示后台作业信息
history 查看最近用过的命令列表
history -a将历史命令强制写入.bash_history文件中
!12 惊叹号加命令在历史了列表中的编号,使用历史列表中的命令
!!重用最近的命令
命令别名
alias 为常用命名创建另一个名称
alias -p查看当前可用的别名
alias li=‘ls -li’
wc 命令对数据中的文本进行计数
输出三个值:文本行数、文本词数、文本字节数
$? 返回上个已执行命令的退出状态码
read命令 从标志输入(键盘)或另一个文件描述符中接收输入。在收到输入后,read命令会将数据放进一个变量
-p 选项,允许你直接在 read 命令行指定提示符
-t 选项指定了 read 命令等待输入的秒数
-s 选项可以避免在read命令中输入的数据出现在显示器。实际只是read令会将文本颜色设成跟背景色一样,可用于密码输入
read 命令来读取Linux系统上文件里保存的数据。每次调用 read 命令,它都会从文件中读取一行文本。当文件中再没有内容时, 会退出并返回非零退出状态码。其中最难的部分是将文件中的数据传给 read 命令。最常见的方法是对文件使用 cat 命令,将结果通过管道直接传给含有 read 命令的 while 命令
#!/bin/bash
# reading data from a file
#
count=1
cat test | while read line
do
echo "Line $count: $line"
count=$[ $count + 1]
done
echo "Finished processing the file"
IFS 环境变量
环境变量 IFS ,叫作内部字段分隔符(internal field separator)。IFS 环境变量定义了bash shell用作字段分隔符的一系列字符。默认情况下,bash shell会将下列字符当作字段分隔符:空格、制表符和换行符。通过修改 IFS 环境变量,就能强制 for 命令将文件中的每行都当成单独的一个条目来处理,即便数据中有空格也是如此。一旦从文件中提取出了单独的行,可能需要再次利用循环来提取行中的数据。
#!/bin/bash
IFS.OLD=$IFS
IFS=$'\n'
for entry in $(cat /etc/passwd)
do
echo "Values in $entry –"
IFS=:
for value in $entry
do
echo "
$value"
done
done
$
shell 命令行操作
删除
ctrl d 删除光标位置后面一个字符
ctrl u 删除光标前所有字符
crtl k 删除光标后所有字符
ctrl h 删除光标前一个字符
移动
ctrl b 向前移动
ctrl f 向后移动
ctrl a 光标移动到头部
ctrl e 光标移动的尾部
ctrl p 向上
ctrl n 向下
https://blog.csdn.net/samxx8/article/details/40618781