Linux常用命令
ls
-a:列出所有目录(“.”开头的是隐藏文件)
-l: 以长格式列出目录下的内容列表
cd
cd 切换到家目录
cd ~ 切换到家目录
cd .. 切换到上一级目录
pwd
显示当前工作路径(以绝对路径的形式显示)
touch
创建文件
- touch a.txt b.txt 创建a.txt和b.txt两个文件
mkdir
创建目录
-p:递归创建
mv
重命名、移动文件或目录
mv source dest
- mv a.txt b.txt /tmp 把当前路径下的a.txt和b.txt移动到/tmp目录下
cp
拷贝、复制
格式: cp source dest
参数: -r:递归复制
rm
删除目录或文件
-r:递归删除
-f:强制删除不提示
cat
查看文件内容
-n:显示行号
cat 文件名 | more 分页浏览
- cat 文件名 >> a.txt 将文件内容追加到a.txt
> : 输出重定向:会将原来的文件内容覆盖
>> : 不会覆盖原文件的内容,而是追加到其尾部
-
ls -l > a.txt 列表内容写入a.txt (覆盖写)
-
ls -l >> b.txt 列表内容追加到b.txt (b.txt原来的内容还在)
tar
压缩与解压指令
-z: 有gzip属性的
-c: 压缩
-x: 解压
-v:显示详细信息
-f:指定压缩后的文件名
-C:指定解压目录
-
tar -zcvf a.tar.gz a1.txt a2.txt 将 a1.txt 和 a2.txt 压缩至a.tar.gz
-
tar -zcvf myhome.tar.gz /home/ 将home文件夹压缩至 myhome.tar.gz
-
tar -zxvf myhome.tar.gz -C /opt/ 将myhome.tar.gz压缩包里面的文件解压至/opt/目录下
rpm
格式: rpm -ivh RPM 包全路径名称
-i =install 安装
-v =verbose 提示
-h =hash 进度条
yum
yum是一个shell前端软件包管理器,基于RPM包管理,能够从指定的服务器下载RPM包并安装,可以自动处理依赖关系,使用yum必须联网!
yum list | grep xxx 查询yumm服务器是否有xxx软件
yum -y install xxx 下载并安装xxx (-y表示出现提示都选yes)
ps
查看进程状态(Process Status)
ps -aux 查看当前所有进程状态(也可以用 ps -ef )
kill
杀死进程
kill -9 PID 杀死当前进程号为PID的进程(PID可以通过ps命令查看)
sed
sed -n "xp" filename; 显示文件第X行的内容:
sed -n "x,yp" filename;显示文件第X行到Y行的内容(会自动去除不同行之间的换行)
- sed -n 4,8p file # 打印file中的4-8行
- sed -n 4p file # 打印file中的第4行
- sed -i "/${word}/d" $file # 删除file文件中所有包含字符串word的行
which
which shell命令 用于查找给定的命令的路径
which ssh 查找ssh命令的路径
find
find ./ -name a.txt 查找当前目录及其子目录下所有名称为a.txt的文件,注意这里是全局匹配,可以使用通配符进行模糊搜索
用户操作
添加用户:useradd -m 用户名
设置密码:passwd 用户名
删除用户:userdel -r 用户名
grep
Usage: grep [OPTION]... PATTERNS [FILE]...
Search for PATTERNS in each FILE.
Example: grep -i 'hello world' menu.h main.c
# 查询./kubernetes/cmd目录及其子目录下的文件中包含 "EventRecorder" 的结果。
$ grep -R -n -i "EventRecorder" ./kubernetes/cmd/
-R:递归查找目录下的所有文件
-i:忽略大小写
-n:显示行号
# 输出结果:
./kube-scheduler/app/options/options.go:295:func makeLeaderElectionConfig(config componentbaseconfig.LeaderElectionConfiguration, client clientset.Interface, recorder record.EventRecorder) (*leaderelection.LeaderElectionConfig, error) {
./kube-scheduler/app/options/options.go:310: EventRecorder: recorder,
./kube-scheduler/app/server.go:285: return func(name string) events.EventRecorder {
./kubelet/app/server.go:461:// makeEventRecorder sets up kubeDeps.Recorder if it's nil. It's a no-op otherwise.
./kubelet/app/server.go:462:func makeEventRecorder(kubeDeps *kubelet.Dependencies, nodeName types.NodeName) {
./kubelet/app/server.go:641: makeEventRecorder(kubeDeps, nodeName)
./kubelet/app/server.go:1089: makeEventRecorder(kubeDeps, nodeName)
./kube-proxy/app/server.go:533: Recorder record.EventRecorder
./kube-controller-manager/app/options/options.go:449: eventRecorder := createRecorder(client, KubeControllerManagerUserAgent)
./kube-controller-manager/app/options/options.go:454: EventRecorder: eventRecorder,
./kube-controller-manager/app/options/options.go:467:func createRecorder(kubeClient clientset.Interface, userAgent string) record.EventRecorder {
./kube-controller-manager/app/config/config.go:50: EventRecorder record.EventRecorder
./kube-controller-manager/app/controllermanager.go:280: EventRecorder: c.EventRecorder,
修改文件所有者和所属组
chown [-R] 用户名称 dirname/filename ...
chgrp [-R] 用户组名称 dirname/filename ...