1. Linux 基础
2. 文件系统
- ls:list files,显示内容
ls -al # all包含隐藏文件,long显示详细信息
- mkdir:make directory,创建目录
mkdir file1
mkdir -p ~/test/file1 # parents 递归创建
- rm:remove,删除文件或目录
rm 文件 # 文件
rm -r 目录 # route 目录
rm -f 文件/目录 # force 强制删除
- cp:copy,复制文件或目录
cp 源 目标 # 文件
cp -r 源 目标 # route 目录
- mv:move,文件或目录 改名/移动位置
mv /file1 /target/file2 # 移动位置
mv hello_word.py hello.py # 修改名字
- pwd:print work directory,打印工作目录
pwd
- scp:secure copy,基于 ssh 登陆进行安全的远程文件拷贝命令
scp -r root@X.X.X.X:remote_folder locale_folder # 复制远程目录到本地
scp locale_file root@X.X.X.X:remote_file # 复制本地文件到远程
- du:disk usage,显示目录或文件的大小
du -h # --human-readable 以K,M,G为单位
- find:find,磁盘下,搜索文件,耗内存效率低。
# 文件名
find /etc -name 'init' # 区分大小写
find /etc -iname 'init' # 不区分大小写
find /etc -name '*init*' # 模糊搜索,文件名包含init的文件
find /etc -name 'init???' # 模糊搜索,文件名init开头且后面跟3个字符的文件
# 文件大小
find /etc -size +204800 # 查找大于100MB的文件
find /etc -size +163840 -a -size +204800 # 且 and
find /etc -size +163840 -o -size +204800 # 或 or
# 文件所有者
find /home -user liushuai
# 搜索出来后,立即执行
find /etc -name init* -exec ls -l {} ; # {}:find查找到的结果,转义符 ;结束
# 搜索出来后,询问是否执行
find /home -user liushuai -ok rm {} ; # y执行,n不执行进入下一个
# 显示所有文件
find /etc -name init* -type f # f文件,d目录,l软链接文件
- locate:locate,数据库下,搜索文件,有索引效率高。
locate passwd
- whereis:whereis,数据库下,搜索二进制文件、源文件、帮助文档,有索引效率高。
whereis passwd
- which:which,环境变量PATH下,搜索可执行文件,效率高。
which passwd
- lsof:list open files,列出当前系统打开的文件。
lsof -i:端口号 # 查看端口占用情况
- df:disk free,以磁盘分区为单位查看文件信息。
df -h
- ln:link,创建文件链接。
# lrwxrwxrwx,l软链接,文件小,文件名→原文件,类似快捷方式
ln -s /etc/issue /tmp/issue.soft # 软连接,s:软链接(符号链接)
# 硬链接识别,类似副本,不占空间。
ln /etc/issue /tmp/issue.hard # 硬链接,同步更新
- tar:tape archive,打包和还原文件
tar -cvzf file.tar.gz file # 打包并压缩(c:建立备份文件,v:执行过程,z:调用gzip,f:指定备份文件)
tar -xvzf file.tar.gz # 还原并解压(x:还原,z:调用gunzip)
- zip:zip,压缩和解压文件
zip -r html.zip /home/html # route 目录中得全部文件
unzip abc.zip # 解压缩
- tee:读取输入的数据,并输出成文件。
tee file_1 file_2 # 输入数据写入file_1和file_2中。
3. 文本编辑
- vi/vim:参考文档
- awk:参考文档,文本分析工具。
awk -F: '{print $0}' test # test中的内容以:划分,打印出整行内容
awk '{print $1}' test # test中的内容以空格划分,打印出第1个字段
- echo:用于字符串的输出
echo "It is a test"
- touch:修改文件或者目录的时间属性,文件不存在则新建。
touch testfile # 修改文件时间属性为当前系统时间,文件不存在则新建。
- more/less:一页一页显示信息,按空白键就显示下一页,按b键显示上一页。
more hello_world.java
less hello_world.java
- head:查看文件的开头部分的内容
head -n 5 runoob_notes.log # 显示开头5行信息
- tail:显示文件最尾部的内容,并且不断刷新。
tail -f notes.log # 常用于查看日志
- cat:concatenate,按行合并文件
cat textfile1 > textfile2 # 合并到textfile2中
cat textfile1 # 输出显示
- paste:按列合并文件
paste ts1 ts2 > new_col # 按列合并文件并生成新文件
paste ts1 ts2 # 合并后输出显示
- split:将一个文件分割成数个(文件名:xaa xad xag xab …)
split -6 README # 将README文件每六行(默认1000)分割成一个文件
- cut:显示每行从开头算起 num1 - num2 或 num1,num2的字符。
cut -b 3,7 test # -b 字节为单位,-c 字符为单位。
- grep:global search regular expression(RE) and print out the line,查找文件里符合条件的字符串
grep test *file # 查找后缀有 file 字样的文件中包含 test 字符串的文件,并打印出该字符串的行
grep -r update /etc/acpi # 查找指定目录/etc/acpi 及其子目录,......
- wc:word count,计算指定文件的行数、字数,以及字节数
wc -c hello_word.java # -l:行数; -w:字数; -c字节数
- sort:将文本文件的第一列以 ASCII 码的次序排列,并将结果输出到标准输出。
sort testfile
- uniq:检查文件并删除文件中重复出现的行
uniq -c testfile # XXX, 并在行首显示该行重复出现的次数
- diff:比较文件的差异
diff log2014.log log2013.log
- file:辨识文件类型
file eval_recommend.py
4. 进程管理
5. 账号权限
6. 辅助工具