Linux基础
文章目录
基本设置
-
[root@haddop-senior Desktop] #
用户名 主机名 所在目录
#表示当前用户属于root用户,超级管理员用户;$表示普通用户
-
ipconfig 查看IP地址
ifconfig 显示或设置网络设备。
P.S. 手动设置IP地址后,虚拟机无法连接到互联网
远程连接
工具
- SecureCRT:远程命令行
- FileZilla:FTP(File Transfer Protocal)
- 远程编辑:UltraEditor、NotePad++
- 远程图形界面:Xmanager
要素
- IP地址→映射到主机名
- 用户名+密码
- 协议 ssh
主机名与IP地址映射
IP hostname
查看与修改文件地址:
Linux:/etc/hosts
Windows:C:\Windows\System32\drivers\etc\hosts
基本操作
clear
halt # 关机 只关系统不关闭电源-p 关闭电源
reboot # or init6 重启
shutdown #关机 now 立即关机 -r 重启
logout # 注销当前用户
uname -a # 展示电脑的基本信息,通常包括电脑名称,Linux内核版本,发行版名称等
cat /proc/version #展示当前运行的Linux发行版的详细信息
hostname # 显示主机名
whoami # 显示用户名 类似的还有logname命令
who # 单独执行who指令会列出登入帐号,使用的终端机,登入时间以及从何处登入或正在使用哪个显示器
w # 执行这项指令可得知目前登入系统的用户有那些人,以及他们正在执行的程序
last # 列出目前与过去登入系统的用户相关信息
id # 显示用户的ID,以及所属群组的ID
date # 显示当前日期
free # 显示内存状况
Tab键自动命令补全
常用Shell命令
基本语法:command -option file
|:命令管道,串联多个命令
可使用通配符
echo $SHELL # 查看shell类型
man command # 查找命令含义及
grep
grep能使用正则表达式搜索文本,并把匹配的行打印出
grep foo /etc/passwd
# 返回在password文件中所有的含有foo的行
# grep -i "foo" /etc/passwd
# -i选项是忽略大小写,这就意味着若某一行含有FOO或FOo也会被搜索到
grep -r "foo" /etc/passwd
# 这条命令将会搜索/etc/passwd目录及其子目录下所有的包含“foo”的行
ls -la | grep foo*
# 列出当前目录下任何以foo开头的文件或目录,例如如下文件将被匹配:foo,foobar,foolish.txt
进程
ps # 显示哪些程序正在运行
ps -ef | grep firefox # 查找firefox进程
kill id # 杀掉某个进程
用户和组
Linux创建用户时,默认创建一个组,组名与用户名一致
用户
# 建立账号
useradd usrname
passwd usrname # 保存在/etc/passwd文本文件中
# 删除账号
userdel usrname
# 仅删除用户账号不删除相关文件
# -r 删除用户home目录
# 修改用户
usermod usrname
:<<! 常用参数
-d 指定用户主目录
-g 指定用户所属主群组
-G 指定用户的附属群组,多个逗号隔开
-L 锁定用户密码
-U 解锁用户
-s 修改用户指定的shell
-u 修改用户的uid
!
用户主目录可以用~表示
hostname # 查看或设置hostname P.S.重启后设置名称不保存
su # 切换用户;后面为空代表切换到root用户
su usr # 不切换环境变量,仍使用之前用户的环境变量
su -usr # 切换环境变量到新用户的环境变量
sudo # 临时获取root权限
-
提升用户权限
$ su root chmod 777 /etc/sudoers vi /etc/sudoers # 编辑/etc/sudoers文件,添加要提升权限的用户;在文件中找到root ALL=(ALL) ALL,在该行下添加提升权限的用户信息 # root ALL=(ALL) ALL # david ALL=(ALL) ALL
组
groupadd # 创建群组。
groupdel # 删除群组。
# 倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组
groupmod # 修改群组id或群组名
# -g <群组识别码> 设置欲使用的群组识别码
# -n <新群组名称> 设置欲使用的群组名称
Linux系统下文件类型
- 文件 -
- 目录 d
- 链接 l(类似于快捷方式)
文件
文件信息
第一部分:drwxr-xr-x 共有10个位置
- 第一个字符指定了文件类型,如果第一个字符是横线,表示是个非目录的文件;如果是d,表示是个目录
- 后面九个字符,分为三组,表示此文件针对不同用户的权限关系
第二部分:hansun hansun-group
- 第一个字符串表示文件的拥有者
- 第二个字符串表示文件所属组
最后:文件大小 & 创建日期 & 名称
文件权限
文件权限
- r( 2 2 2^2 22)代表只读
- w( 2 1 2^1 21)代表写
- x( 2 0 2^0 20)代表可执行
- -代表空许可,没有任何权限
可用对应数字表示权限
文件针对不同用户的权限关系
文件的归属:
- 拥有者
- 属于组 g(和文件属主有相同组ID的所有用户)
- 其他 o
- a表示所有用户
# 设置文件对不同用户的权限
# 需要使用root用户
chmod [who] [+ | - | =] [mode] filename
# 操作对象who可以是u、g、o的任一个或他们的组合(不指定则为a)
# 操作符号能是:+添加某个权限\- 取消某个权限\ = 赋予给定权限并取消其他所有权限
# mode所表示的权限可以是r、w、x的任意组合(也可以用数字)
chmod a+r /home/david/ab
# 改变文件拥有者和所属组
chown [选项] [所有者][:[组]] 文件
chown mail:mail log2012.log
# 修改该文件的拥有者为mail群组的mail用户
chown -R -v root:mail test6
# 设置选项
# -R是递归处理该目录及其子目录下的所有文件
# -v是显示处理的详细信息
文件基本命令
-
查看文件信息
ls #(—list)# 查看当前目录下文件 ls -l(ll)# 查看文件详细信息 ls -t # 按时间显示 ls -a # 显示隐藏文件
-
创建文件
touch filename vi filename # or vim filename # 若文件不存在会创建文件
-
追加文件内容
$ echo "content" >> filename
-
读取文件
cat /path/filename cat file1 file2 # 依顺序显示file1,file2的内容 cat file1 file2 > file3 # 把file1,file2的内容结合起来,再“重定向(>)”到file3文件中 # 如果一个文本文件太长了超过一个屏幕的画面,可以使用more和less: more filename # 使超过一页的文件临时停留在屏幕,等到按任何的一个键以后,才继续显示 less filename # 除了有more的功能以外,还可以用方向键往上或往下的滚动文件 tail filename # 末尾内容 # 通常与-f连用,适合于查看服务实时日志动态信息 head filename # 开头内容 # 适合查看文件格式,内容模板样式
-
文件复制
cp fred.txt ethel.txt # 把fred.txt中的内容复制到当前文件夹中名为ethel.txt中 cp *.txt /home/sjvn/docs/ # 复制当前目录下所有以.txt结尾的文件到指定的目录下 cp fred.txt /home/sjvn/docs/fred.txt # 把fred.txt复制到指定文件中 cp -r /home/sjvn/docs/ /home/sjvn/backup # 复制当前目录下所有文件到指定目录下
-
文件移动或重命名
mv src dest # src和dest在同一目录下为重命名 # src和dest在同一目录下为移动
-
文件删除
注意:路径最好为绝对路径防止误删!
rm dir # 删除空目录或文件 rm -r dir # 递归删除 rm -rf dir # 递归强制删除(慎重使用)
-
文件搜索
$ find ~/ -name file $ find ~/ -name read\* # 包含此开头
目录
Linux的文件系统只有一个文件树,整个文件系统以"/"为起点,所有的文件和外部设备都以文件的形式挂接在这个文件树上
重要的目录
-
/bin /sbin
存放使用和维护Linux系统的大部分程序
P.S. /sbin只有root用户可以访问
-
/etc
这个目录一般用来存放系统级别的配置文件,其中的一些重要文件如: passwd、shadow、fstab、hosts、profile、shells、services等等。
-
/lost+found
这个目录专门用来放那些在系统非正常关机后重新启动系统时,不知道该放哪里恢复使用的“流浪”文件 -
/boot
这个目录下面存放着和系统启动有关的各种文件,包括系统的引导程序和系统核心部分 -
/root
这是系统管理员(root)的主目录 -
/home
系统中所有用户的主目录都存放在/home中 -
/mnt
按照约定,像CD-ROM、软盘、U盘,或者磁带这样的可以移动的介质都应该安装在/mnt目录下 -
/tmp /var
这两个目录用来存放临时文件和经常变动的文件其中/var经常作为www主目录存放网站代码
-
/usr
按照约定,这个目录用来存放与用户相关的程序或文件,这里面也有一个bin和一个sbin子目录
目录基本命令
-
pwd
-
特殊目录标识符
.:当前目录
…:父目录
cd dirName # 切换目录
cd # 进入当前目录
cd ~ # 进入自己的home目录
mkdir # 创建目录
# -p 创建多级目录
rmdir # 删除目录
# -p 联级删除,当子目录被删除后使它也成为空目录的话,则顺便一并删除
连接
ln:为某一个文件在另外一个位置建立一个不同的链接
ln –s file/dir link_name
软链接,它只会在选定的位置上生成一个文件的镜像,不会占用磁盘空间
ln file/dir link_name
硬链接,没有参数-s, 它会在选定的位置上生成一个和源文件大小相同的文件
无论是软链接还是硬链接,文件都保持同步变化
打包、解压缩
打包
在压缩文件之前,一般都需要进行打包
# 打包文件
tar -cvf name.tar *.txt
# -c create 打包模式
# -f file 指明打包文件名
# 多个文件以空格隔开或者采用通配符
# 解包文件:
tar -xvf name.tar
# -x extract 解包模式
# 一步压缩/解压文件
tar zcvf * name.tar.gz dir
tar zxvf file.tar.gz -C dir
压缩
打包之后,可以对文件进行压缩;Linux下常用的压缩程序为gzip,也支持普通的zip/unzip
# 压缩文件
gzip file.tar
# 原来的文件会消失
# 解压文件
gzip -d file.tar.gz
# 原来的文件会消失
# zip压缩文件
zip -r name.zip 要压缩的文件或者目录
# unzip解压文件:
unzip name.zip -d 解压缩的目录位置
VI文本编辑
VI的三种模式
-
命令行模式(command mode)
控制屏幕光标的移动,字符、字或行的删除,按i进入到插入模式
-
插入模式(Insert mode)
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式,按:回到底行模式
-
底行模式(last line mode)
将文件保存或退出vi,也可以设置编辑环境,如寻找字符串、列出行号……等
VI编辑文件
-
vi /path/filename 编辑文件
-
基本操作
i:进入insert(编辑)模式
Esc:退出编辑
:+ wq 保存
!+ q! 不保存
-
快捷键
dd:删除光标所在的行的内容,删除从光标开始的3行 3dd
ZZ:保存文件内容
x:删除光标所在处字符,如果是删除光标后的3个字符,则是3x;大写的X是删除光标前的字符
o:在光标的下一行进行插入
移至上下左右 kjhi
移至行首和行尾 ^和$
移至段落开头和结尾 { }
向前和向后翻屏 Ctrl+f 和 Ctrl+b
在光标前或者后插入字符 i或a
复制整行 yy
复制从光标所在的3行 3yy
粘贴 p
取消操作 u
命令行模式操作
底行模式操作
- w filename 保存当前编辑到filename文件名
- wq filename 保存到指定文件并退出
- wq 保存并退出
- q! 放弃所有修改,直接退出vi