1. Linux 基础
- UNIX:1969年,美国,贝尔实验室,肯·汤普森
- Linux:1991年,芬兰,赫尔辛基大学,李纳斯·托瓦兹
- 发行版本:
- 类型1:RedHat(红帽)、CentOS(社区企业级操作系统):
- 包管理器:yum( Yellow dog Updater, Modified)
- 类型2:Ubuntu(乌班图)、Debian(大便)
- 包管理器:apt(Advanced Packaging Tool)
cat /etc/issue # 查看发行版本。etc等等,issue问题
- 类型1:RedHat(红帽)、CentOS(社区企业级操作系统):
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. 进程管理
ps
: process status,显示进程状态。ps -aux # 显示所有行程(a:显示所有;u:显示用户;x) ps -u root # 显示root用户进程状态
jobs
:查看后台进程的状态信息。sh test.sh & # 末尾加&表示后台运行 jobs -l # 查看后台运行的进程
top
:实时显示 process 的动态。top -u xiaowang # 按用户显示 top -c # 显示完整命令
free
:显示内存状态。free -h # 以合适的单位显示内存使用情况
kill
:杀死进程kill -9 123456 # 彻底杀死进程
pkill
: 杀死指定名字的所有进程pkill -9 php-fpm # 结束所有的php-fpm进程
xargs
:eXtended ARGuments,给命令传递参数的一个过滤器。因为,很多命令不支持 | 管道来传递参数。find /sbin -perm +700 |ls -l # 这个命令是错误的 find /sbin -perm +700 |xargs ls -l # 这样才是正确的
pstree
:以树状图的方式展现进程之间的派生关系pstree # 树状图显示
sleep
:将目前动作延迟一段时间date;sleep 1m;date # 显示目前时间后延迟 1 分钟,之后再次显示时间
crontab
:定期执行程序的命令crontab -e # 执行文字编辑器来设定时程表 cat /etc/crontab # 查看命令详情(写法)
exit
:退出目前的shell,退出终端。exit
bg / fg
:调度正在运行的任务。------------------------- 启动两个后台进程 -------------------------- ping localhost -a >/dev/null & # 后台进程1 [1] 1762 ping 127.0.0.1 -a >/dev/null & # 后台进程2 [2] 1763 -------------------------- 调回前台执行 ---------------------------- fg 1 # 把程序调回到前台运行 ping localhost -a > /dev/null ^Z # Ctrl-Z ,挂起这个程序 [1]+ 已停止 1762 ping localhost -a > /dev/null jobs -l # 显示后台进程 [1]+ 已停止 1762 ping localhost -a > /dev/null [2]- 运行中 1763 ping 127.0.0.1 -a > /dev/null & -------------------------- 调回后台执行 ---------------------------- bg 1 # 把程序调度到后台执行 [1]+ ping localhost -a > /dev/null & jobs -l # 显示后台进程 [1]- 运行中 1762 ping localhost -a > /dev/null & [2]+ 运行中 1763 ping 127.0.0.1 -a > /dev/null &
time
:显示指令执行时所需消耗的时间及系统资源time ls -al
date
:显示或设定系统的日期与时间date # 显示:2021年11月5日 星期五 19时50分38秒 CST
5. 账号权限
hostname
:显示或者设置当前系统的主机名hostname # 显示主机名 hostname -I # 显示主机的网络IP
who
:当前在本地系统上的所有用户及信息。who # 只显示登陆用户帐号名、所用的终端、何处登陆 w # 显示的信息更多
whoami
:查看当前用户名whoami
id
:显示用户的ID,以及所属群组的ID。id
sudo
:Super User do,以系统管理者的身份执行指令。sudo ls -al
passwd
:更改使用者的密码。passwd
chmod
:change the permissions mode of a file,所有者、管理员root修改文件或目录的权限。chmod -R 742 # R: 递归修改权限, 742: 一种模式(r=4、w=2、x=1)
![](https://i-blog.csdnimg.cn/blog_migrate/8194e37b4ab273c4f0776b8cc707344c.jpeg)
chown
:change owner,更改文件所有者,仅管理员可使用。chown root linux_file
ping
:检测是否与主机连通ping www.baidu.com # ping 域名 ping XX.XX.XX.XX # ping ip
netstat
:network statistics,查看网络状态。netstat
iostat
:I/O statistics,查看系统磁盘IO情况。iostat
6. 辅助工具
type
:显示命令的类型信息。分系统自带的内置命令和外部命令type cd # cd is a shell builtin。内置命令 type ls # ls is /bin/ls。外部命令
help / man / info
:获取帮助文档信息,信息逐渐增多。help ls man cd info ping
history
:查看执行过的历史命令history n # 查看最近执行过的n个命令信息
uname
:显示系统信息uname -a # 全部信息 Linux xxxxx_name_xxxx 4.19.0-17-amd64 #1 SMP Debian xx.xx.xxx-x (xxxx-xx-xx) x86_64 GNU/Linux
whatis
:查询一个命令执行什么功能whatis cp # cp (1) - copy files and directories