Linux Shell 基本命令介绍
大多Linux Server并没有图形用户界面 (GUI),因此也不能通过鼠标与操作系统直接交互。这时,掌握一些基本的命令就显得尤为重要。
传递参数
当一个命令的语法允许你传递[-参数]
时,你可以传递多个参数!
比如:
ls -lah
这行命令中包含三个参数,l
, a
, h
rm -rv
这行命令中包含两个参数,r
, v
1. ls 命令
Linux ls
(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。
基本语法
ls [-参数] [name...]
不带任何参数的ls命令
不带任何参数的命令将列出当前工作目录的内容,如图:
# username @ yourmachinename in ~ [8:24:31]
$ ls
lnmp-install.log lnmp1.8 lnmp1.8.tar.gz snap
ls + 指定目录命令
要列出任何目录的内容,例如 /etc
目录使用如下命令
# username @ yourmachinename in ~ [8:24:31]
$ ls /etc/
NetworkManager console-setup environment init.d login.defs
PackageKit cron.d ethertypes initramfs-tools logrotate.conf
X11 cron.daily fonts inputrc logrotate.d
adduser.conf cron.hourly fstab iproute2 lsb-release
alternatives cron.monthly fuse.conf iptables ltrace.conf
apparmor cron.weekly fwupd iscsi lvm
apparmor.d crontab gai.conf issue machine-id
apport cryptsetup-initramfs groff issue.net magic
apt crypttab group kernel magic.mime
at.deny dbus-1 group- kernel-img.conf mailcap
-l 参数
ls -l
命令会打印输出每一个文件的详细信息,例如文件权限、链接数、所有者(User)名称和组(Group)名称、文件大小、最后修改的时间和文件/目录名称
# username @ yourmachinename in ~ [8:24:31]
$ ls -l
total 3092
-rw-r--r-- 1 root root 2975510 Aug 13 11:45 lnmp-install.log
drwxr-xr-x 7 root root 4096 Jan 6 2021 lnmp1.8
-rw-r--r-- 1 root root 173302 Jul 23 13:26 lnmp1.8.tar.gz
drwxr-xr-x 3 root root 4096 Aug 13 10:03 snap
-a 参数
ls -a
命令可以显示目录中包含的隐藏文件
# username @ yourmachinename in ~ [8:24:31]
$ ls -a
. .mysql_history .zcompdump
.. .oh-my-zsh .zcompdump-ubuntu-s-1vcpu-1gb-sfo3-01-5.8
.Xauthority .pearrc .zsh_history
.bash_history .profile .zshrc
.bashrc .shell.pre-oh-my-zsh lnmp-install.log
.cache .ssh lnmp1.8
.cloud-locale-test.skip .vim lnmp1.8.tar.gz
.cmake .viminfo snap
.local .wget-hsts
2. cd 命令
Linux cd
(英文全拼:change directory)命令用于切换当前工作目录。
其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home 目录 (也就是刚 login 时所在的目录)。
另外,~
也表示为 home 目录 的意思, .
则是表示目前所在的目录, ..
则表示目前目录位置的上一层目录。
基本语法
cd [dirName]
cd
命令可以返回至根目录 (与cd ~
命令效果相同)
# username @ yourmachinename in /etc/network [8:56:20]
$ cd
# username @ yourmachinename in ~ [8:56:28]
$
cd .. 命令
cd ..
命令可以返回上一层目录(文件夹)
# username @ yourmachinename in ~ [8:40:25]
$ cd ..
# username @ yourmachinename in / [8:53:22]
$
3. mkdir 命令
Linux mkdir
(英文全拼:make directory)命令用于创建文件或目录。
基本语法
mkdir [-参数] dirName
建立一个名为 runoob 的子目录
# username @ yourmachinename in ~ [8:56:28]
$ mkdir runoob
-p 参数
当需要一次性创建多个目录(文件夹)时,直接使用mkdir会出现如下报错:
# username @ yourmachinename in ~ [8:56:28]
$ mkdir test/inTestFolder
mkdir: cannot create directory ‘123/234’: No such file or directory
因此需要传入-p
参数以新建多个目录
# username @ yourmachinename in ~ [8:56:28]
$ mkdir -p test/inTestFolder
4. rm 命令
Linux rm(英文全拼:remove)命令用于删除一个文件或者目录。
Linux系统没有回收站!文件一旦通过rm命令删除,则无法恢复,所以必须格外小心地使用该命令。
基本语法
rm [-参数] name...
删除单个文件
# username @ yourmachinename in ~ [8:56:28]
$ rm test.txt
-r 参数
如需删除文件夹,需要添加r
参数(递归)
# username @ yourmachinename in ~ [8:56:28]
$ rm -r testfile
5. chown 命令
chown 需要超级用户 root 的权限才能执行此命令。
Linux chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令。
基本语法
chown [-参数] user[:group] file...
把 /var/run/httpd.pid 的所有者设置 root:
# root @ yourmachinename in ~ [8:56:28]
$ chown root /var/run/httpd.pid
将文件 file.txt 的拥有者设为 nianwen,群体的使用者 family:
# root @ yourmachinename in ~ [8:56:28]
$ chown nianwen:family file.txt
-r 参数
更改整个文件夹(包括其内容)的权限时,需要加上r
参数递归。
将当前前目录下的所有文件与子目录的拥有者皆设为 nianwen,群体的使用者 family:
# username @ yourmachinename in ~ [8:56:28]
$ chown -R nianwen:family *
6. cp 命令
Linux cp(英文全拼:copy file)命令主要用于复制文件或目录。
基本语法
cp [-参数] [源路径] [需要移动到的路径]
将 usr 目录下的文件 test.txt 下的所有文件复制到 home/newtest 目录下
# username @ yourmachinename in ~ [8:56:28]
$ cp usr/test.txt home/newtest
-r 参数
复制文件夹需要添加-r
参数
将 usr 当前目录复制到 home/newtest 目录下
# username @ yourmachinename in ~ [8:56:28]
$ cp -r usr/ home/newtest
或者
# username @ yourmachinename in ~ [8:56:28]
$ cp -R usr/ home/newtest
7. mv 命令
删除/重命名文件
基本语法
mv [-参数] [源路径] [需要移动到的路径]
将源文件 source_file.txt
重命名为目标文件 dest_file.txt
# username @ yourmachinename in ~ [8:56:28]
$ mv source_file.txt dest_file.txt
将文件 source_file.txt
移动到目标目录(文件夹) dest_directory
中
# username @ yourmachinename in ~ [8:56:28]
$ mv source_file.txt dest_directory
将文件 source_file.txt
移动到目标目录(文件夹) dest_directory
中,并重命名为 target_file.txt
# username @ yourmachinename in ~ [8:56:28]
$ mv source_file.txt dest_directory/target_file.txt
8. pwd命令
pwd命令可以输出当前所在位置的完整路径。
基本语法
pwd
评论已关闭