大多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

相关文章