本文共 3658 字,大约阅读时间需要 12 分钟。
在指定目录下同时创建多个文件夹,例:在dir目录下创建三个子文件夹,dir1,dir2,dir3
$ mkdir dir# 新建一个文件夹$ mkdir -p dir/{ dir1,dir2,dir3}# 同时新建多个文件夹
which命令可以查找已经加入$PATH(环境变量)后的命令的路径。
$ which nmap/usr/bin/nmap# 查看nmap命令所在路径$ which ls ls: aliased to ls --color=auto# ls命令实际执行的是ls --color=auto
locate命令可以快速查找文件,locate我理解有点像Windows的everything的文件搜索工具。
locate是在locate.db中快速查找,比全盘扫描查找速度快,updatedb命令可以更新locate.db$ locate xmpp-info.nse/usr/share/nmap/scripts/xmpp-info.nse# 查找xmpp-info.nse文件$ sudo updatedb# 更新locate.db数据库
find命令功能更丰富,可以查找指定权限、用户、修改时间、文件大小等,除了查找文件外,还支持执行命令。
查找文件示例:$ find / -name FILENAME -type f 2>/dev/null# 查找FILENAME文件,并过滤掉error信息。
which是在PATH环境变量中查找,locate和find都是文件查找,locate速度快,find功能更强大。
$ sudo systemctl start ssh# 启用ssh服务$ sudo ss -antlp | grep sshd# 查询ssh服务进程$ sudo systemctl enable ssh# 将ssh服务加入开机启动项$ systemctl list-unit-files# 查看服务状态及是否开机启动
$ sudo apt update# 更新apt本地数据库$ sudo apt upgrade# 更新所有可更新的内容,包括系统更新。$ sudo apt upgrade nmap# 若要更新特定工具,则在upgrade后指定需要更新的工具名称。$ apt-cache search nmap# 在apt本地缓存数据库中查找是否有nmap软件。**注意:利用apt-cache search查找的是软件包的描述中是否包含搜索的关键字,而非软件包名词。**$ apt show PACKAGE-NAME# 显示详情,PACKAGE-NAME是完整的软件包名称,apt-cache找到某软件包后,用apt show显示详情。$ apt install PACKAGE-NAME# 安装指定软件包$ apt remove --purge PACKAGE-NAME# 卸载指定软件。--purge参数将删除所有数据,不指定该参数则保留用户配置数据。
当无法用apt安装时,可以下载安装包,用dpkg本地安装。
$ sudo dpkg -i package.deb# -i参数,执行安装
env
可以查看详细的环境变量信息
echo $PATH
,可以查看设置的PATH变量信息。 echo $HOME
,查看用户的home目录路径。 echo $PWD
,查看当前所在路径,跟pwd命令的输出内容相同。 history
命令可以查看历史输入命令。
export HISTTIMEFORMAT='%F %T '
sort&uniq&cut&sed&awk是常用的针对文件的操作命令,功能不同可以结合起来使用。
$ cat access.log | cut -d " " -f 1 | sort | uniq -c | sort -urn1038 208.68.234.9959 208.115.113.9122 208.54.80.24421 99.127.177.958 70.194.129.341 201.21.152.44Listing# 如上,将access.log文件中的IP地址过滤出来(cut),并进行去重(uniq)展示重复出现次数,并排序(sort)。
awk命令不同于cut,可以指定多个字符作为切割的标志。
$ echo "this is test and test is this and test." | awk -F "and" '{print $1,$3}'this is test test.# -F参数,指定切割标志, '{print $1,$3}' 指定数据切割后的第一块内容和第三块内容。
在命令模式下输入:
dd
可以删除光标所在行yy
可以复制光标所在行p
可以粘贴复制的行x
可以删除光标所在字符nano操作更便捷一些,支持Ctrl+c,ctrl+v,ctrl+s,不过nano不一定是系统默认安装的。
简单对比两个文件的差异。
comm 文件1 文件2
输出结果第一列是文件1独有的内容,第二列是文件2独有的内容,第三列是两个文件共有的内容。 如果只关注第三列共有内容,可以通过“-12”来关闭显示第一列和第二列的内容。 diff比对内容更详细。
diff -u file1 file2
"-"表示文件1中独有的 "+"表示文件2中独有的 其他则是共有的内容 利用vim打开两个文件进行比对,可视化,更直观一些。
当前台运行的持续性任务用“Ctrl+z
”挂起后,可以使用bg
命令切换到后台继续运行。若有多个任务则bg %num
,%num
是任务编号,不加编号默认最近被挂起的任务。
&
”。 jobs
命令可以查看正在后台运行或挂起的任务。 fg %num
命令可以指定任务返回前台运行,%num
为任务编号,也可以用%command
,如%ping
,将ping
任务返回前台。 ps -ef
ps -fC 进程名
查询指定进程的信息。 -e
展示所有进程 -C
展示指定进程,(大写C),个人感觉不如用grep
过滤好用。 ps aux
还可以查询到cpu内存的占用情况。 tail -f file.log
-nX
,X
用于指定数量。 如:tail -n11 file.log
输出11行。 不指定-nX
,默认输出10行。 watch -n X 命令
watch
用于定期运行指定命令,-n X
用于指定时间周期,秒为单位。 如:watch -n 5 ps aux
每五秒执行一次查询进程。 wget -o localfilename downloadurl
curl -o localfilename downloadurl
axel
可以同时连接多个下载服务器,来加速下载。
axel -a -n X -o localfilename downloadurl
alias允许设置命令的别名。对于常用命令,包含多个参数,就可以设置别名来简化操作。
设置别名时,需要注意避开系统自带的命令名称 执行alias
不带参数,可以查看所有设置的别名。 $ alias ls='ls -la --color=auto'# 设置ls别名,执行命令:ls -la --color=auto$ unalias ls# 取消对ls别名的设置
通过alias设置的别名应该只在当前shell窗口下有效,若设置长期有效的,可以在用户home目录下的".bashrc"文件内设置。
转载地址:http://bpndz.baihongyu.com/