目录
- 有什么常用的 Linux 命令
- 绝对路径怎么表示?
- 当前目录怎么表示?
- 上层目录怎么表示?
- 主目录怎么表示?
- 如何切换目录?
- 如何同时创建多个目录?
- 如何创建一个多层级目录?
- 如何同时移动多个文件?
- 如何复制一个文件夹?
- 可以将命令历史记录写入文件吗?怎么写入?
- 如何解压一个 zip 文件?
- 如何解压一个 tar 文件?
- 如何解压一个 tar.gz 文件?
- 如何将多个文件压缩到一个 tar.gz 文件?
- 有一个 log 文件,如何实时查看它的内容?
- 如何查看日志的最后 10 条内容
- 如何列出隐藏文件?
- 如何列出文件列表,并根据文件大小排序
- 如何列出文件,并根据文件修改时间排序
- 如何查看所有进程
- 如何查看所有 java 进程
- 如何查看进程所占用的 CPU、内存
- 如何强制删除文件
- 如何批量创建100个文件
- 创建文件有几种方式?你能大概说下你知道的吗?
- 怎么通过名字寻找文件
- 怎么通过文件的类型寻找文件
- 如何通过文件的大小寻找文件
- 什么命令可以找到执行文件的位置?
- which 命令搜索的是哪个目录?
- whereis 也是找文件、目录,那和 find 的区别是?
- 如何给一个文件设置最高权限
- 如何杀掉一个进程
- 如何查看某个端口是否被占用?
- 有哪些常见的配置文件
- Linux 系统目录的作用分别是啥?
- 如何在一个 Linux 中部署两套不同版本的 JAVA 环境,然后可以随时切换使用?
- 如何查看进程中有哪些环境变量?
- echo 打印到命令行
- chmod 修改权限
- cat 查看日志
- chattr 改变文件属性
- chgrp 修改所属组
- chown 修改所属人
- cmp 比较文件
- diff 详细的比较文件
- file 查看文件类型
- find 查找命令
- cut 截取显示
- ln 连接
- less 可翻页浏览文件
- more 逐页阅读
- lsattr 显示文件属性
- mv 剪切或重命名
- rcp 复制远程文件或目录
- rm 删除文件
- split 分割文件
- tee 接收用户输入
- touch 创建文件,修改文件
- which 查找文件
- cp 复制文件
- whereis 查找文件
- rhmask 加密文件
- scp 用于linux之间远程复制
- awk 文本处理工具
- read 读取输入
- grep 查找和过滤
- join 链接俩个文件中相同的行
- look 查询单词
- pico 编辑文字文件
- sed 利用脚本处理文本文件
- nl 以行为单位执行命令
- sort 排序
- spell 拼写检查
- tr 转换和删除文件中的指定字符
- expr 命令行计数器
- uniq 行去重
- wc 计算字数
- let 声明变量
- cd 进入某目录
- df 显示磁盘使用情况
- dirs 显示目录记录
- du 显示指定目录文件所占用的磁盘空间
- mkdir 创建目录
- pwd 查看当前目录
- quota 显示磁盘已用的空间和限制
- tree 树状图显示目录内容
- ls 查看内容
- quotacheck 检查磁盘使用空间和限制
- quotaoff/quotaon 关闭/开启磁盘限制
- lndir 链接目录内容
- ifconfig 查看网络设置
- ping 查看远程链接
- netconf 设置各项网络功能
- 跟其他使用者交谈
- adduser 添加使用者
- date 显示和设定系统时间
- exit 退出目前shell
- finger 查询其他使用者资料
- sleep 延迟
- suspend 暂停shell
- groupdel 删除组
- groupmod 修改组
- halt / shutdown 关机
- kill 杀掉命令
- last 显示用户最近登录信息
- lastb 显示登入系统失败的用户
- login 登入
- logname 显示当前用户名称
- logout 登出
- ps 显示当前进程
- nice 更改过的优先序来执行程序
- procinfo 显示系统状态
- top 实时显示进程的状态
- pstree 树状图显示进程
- reboot 重启
- rlogin 远程登录
- rsh 远程登录
- shutdown 关机
- rwho 查看系统用户
- sudo 管理身份运行
- tload 显示系统负载
- uname 显示系统信息
- userdel 删除用户
- usermod 修改用户
- who 显示当前登录用户
- whoami 显示自身用户名
- whois 查找显示指定用户或域名
- newgrp 登录其他群组
- renice 重新知道进程级别
- su 变更为其他用户身份
- w 显示目前登录系统的用户信息
- id 显示用户id
- groupadd 新增组
- free 显示内存状态
- clear 清除屏幕
- alias 设置命令别名
- crontab 定期执行程序
- declare 声明变量
- dmesg 显示开机设置
- eval 求值
- export 设置环境变量
- rpm 管理套件
- bunzip2 解压
- gunzip 解压
- compress 压缩解压
- cpio 备份文件
- dump 备份系统
- gzexe 压缩win程序
- gzip 压缩文件
- lha 压缩文件
- restore 还原系统
- tar 压缩文件
- unzip 解压
- poweroff 关机
- bc 计算命令
- tail 查看文件
- head 查看开头
- |xargs 过滤器
- ip 网络设置
- nohup 后台运行
- killall 杀死指定名字所有进程
- pkill 根据名字杀进程
有什么常用的 Linux 命令
- cd:进入目录
- ls:列出目录文件
- mkdir:创建文件夹
- vim:编辑文件
- top:查看系统负载
- ps:查看进程
- rm:删除文件、目录
- history:查看命令历史记录
- cp:复制文件
- mv:修改文件名、移动文件
- cat:获取文件内容
- tail:查看日志
- find:搜索文件
- pwd:查看当前路径
- clear:清屏
- reboot:重启
绝对路径怎么表示?
/ 开头,/usr/local
当前目录怎么表示?
./
上层目录怎么表示?
../
主目录怎么表示?
~/
如何切换目录?
cd 目录
如何同时创建多个目录?
mkdir a b c
如何创建一个多层级目录?
mkdir -p a/b/c
如何同时移动多个文件?
mv file1 file2 -t /usr/local
如何复制一个文件夹?
cp -r dir1 /usr/local
可以将命令历史记录写入文件吗?怎么写入?
可以,history -w,默认写入 ~/.bash_history 文件中
如何解压一个 zip 文件?
unzip 文件名
如何解压一个 tar 文件?
tar -xvf 文件名
如何解压一个 tar.gz 文件?
tar -zxvf 文件名
如何将多个文件压缩到一个 tar.gz 文件?
tar -zcvf 压缩.tar.gz file1 file2 file3
有一个 log 文件,如何实时查看它的内容?
tail -f 日志名
如何查看日志的最后 10 条内容
tail -n 10 日志名
如何列出隐藏文件?
ls -a
如何列出文件列表,并根据文件大小排序
ls -S
如何列出文件,并根据文件修改时间排序
ls -t
如何查看所有进程
ps -A
如何查看所有 java 进程
ps -ef | grep java
如何查看进程所占用的 CPU、内存
ps -aux
如何强制删除文件
rm -rf 文件名
如何批量创建100个文件
touch test{001...100}.txt
创建文件有几种方式?你能大概说下你知道的吗?
- vim 直接编辑一个新文件
- touch file 创建一个空白文件
- > 将内容覆盖原文件
- >> 将内容追加到文件结尾
- cat 结合 eof
- cat 结合 exit
怎么通过名字寻找文件
find / -name 文件名
怎么通过文件的类型寻找文件
find / -type f
如何通过文件的大小寻找文件
find / -size 100
什么命令可以找到执行文件的位置?
which
which 命令搜索的是哪个目录?
/usr/bin
whereis 也是找文件、目录,那和 find 的区别是?
- whereis 查找的速度会比 find 快
- 原因是 whereis 会从数据库中查找数据
如何给一个文件设置最高权限
chmod 777 test.txt
如何杀掉一个进程
- 先查看进程的 pid,再根据 pid 杀掉进程
- ps -ef | grep 进程名,获取到 pid
- kill -9 进程pid
如何查看某个端口是否被占用?
- netstat -anp | grep 端口号
- 如果打印的记录是其中一个服务,且状态是 LISTEN,那么就被占用了
有哪些常见的配置文件
- /etc/profile:系统环境变量配置文件
- /etc/sysconfig/iptables:防火墙配置文件
- /etc/hosts/:主机文件
- /etc/rc.local:开机就执行命令的文件
- /root/.bashrc_profile:当前用户环境变量配置文件
Linux 系统目录的作用分别是啥?
- /bin:可执行的命令文件
- /etc:大部分系统配置文件
- /home:一般用户目录
- /lib:库文件,包含系统和用户需要的库文件
- /opt:一般存放第三方文件
- /root :root 用户的目录
- /sbin:存放系统和系统管理员用到的程序工具
- /proc:包含系统资源信息的虚拟文件系统,系统运行时才有文件
- /sys:与 proc 类似的虚拟文件系统,都是内核提供给用户的接口
- /tmp:系统使用的临时空间,重启后会清空
- /usr:包含各种程序、库、文档
- /var:包含一些用户可变的、临时的文件
如何在一个 Linux 中部署两套不同版本的 JAVA 环境,然后可以随时切换使用?
系统装了 Java 1.8,环境变量也配置了 Java 1.8,登录系统任意地方都能使用 Java 1.8 应用中需要用 Java 1.7,需要怎么分开使用不同的 Java 环境
如何查看进程中有哪些环境变量?
- 获取进程 PID 后
- 进入 /proc/进程号/ 目录下,查看 environ 文件即可
cat /proc/4071/environ |tr '\0' '\n'
echo 打印到命令行
echo "hello 测试开发干货"
chmod 修改权限
chmod +x 文件 :增加可执行权限
chmod 777 文件:增加所有人的读写执行权限
777 代表111 111 111 ,也就代表 rwx rwx rwx 全都生效
chmod ugo+r 文件
其中ugo 代表 user group others 也就是不同身份
+r 代表这些身份的人增加可读权限
chmod ug=rwx,o=x 文件
cat 查看日志
cat 参数 文件 > 新文件
-n 从1开始进行编号
-b 编号但不包括空行
-s 合并连续空行为一行
-e 在每行结尾显示$
chattr 改变文件属性
chattr 参数 +/-属性 文件
其中加减号代表增加或删除这项属性
属性:
i 不需改动
c 压缩存放
u 防止意外删除
参数:
-R 递归
-v 设置版本号
-V 显示执行过程
chgrp 修改所属组
chgrp 参数 群组 文件
-c 回报更改部分
-f 不显示错误信息
-r 递归
chown 修改所属人
chown 参数 用户 文件
-f 忽略错误
cmp 比较文件
cmp 参数 文件1 文件2
diff 详细的比较文件
diff 参数 文件1 文件2
file 查看文件类型
file 参数 文件
-v 显示版本信息
-c 详细显示过程
find 查找命令
find 路径 参数 值
find . -name "*.c" 查找所有后缀为c的当前目录下文件
find . -type f 查找目录和子目录下所有文件
find . -ctime -20 查找最近20天内更新过的文件
find . -type f -mitme +7 -ok rm {} \; 查找当前目录下更改时间在7天以前的普通文件删除,但要二次确认。
find . -type f -perm 777 -exec ls -l {} \; 查找当前目录下文件具有所有身份读写执行权限的文件。
find . -type f -size 0 -exec ls -l {} \;查找所有文件长度为0的文件,并打印完整路径。
可以看到find命令的应用非常花式,所以要重点学习。
-cmin n :在过去n分钟内被修改过的
-atime n :在过去n天内被读取过的
-size : 文件大小
-type c :文件c类型的文件
-name : 文件名称符合的
这里的c可以换成如下字母:
d 目录
f 文件
exec 相当于执行下一个命令,多个命令分割
cut 截取显示
在其他命令结尾用|cut 参数 值 来决定显示多少
-b 以字节分割
-c 以字符分割
ln 连接
可以让你其他目录下直接调用该文件
ln 参数 文件 目录
-s 软连接
less 可翻页浏览文件
less 参数 文件
-f 强制
-N 显示行号
-i 忽略大小写
命令:
b 向前翻页
d 向后翻页
空格 滚动一页
Q 退出
more 逐页阅读
more 参数 每页显示行数 文件
-num 行数
命令:
空格 向下滚动一屏
q 退出
! 调用shell命令
lsattr 显示文件属性
lsattr 参数 文件
-a 显示隐藏
-d 显示目录
mv 剪切或重命名
mv 参数 文件 新文件
-i 询问
-f 不询问
-n 不覆盖
-u 不存在才剪切
rcp 复制远程文件或目录
rcp 参数 文件 新文件
-p 保留属性
-r 递归
rcp root@192.168.xx.xx:/文件 ./新文件
rm 删除文件
rm 参数 文件
-i 逐一确认
-f 不询问
-r 递归
split 分割文件
split 参数/值 文件
如:split -6 a.txt 会把这个txt每六行切割成一个文件
tee 接收用户输入
tee 参数 文件
touch 创建文件,修改文件
touch 参数 文件
which 查找文件
which 参数 文件
-n 文件名长度
cp 复制文件
cp 参数 文件 新文件
-f 覆盖不提示
-i 提示
-l 只生成连接文件
-p 保留权限设置
whereis 查找文件
where 参数 目录 文件
多用于查找原始代码 二进制 帮助等系统文件
如:whereis bash
rhmask 加密文件
rhmask -d 原文件 加密后文件
scp 用于linux之间远程复制
scp 参数 文件 新文件
-r 递归
-C 压缩
-c 加密
如:scp root@192.168.11.2:/home/xxx.txt ./xxx.txt
awk 文本处理工具
awk 参数 'script' var=value 文件
read 读取输入
read 变量
会把用户输入的字符放在变量里,然后在后续命令中使用$变量 来占位
grep 查找和过滤
grep作为过滤命令,在很多命令后都可以加入grep来进行过滤
grep test *.c 查找后缀为c 且包含test的文件
grep -r test /etc/ 查找etc目录和子目录下包含update字符串的文件
grep test 文件 #在文件中查找包含test的行
grep -e "正则表达式" 文件 #查找文件内符合该正则的行
-i 不去分大小写
grep -v test 查找不含test的文件,-v表示反向
find . -name '*.c' | xargs grep "test" 查找当前目录下所有后缀为.c的文件并找出其中带test的行。
join 链接俩个文件中相同的行
join 文件1 文件2
look 查询单词
look L 文件 #查询文件中所有以L开头的行
pico 编辑文字文件
pico 参数 文件
sed 利用脚本处理文本文件
sed 参数 动作 文件
sed -e 4a\newLine 文件 #在文件第四行后添加一行
sed -i '$a 结束文案' #在文末增加一行文案
其中 -e表示后面接动作,
a表示新增
c 取代
d 删除
i 插入
p 打印
s 取代
sed 's/目标文案/新文案/g' #替换文案,
nl 以行为单位执行命令
nl 文件 | sed '2,5d' #表示打印所有行,但删除2-5行,sed后的字符必须以单引号包裹
nl 文件 | sed '2a 测试开发干货' #第2行后新增一行文案
nl 文件 | sed '1,3c 测试开发干货' #第1-3行替换成文案
nl 文件 | sed '/test/p' #输出所有行,额外输出包含test的行
nl 文件 | sed '/test/d' #输出所有行,但不包括带test的行
nl 文件 | sed -n '具体命令' # 输出所有行且执行某命令
nl 文件 | sed '3,$d' -e 's/旧/新/g' #输出所有行,删除第3-5行,且替换文案。
sort 排序
sort 参数 文件
-r 相反顺序
-b 忽略前空格
-d 只处理英文数字和空格
-f 全部按照大写字母排序
-n 按照数值大小
sort 文件 -k 2 #根据第二列的值进行排序
spell 拼写检查
spell 文件
tr 转换和删除文件中的指定字符
tr 参数 值
-c 反选
-d 删除
cat 文件 |tr a-z A-Z #把文件中所有小写替换成大写字母并打印
cat 文件 |tr ["lower"] ["upper"]
expr 命令行计数器
expr 表达式
如 expr length "测试开发干货" #会输出6
expr substr "测试开发干货" 2 4 #会输出is 开
expr index "测试开发干货" 干 #会打印5
expr 10+2 #会打印12
uniq 行去重
uniq 参数 文件
-c 显示重复次数
-d 显示重复行列
wc 计算字数
wc 参数 文件
-l 显示行数
-w 显示字数
-c 显示字节数
let 声明变量
let a=5
let b=a+2
echo b
输出 7
cd 进入某目录
cd 目录
cd ~ 用户目录
cd / 系统根目录
cd .. 上级目录
df 显示磁盘使用情况
df 查询
df test
df -i 显示inode信息
df --total 显示所有信息
df -h 可读
dirs 显示目录记录
dir -l 目录
du 显示指定目录文件所占用的磁盘空间
du 参数 文件
-h 提高可读性
mkdir 创建目录
mkdir -p 目录
pwd 查看当前目录
pwd
quota 显示磁盘已用的空间和限制
quota 参数
-g 列出群组磁盘限制
-u 列出用户磁盘限制
tree 树状图显示目录内容
tree 参数
-a 显示所有
-d 只显示目录
-f 显示完整相对路径
ls 查看内容
ls 参数 目录
-a 显示隐藏
-l 显示详细资料
-r 反序
-t 按时间顺序
quotacheck 检查磁盘使用空间和限制
quotacheck 参数
quotaoff/quotaon 关闭/开启磁盘限制
quotaoff 参数
lndir 链接目录内容
lndir 参数 源目录 新目录
ifconfig 查看网络设置
ifconfig eth0 down/up #启动关闭指定网卡
ifconfig eth0 add/del ipv6地址 #为网卡配置和删除ipv6地址
ifconfig eth0 hw ether 地址 #修改地址
ifconfig eth0 192.168... #给网卡配置ip地址
ifconfig eth0 192.168... netmask 255.255.255.0 broadcast 192.168... #再加上子网掩码 和 广播地址
ifconfig eth0 mtu 1500 #设置最大传输单元
ping 查看远程链接
ping 参数 地址
netconf 设置各项网络功能
netconf
跟其他使用者交谈
talk 说话
write 写消息
adduser 添加使用者
adduser 用户 #普通
adduser -g 组 用户 #组用户
adduser -r 用户 #系统用户
adduser -d /home/用户名 用户 #g给用户创建并指定用户目录
和useradd类似
date 显示和设定系统时间
date #显示当前时间
exit 退出目前shell
exit
finger 查询其他使用者资料
finger -m 我去热饭
finger root
sleep 延迟
sleep 5m #等待5秒
suspend 暂停shell
suspend -f
groupdel 删除组
groupdel 组
groupmod 修改组
groupmod 组
halt / shutdown 关机
halt 参数
-p 断电
-i 关键前停止网络
-d 无痕关机
kill 杀掉命令
kill 参数 命令
1 : 重载
9 : 杀死
15 : 正常停止
kill -9 $(ps -ef |grep '') #杀死所有相关进程
kill -u 用户 #杀死用户的所有进程
last 显示用户最近登录信息
last
lastb 显示登入系统失败的用户
lastb
login 登入
login
logname 显示当前用户名称
logname
logout 登出
logout
ps 显示当前进程
ps 参数
-A 所有
-w 加宽
-au 详细
ps -ef |grep 关键字
ps -u 用户
nice 更改过的优先序来执行程序
nice 参数 命令
nice vi
procinfo 显示系统状态
proccinfo
top 实时显示进程的状态
top -c 显示完整
top -d 3 更新周期为3秒
top -p 130 显示进程139的信息
top -n 10 显示十次后退出
pstree 树状图显示进程
pstree
reboot 重启
reboot
rlogin 远程登录
rlogin 192.169 -l 用户名
rsh 远程登录
rsh -l hnlinux 192..... 目录/命令 #远程执行命令
shutdown 关机
shutdown -h now 立刻关机
shutdown -r now 重新启动
rwho 查看系统用户
rwho -a #列出所有系统用户
sudo 管理身份运行
sudo -u 用户 命令 #指定用户身份运行
sudo -l 列出目前权限
tload 显示系统负载
tload
uname 显示系统信息
uname 参数
-a 显示所有系统信息
-m 显示计算机类型
-n 计算机名字
-s 显示操作系统名字
userdel 删除用户
userdel -r 哦用户
usermod 修改用户
usermod -d 目录 用户 #更改用户目录
usermod -u 777 用户 #更改用户uid
who 显示当前登录用户
who -q
whoami 显示自身用户名
whoami
whois 查找显示指定用户或域名
whois 用户
whois 域名
whois -p 端口 域名
newgrp 登录其他群组
newgrp 群组
renice 重新知道进程级别
将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1
renice +1 987 -u daemon 用户 -p 32
su 变更为其他用户身份
su -c 命令 身份 # 暂时用其他身份执行命令
su - root #切换到root用户
w 显示目前登录系统的用户信息
w 参数 用户
-f 开启、关闭用户来源
-l 详细
-s 简洁
id 显示用户id
id 参数 用户
-g 显示所属群组
-u 显示用户id
groupadd 新增组
groupadd -g 344 组 #新建组并指定id为344
free 显示内存状态
free -t #显示总和
free -s 10 #每10秒查询一次
clear 清除屏幕
clear
alias 设置命令别名
alias lx = ls
crontab 定期执行程序
crontab 脚本
declare 声明变量
declare -i 变量 #声明一个整数变量
dmesg 显示开机设置
demsg |less
eval 求值
eval enable;ls #链接多个命令
export 设置环境变量
export -p #列出所有环境变量
rpm 管理套件
rpm 参数
-a 查询所有套件
rpm -hvi ***.rpm #安装某套件
bunzip2 解压
bunzip2 -v 文件.bz2
gunzip 解压
gunzip 文件.gz
compress 压缩解压
compress 文件 #压缩
compress -d 文件包 #解压
cpio 备份文件
cpio -o >文件 # 备份
cpio -p 目录 #复制文件
dump 备份系统
dump -0 -u 目录1 目录2 #备份2到1
gzexe 压缩win程序
gzexe 文件
gzip 压缩文件
gzip * #压缩当前目录所有文件
gzip -d * #解压文件
lha 压缩文件
lha -a 新文件名 旧文件
restore 还原系统
restore 参数
tar 压缩文件
tar -zcvf 旧文件 新文件 #压缩
tar -zxvf 压缩包 # 解压
unzip 解压
unzip 压缩包
poweroff 关机
poweroff 参数
-n : 在关机前不做将记忆体资料写回硬盘的动作
-w : 并不会真的关机,只是把记录写到 /var/log/wtmp 档案里
-d : 不把记录写到 /var/log/wtmp 文件里
-i : 在关机之前先把所有网络相关的装置先停止
-p : 关闭操作系统之前将系统中所有的硬件设置为备用模式。
bc 计算命令
bc 参数
echo "10+10" | bc #打印20
tail 查看文件
tail 参数 文件
-f 循环
-n 尾部行数
-s 间隔秒
-c 字符数
tail -n +20 文件 #从第20行开始看
tail -c 10 文件 #显示最后的10个字符
head 查看开头
head 参数 文件
-n 行数
-c 字符数
head -n 5 文件 #显示开头的5行
|xargs 过滤器
find 文件 -perm +700 |xargs ls -l # 查询
cat 文件 |xargs #一行输出
cat 文件 |xargs -n3 #三列输出
find . -type f -name "*.php" -print0 | xargs -0 wc -l #统计所有php文件行数
cat 文件|xargs wget -c
ip 网络设置
ip link show #显示网络接口信息
ip link set eth0 up/down #启动/关闭网卡
ip addr show #显示网卡ip
ip addr add/del #设置/删除网卡ip
ip route list #查看路由信息
ip route add 地址 via 地址 dev eth0 #设置网断网管,数据走etho0接口
ip link list #显示网络设备
nohup 后台运行
nohup 命令
killall 杀死指定名字所有进程
killall node
killall -9 关键字
killall -u 结束指定用户进程
killall -g 结束进程组
killall -I 忽略大小写
pkill 根据名字杀进程
pkill 参数 进程名
pkill -9 node #杀死所有node进程