常用指令
ls
显示文件或目录(list)
-l
只列出文件详细信息
-a
列出当前目录下所有文件及目录,包括隐藏的a(all)
ls -al
列出当前目录下所有文件及目录的详细信息
cd
切换目录; cd / 切换到根目录;cd - 退回上一次目录下,在根目录下切换到用户目录;
cd 或 cd~返回
切换到用户目录下; cd .. 返回到上级目录;同一目录下切换 cd ../zs
touch
创建空文件
-t
修改文件时间 eg:touch -t 1709021414 zsd
echo 创建带有内容的文件
cat 显示查看文件内容
-n
加行号显示
tac 反向输出显示
more 一页一页的显示,空格翻一页,回车翻一行,q退出
cp
复制文件或目录 eg:
cp file /home (将file拷贝到home目录下)
mv
移动文件与目录或重命名 (rm a.c c.c 可直接将文件重命名)
rm
删除文件或目录
-r
递归删除,可删除子目录及文件cd
-f
强制删除
find 在文件系统中搜索某文件
wc 统计文本中行数、字数、字符数
grep 在文本文件中查找某个字符串
grep include ./*.c
mkdir
创建目录
-p
创建目录,若无父目录,则创建p(parent) eg :mkdir -p ./zsss/zsssss
-m
创建时添加权限
rmdir
删除空目录或空文件
tree 树形结构显示目录,需要安装tree包
pwd
显示当前目录,
工作的绝对路径
more、less 分页显示文本文件内容
head、tail 显示文件头、尾内容
gcc
编译程序,生成a.out文件 (编译、连接)
ln //创建链接
ln 1.c new1.c //创建一个硬链接
ln -s 1.c new1.c //创建一个软链接
date 显示系统时间
cal 显示日历
df 查看磁盘大小
du 查看文件大小
ctrl+alt+F1 命令行全屏模式
ctrl+alt+t 打开终端
Ctrl+shift+n 打开新的终端
Ctrl+shift+t 一页中打开新的终端
vsp vim中分屏
系统管理命令
man
命令不会用了,找男人 (manual 操作说明) ;eg:man cp ;按下空格翻页、q键离开
界面man page:第一行括号内数字代表属性,1用户在shell环境中的操作、5配置文件
或文件的格式、8系统管理员可用命令 :man man获取说明
info
在线求助,与man命令作用一样,选择节点,U上一层、N上节点P下节点、enter键进入
stat
显示指定文件的详细信息,比ls更详细
who
显示在线登陆用户
whoami
显示当前操作用户
hostname 显示主机名
uname
显示系统信息 eg: uname -r
lsb_release -a
显示系统信息
top 动态显示当前耗费资源最多进程信息
ps 显示瞬间进程状态 ps -aux
du 查看目录大小 du -h /home带有单位显示目录信息
df 查看磁盘大小 df -h 带有单位显示磁盘信息
ifconfig
查看网络连接状态
ping
测试网络连通
,ping ip 地址 -c 4 ,检测主机网络接口状态,4次后停止
arp
显示出所有网关
netstat 显示网络状态信息
clear
清屏
alias 对命令重命名 如:alias showmeit="ps -aux" ,另外解除使用unaliax showmeit
kill
杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。
apt-get install
安装一个软件
apt-get remove
删除一个软件
打包(归档)压缩相关命令
gzip (不能对目录进行压缩)
gzip 1.c //压缩1.c
gunzip 1.c.gz //解压1.c.gz
bzip2 (类似gzip)
bzip2 1.c
bunzip2 1.c.bz2
zip (可以对目录进行压缩)
zip 1.c.zip 1.c//将1.c 压缩为1.c.zip
unzip 1.c.zip //解压1.c.zip
tar: 归档压缩
-c 归档文件
-x 压缩文件
-z gzip压缩文件
-j bzip2压缩文件
-v 显示压缩或解压缩过程 v(view)
-f 使用档名
例:
tar -cvf
/home/abc.tar /home/abc 只打包,不压缩
tar -zcvf
/home/abc.tar.gz /home/abc 打包,并用gzip压缩
tar -jcvf
/home/abc.tar.bz2 /home/abc 打包,并用bzip2压缩
当然,如果想解压缩,就直接替换上面的命令 tar -cvf / tar -zcvf / tar -jcvf 中的“c” 换成“x” 就可以了。
更改文件权限
chmod
更改文件权限 eg: chmod 777 test_1
-R
进行递归持续更改,子目录下的所有权限都改了 eg:chmod -R 777 test_1
sudo chmod [u所属用户 g所属组 o其他用户 a所有用户] [+增加权限 -减少权限 =设置] [r w x] 目录名
例如:-rwxrwxrwx 1 zshuai zshuai 11068 Sep 26 04:52 udp
eg:
sudo chmod u=rw,g=r,o=x udp
或 sudo chmod u-x,g-wx,o-rw udp
或 sudo chmod 641 udp
-rw-r----x 1 zshuai zshuai 11068 Sep 26 04:52 udp
vi/vim使用
在编辑程序时,一定要选择对应格式(windows(CR LF)、Unix(LF)即'$'),否则把win上编辑的程序放到linux上可能会报错;
vim三种模式:命令模式、插入模式、一般模式。使用
ESC
或
i
(i\o\a\r)或
'shift'+:
来切换模式。
命令模式
下:
:q
退出
:q!
强制退出
:wq
保存并退出
:set nu
mber 显示行号
:
set nonu
mber 隐藏行号
/apache 在文档中查找apache 按n跳到下一个,shift+n上一个
一般模式下
,直接输入
h
(
左移一个字符←)、
j(
下一行↓)、k(上一行↑)、l(右移一个字符→)eg:20 下移20行
G/nG
光标移到,1G开头,G结尾
d(dd)
删除光标所在行(剪切)
nd (ndd)
删除光标所起的N行
y (yy)
复制光标所在行
ny (nyy)
复制光标所在N行
p,P (np)
粘贴所复制内容
u或'.'
还原上次操作 ctrl+r回到上次
vim 相对vi
具有记忆功能,主动把上次行为记录,若未正常关闭vim ,将会自动保存文件,当再次进入时回提示有六种选择,R恢复未保存内容,需手动删除.swp;D不恢复,直接删除
多窗口编辑:
sp [filename]
打开多个文件eg: sp /udp.c
[ctrl]+w+ ↑↓
切换页面光标(先按ctrl,再w)
:q
退出
块操作:略
多文件编辑:略
vim环境设置: 略
显式调用动态库
g++ -g -o test test.cpp –L/root/src/lib –ltest_so1 加载指定文件夹下的动态库, g++编译.cpp文件
gcc -g -o test test.c -L. -ltest-so1 -lm 加载当前文件夹下的动态库, gcc编译.c文件,-lm为加载数据库,根据需要加不同参数
关机/重启机器
shutdown
-r
重启
-h
关机
now
立刻关机
halt 关机
reboot
重启
udo shutdown -r now //立即重启
sudo shutdown -h now //立即关机
Linux管道 ‘ | ’
将一个命令的标准输出作为另一个命令的标准输入
。也就是把几个命令组合起来使用,后一个命令除以前一个命令的结果。
例:grep -r "close" /home/* | more 在home目录下所有文件中查找,包括close的文件,并分页输出。
Linux软件包管理
dpkg
(Debian Package)管理工具,软件包名以.deb后缀。这种方法适合系统不能联网的情况下。
比如安装tree命令的安装包,先将tree.deb传到Linux系统中。再使用如下命令安装。
sudo
dpkg -i
tree_1.5.3-1_i386.deb 安装软件
sudo
dpkg -r
tree 卸载软件
注:将tree.deb传到Linux系统中,有多种方式。VMwareTool,使用挂载方式;使用winSCP工具等;
APT
(Advanced Packaging Tool)高级软件工具。这种方法适合系统能够连接互联网的情况。
依然以tree为例
sudo
apt-get instal
l tree 安装tree
sudo
apt-get remove
tree 卸载tree
sudo
apt-get update
更新软件
sudo apt-get upgrade
将.
rpm
文件转为.
deb
文件
.rpm为RedHat使用的软件格式。在Ubuntu下不能直接使用,所以需要转换一下。
sudo alien abc.rpm
sudo apt-get install openssh-server ubuntu安装ssh服务器,
用于 xshell远程连接
用户及用户组管理
/etc/passwd
存储用户账号
/etc/group
存储组账号
/etc/shadow 存储用户账号的密码
/etc/gshadow 存储用户组账号的密码
useradd 用户名
userdel 用户名
adduser //添加用户
sudo adduser linux //添加一个新用户linux
passwd //修改密码
passwd usrname
deluser //删除用户
--remove-home //删除用户时,同时删除对应用户的家目录
groupadd 组名
groupdel 组名
su root 切换到超级用户
su - root
/etc/profile 系统环境变量
bash_profile 用户环境变量
.bashrc 用户环境变量
su user 切换用户
,加载配置文件.bashrc
su - user 切换用户,加载配置文件/etc/profile ,加载bash_profile
更改文件的用户及用户组
user@ubuntu:~$ 为命令提示符,@之前的部分为当前用户ID,@与:之间的部分,为您的主机名称,:与$之间的部分,为当前的路径
sudo chown [-R] owner[:group] {File|Directory}
例如:还以jdk-7u21-linux-i586.tar.gz为例。属于用户hadoop,组hadoop
要想切换此文件所属的用户及组。可以使用命令。
sudo chown root:root jdk-7u21-linux-i586.tar.gz
shell特殊符号
命令行解释器,(实现用户与系统的交换)
shell命令的三要素:指令 选项 参数
通配符
(gcc *.c)
管道
(连接两个命令,把一个命令的输出,当做另一个命令的输入)
wc 统计文件(行数-l,单词数-w,字节数-c)
例子:
ls | wc -w //统计当前目录下文件个数。
输入输出重定向
(>,>>, 2>,&>) echo abc > 1.txt
ls > 1.txt //将当前目录的内容,输出到1.txt中(改变原来的输出)
ls /def 2> 1.txt //将出错信息,保存到1.txt中
ls /def &> 1.txt //将出错信息,保存到1.txt中
ls >> 1.txt //将当前目录的内容,以追加方法添加到1.txt中
命令置换 (``)
(链接两个命令,把另一个命令的结果当做参数)
echo //输出字符串
echo `ls` //把ls的结果,当做echo 的参数。