常用的Linux指令
ls 显示文件名
cat 显示文本文件内容
rm 删除文件
less 和 more 分页程序,less退出时会显示END,more会直接退出shell
hostname 显示正在登陆的系统名,取决于hosts文件
使用tab键进行补全
cp 复制文件 通过网络在两个系统中进行复制操作可使用scp,由于复制过程中没有警告信息,所以,可以添加 -i 选项来交互式复制,同mv一样,可以在复制的时候顺便改名
mv 移动文件,可以重命名文件,用法与cp一致。可以重命名目录和移动目录。
lpr 打印文件,然鹅,我并没有打印机 lpq 查看状态 lprm 移除作业
grep 查找字符串,有大用
head 显示文件的头部,默认为前十行,可指定‘-数字’来指定显示几行,也可使用选项来进行块显示
tail 显示文件尾部,使用-f选项监控逐渐增长的文件,在docker的启动脚本中有奇效
sort 按顺序显示文件内容
uniq 忽略文件中重复的行,效果和sort -u一致
diff 比较两个文件,比较源代码时比较有用,但是还是习惯于git指令中的diff
file 识别文件内容
| (管道) 实现进程间的通信,管道仅处理数据分支,不处理资源分支。实际上,管道是将一个进程的标准输出重定向为另一个进程的标准输入。
wc 计算单词字符数
echo 显示文本,理解中与编程语言中的print类似,不过听说和神话里的回声也形似。
使用echo使用’>’或’>>’可以将输出重定向到文件,并创建该文件。不同的是,’>’是重写,’>>’是追加。
date 显示日期和时间
script 记录shell会话信息,我认为是有意识的进行记录操作,类似与history,但是会显示具体的操作结果。结果会默认保存在一个名为typescript的文件中,如需进行编辑,需要使用dos2unix将文件行末的回车替换为unix结尾符。
dos2unix unix2dos unix2mac 文本文件的转换,主要针对的是windows和linux下的换行和结束符。//centos里默认没有添加,所以得yum装
bzip2 压缩文件,在压缩时如果不添加’-k’选项,会将原先的文件删除。生成的压缩文件后缀为.bz2
bzcat 和 bunzip2 解压缩文件。bzcat有显示内容的作用。bzip2recover 可以从介质错误中恢复一定的数据。
gzip和zcat 压缩效率较bzip2低,生成的压缩文件后缀为.gz。需要与zip和unzip作区分,zip适用于windows的相关压缩包。
tar 打包和解包文件,类似的程序有cpio和pax
compress 压缩文件,后缀名为.Z
定位脚本
which 和 whereis 定位应用程序。which找第一个,(实际运行的),whereis找相关。which和whereis不能显示内置命令,需要使用type来查询是否为内置命令。内置命令是常驻内存的命令。
locate 搜索文件,用于在本地系统上搜索文件。使用locate(mlocate)之前,updatedb必须构建或更新locate数据库。该数据库由cron脚本每天更新一次。
who 列出系统上的用户,finger效果一致,但显示较全面,但是一般处于安全考虑需要禁用finger。
uptime 显示系统负载和持续运行时间信息
w 列出系统上的用户,uptime和who的集合体
free 显示内存使用信息
write 与其他用户通信,发送消息
mesg 拒绝或接受消息
ls 列出当前目录下的文件和文件夹。
mkdir 创建目录
cd 更改工作目录
rmdir 删除目录 慎用rm -rf
附,Linux文件夹的一些命名和其作用
/ 根目录
/bin 基本命令的二进制文件
/boot 引导加载程序的静态文件
/dev 设备文件
/etc 本地计算机系统的配置文件
/etc/opt 包含/opt目录下插件软件的配置文件
/etc/X11 关于X Windows系统的本地计算机的配置文件
/home home目录,你懂的
/lib 共享库,查找动态库的第一优先级
/lib/modules 可加载的内核模块
/mnt 临时挂载文件系统的挂载点
/opt 可选的插件软件包
/proc 关于内核和进程信息的虚拟文件系统
/root root用户主目录
/run 运行的临时数据
/sbin 基本二进制系统文件
/sys 设备的伪文件系统
/tmp 临时文件夹
/usr 辅助层次结构
/usr/bin 大多数用户命令
/usr/games 游戏和教学程序
/usr/include C程序包含头文件
/usr/lib 库
/usr/local 本地层次结构
/usr/sbin 用于系统管理的次要二进制文件
/usr/share 与体系结构无关的数据
/usr/share/doc 各种文档
/usr/share/info GNU info系统的主目录
/usr/share/man 联机手册
/usr/src 源代码
/var 变量数据。系统运行时可能会改变的文件
/var/log 日志文件
/var/spool 假脱机应用数据
//承接上文
chmod 改变访问权限
eg. chmod a+rw file 对所有用户增加file文件的读写权限,+增加
chmod o-rx file 对其他用户取消file文件的读和操作权限 -取消
a 所有用户,o其他用户 g组用户 u文件所有者
权限可由三位二进制数进行表示,rwx分别对应二进制位上的1或0
eg. rw-rw---- 660
如果是4个数字,第一个数字代表sticky(1)、setgid(2)和setuid(4)的权限
setuid 和setgid 权限,不要编写具有setuid和setgid的shell脚本
ls -l 和getfacl的功能一致,除了排版
ln 创建硬链接 ln existfile destlink
创建符号链接 ln -s fileordir destlink
创建的链接可以由rm进行删除
ls中的-L和-H选项可以解引用,-L是完全解引用,-H是指定符号链接文件后会将链接进行解引用
readlink readlink命令显示一个文件的绝对路径,使用-f选项可以跟踪嵌套的符号的链接
chgrp 改变文件的组所有权
nocolobber 避免覆盖文件 eg. set -o nocolobber 启用 设置后,可以使用管道来忽略设置,>|
/dev/null 使数据消失 在docker执行初始脚本时,很有用
tr string1 string2
| 管道可以使用命令来用作过滤器作用
tee 双向输出
& 在命令行末尾填入可将任务置于后台运行
fg 将后台程序移至前台 bg 将程序移至后台运行 kill 终止后台程序 jobs查看当前任务(运行或挂起) ps当前运行或挂起
? 通配符,单字符匹配,无法对以.开头的文件
* 通配符,多字符匹配
[] 仅匹配项。eg. memo[17a] 通配 memo1 memo7 memoa [a-z]表示从a到z的小写字符 [!a]意为将除a的所有匹配,[^a]同理
info bash shell builtin 列出bash的内置命令