赞
踩
GNU / Linux 是一种自由和开放源码的类 UNIX 操作系统。Linux 英文解释为 Linux is not Unix。Linux 是在 1991 由Linus Benedict Torvalds 在赫尔辛基大学上学时创立的,主要受到 Minix 和 Unix 思想的启发。
远程登录 Linux 系统,我们一般使用 SSH(OpenSSH SSH client)。
我们可以使用 man ssh
来查看 ssh
命令的使用手册。参数如下:
ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address]
[-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
[user@]hostname [command]
[]
代表可选参数,可写可不写详细信息请参考:
1. 使用指定用户名和端口远程登录主机,然后再输入密码即可登录
ssh -p 22 用户名@IP地址
如果没有指定用户名和,则使用 ~/.ssh/ssh_config
和 /etc/ssh/ssh_config
配置文件中定义内容。如果配置文件中没有指定,则端口默认为 22,用户名默认为当前用户。
ssh 获取相关参数的优先级顺序为:
2. 配置免密登录
学习ssh、文件与目录管理命令、文件查看命令、用户管理命令第一步:使用 ssh-keygen -t rsa
命令在客户端生成 RSA 公钥和私钥,一直回车确认。公钥默认名称为 id_rsa.pub
,私钥默认名称为 id.rsa
,保存在 ~/.ssh
目录下。
第二步:将客户端的公钥追加至远程服务器端的 ~/.ssh/authorized_keys
文件。
有两种方法:通过 ssh-copy-id
命令;通过 scp
命令。
ssh-copy-id -i ~/.ssh/id_rsa.pub -p 22 用户名@IP地址
回车后,输入登录密码,以后就可以免密登录了。
Linux 的目录结构如下:
list 的缩写,列出目录
语法:
ls [options] [name...]
示例:
# 列出 demo01 目录下所有子目录及文件 $ ls -lR demo01 demo01: total 49852 drwxr-xr-x. 2 root root 6 Dec 11 22:49 assets drwxr-xr-x. 2 root root 18 Dec 11 22:50 bin -rw-r--r--. 1 root root 62019 Nov 13 22:17 cpptools-linux.vsix -rw-r--r--. 1 root root 454656 Nov 13 22:18 cpptools-linux.vsix.1 -rw-r--r--. 1 root root 50524369 Oct 20 10:49 cpptools-linux.vsix.2 drwxr-xr-x. 2 root root 6 Dec 11 22:49 include drwxr-xr-x. 2 root root 6 Dec 11 22:49 lib drwxr-xr-x. 2 root root 22 Dec 11 22:50 src demo01/assets: total 0 demo01/bin: total 12 -rwxr-xr-x. 1 root root 8968 Nov 13 21:38 main demo01/include: total 0 demo01/lib: total 0 demo01/src: total 4 -rw-r--r--. 1 root root 134 Nov 13 21:48 main.cpp # 统配符使用 # 列出/etc目录下以.conf结尾的所有文件 $ ls /etc/*.conf /etc/asound.conf /etc/GeoIP.conf /etc/libaudit.conf /etc/mke2fs.conf /etc/sestatus.conf /etc/vconsole.conf /etc/chrony.conf /etc/host.conf /etc/libuser.conf /etc/nsswitch.conf /etc/sos.conf /etc/yum.conf /etc/dracut.conf /etc/kdump.conf /etc/locale.conf /etc/resolv.conf /etc/sysctl.conf /etc/e2fsck.conf /etc/krb5.conf /etc/logrotate.conf /etc/rsyncd.conf /etc/updatedb.conf /etc/fprintd.conf /etc/ld.so.conf /etc/man_db.conf /etc/rsyslog.conf /etc/usb_modeswitch.conf # 使用 egrep,筛选etc目录下以s开头,.conf 结尾为文件 $ ls /etc/*.conf | egrep "/etc/s.*.conf" /etc/sestatus.conf /etc/sos.conf /etc/sysctl.conf # 最新修改的文件在最下面显示,方便查看最近修改的文件 $ ls -lrt /etc total 1116 -rw-r--r--. 1 root root 1634 Dec 25 2012 rpc -rw-r--r--. 1 root root 28 Feb 28 2013 ld.so.conf -rw-r--r--. 1 root root 670293 Jun 7 2013 services ...... -rw-r--r--. 1 root root 34797 Dec 17 22:05 ld.so.cache -rw-r--r--. 1 root root 77 Dec 17 22:05 shells -rw-r--r--. 1 root root 49 Dec 24 10:37 resolv.conf $ # 最大为文件在最下面显示,方便查看目录中最大文件 $ ll -Shr /etc total 1.1M -rw-r--r--. 1 root root 0 Jun 7 2013 motd -rw-r--r--. 1 root root 0 Jun 7 2013 exports -rw-r--r--. 1 root root 0 Apr 1 2020 environment ...... -rw-r--r--. 1 root root 12K Aug 14 17:05 aliases.db -rw-r--r--. 1 root root 34K Dec 17 22:05 ld.so.cache -rw-r--r--. 1 root root 655K Jun 7 2013 services $ # 只列出子目录 $ ls -F /usr/local/ |grep /$ bin/ etc/ games/ include/ lib/ lib64/ libexec/ sbin/ share/ src/
Change Directory 的缩写,切换工作目录
语法:
cd [dirName]
示例:
# 切换到用户主目录
cd ~
# 切换到上层目录的上层目录
cd ../..
# 切换到进入此目录之前的那个目录
cd -
# 把上个命令的参数作为 cd 参数使用, !$表示上一条命令
cd !$
Print Working Directory 的缩写,显示当前目录的路径
语法:
pwd [-LP]
示例:
# 显示当前实际物理工作目录,-P 会不以连结档的数据显示,而是显示正确的完整路径
pwd -P
make directory 的缩写,创建目录
示例:
$ proj=test_proj; mkdir $proj/bin $proj/include $proj/lib $proj/src mkdir: cannot create directory ‘test_proj/bin’: No such file or directory mkdir: cannot create directory ‘test_proj/include’: No such file or directory mkdir: cannot create directory ‘test_proj/lib’: No such file or directory mkdir: cannot create directory ‘test_proj/src’: No such file or directory # -p 递归创建多个目录或一次创建多级目录,如果该目录不存在,则新创建它 $ proj=test_proj; mkdir -p $proj/bin $proj/include $proj/lib $proj/src $ ls test_proj/ bin include lib src # -m 设置目录权限 # -(filetype)---(user)---(group)---(other) # 权限为 rwx,可读可写可执行,在设置权限是可以用对应的二进制转换为十进制数 # 创建一个 user: rwx, group:r-x, other:--x 的目录test01 $ mkdir -m 751 test01 $ ls -l . total 8 -rw-------. 1 root root 1544 Aug 14 17:01 anaconda-ks.cfg drwxr-xr-x. 3 root root 17 Nov 30 23:37 code drwxr-x--x. 2 root root 6 Dec 11 23:11 test01 drwxr-xr-x. 2 root root 6 Dec 11 23:14 test_proj -rw-------. 1 root root 0 Nov 13 2020 yum.log drwxr-xr-x. 2 root root 4096 Nov 29 21:07 yum.repos.d
注意到,test01 目录的权限确实是rwxr-x--x
(751),而没有指定权限的目录默认权限为 rwxr-xr-x
(755)。
remove directory 的缩写,删除一个空的目录
语法:
rmdir [OPTION]... DIRECTORY...
-p
:递归删除多级空目录。copy 的缩写,拷贝文件或目录。
语法:
cp [options] src dst
示例:
$ tree test01/
test01/
├── bin
├── include
├── lib
└── src
└── main.cpp
4 directories, 1 file
# 将 test01 目录所有内容复制到新目录 test02 下
$ cp test01/ test02
cp: omitting directory ‘test01/’
$ cp -r test01/ test02
$ ls
test01 test02
cp
复制目录时,必须使用参数 -r 或者 -R 。remove 的缩写,删除文件或目录
语法:
rm [options] name...
示例:
rm -i test01
选项:
-f
:强制删除-i
:删除前提示是否删除-r
:递归删除,一遍删除目录move file 的缩写,移动文件 / 目录,或重命名文件 / 目录
语法:
mv [options] src dst
mv [options] src... directory
选项:
-f
:强制移动-i
:若目标文件(dst)已存在,提示是否覆盖-u
:若目标文件(dst)已存在,且 src 较新,才会升级 (update)示例:
mv test.cpp main.cpp
详细信息请参看:
Linux 链接文件类似于 Windows 中的快捷方式,Linux 链接文件分为硬链接和软链接。
在 Linux 文件系统中,一个文件被分成两个部分:元数据(metadata)与用户数据(user data)。
详细内容可参考:
使用 ln
命令,可以创建链接。
语法如下:
ln [OPTION]... [-T] TARGET LINK_NAME (1st form)
ln [OPTION]... TARGET (2nd form)
ln [OPTION]... TARGET... DIRECTORY (3rd form)
ln [OPTION]... -t DIRECTORY TARGET... (4th form)
示例:
# 编译 main.c $ gcc code/main.c -o code/main # 给文件 main.py 创建一个名为 test 的软链接 $ ln -s /home/datawhale/geyashi/code/main test # 查看 $ ll total 4 drwxr-xr-x 2 1000 datawhale 21 Dec 14 11:58 code drwxr-xr-x 2 1000 datawhale 25 Dec 13 21:00 download -rw-r--r-- 1 1000 datawhale 157 Dec 13 20:58 download_files.txt lrwxrwxrwx 1 1000 datawhale 33 Dec 14 12:43 test -> /home/datawhale/geyashi/code/main # 执行 test 软连接,打印出来和 code/main 一样 $ ./test Hello ln
当删除 code/main.c 文件时,软连接会失效:
# 此时再运行 test 软连接 就会提示找不到文件
$ ./test
-bash: ./test: No such file or directory
注意:删除软连接时,要小心,不要连源文件也一块删除了
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。